A graph database with Cypher queries, built-in graph algorithms and a separate browser workbench.
1.1K
Galactus DB is a property-graph database for connected datasets, with Cypher queries, Bolt 4.4 connectivity, and native graph data science (GDS) and APOC functionality.
This image runs the database server. The optional Galactus DB Explorer image provides a browser-based query workbench.
ianknowles/galactus-db:latest7687 (Bolt TCP and Bolt over WebSocket)/datagdbgdbUse Linux containers on Docker Desktop for Windows or macOS. The latest tag
tracks the published preview; pin an image digest for repeatable deployments.
Create a file named gdb.env with your own password of at least 12 characters:
GDB_INITIAL_PASSWORD=replace-with-your-own-long-password
Keep this file private and out of source control. Start the database:
docker run -d --name galactus-db --cpus 2 --env-file gdb.env -e GDB_LICENSE_MODE=developer -e GDB_DURABILITY=group -p 127.0.0.1:7687:7687 -v galactus-data:/data ianknowles/galactus-db:latest
Connect with a Bolt client that supports protocol version 4.4:
| Connection setting | Value |
|---|---|
| URI | bolt://127.0.0.1:7687 |
| Username | gdb |
| Password | The value in gdb.env |
| Database | gdb |
Run a first query:
RETURN 'Hello from Galactus DB' AS message;
View server logs with docker logs -f galactus-db. The built-in healthcheck
checks listener reachability; a successful authenticated query verifies database
access.
For a database and browser workbench together, use this setup as an alternative
to the standalone command above. Save it as compose.yaml:
services:
db:
image: ianknowles/galactus-db:latest
cpus: 2
environment:
GDB_BIND: "0.0.0.0:7687"
GDB_DATA: "/data/gdb"
GDB_INITIAL_USER: "gdb"
GDB_INITIAL_PASSWORD: "${GDB_INITIAL_PASSWORD:?Set GDB_INITIAL_PASSWORD in .env}"
GDB_INITIAL_DATABASE: "gdb"
GDB_LICENSE_MODE: "developer"
GDB_DURABILITY: "buffered"
ports:
- "127.0.0.1:7687:7687"
volumes:
- graph-data:/data
healthcheck:
test: ["CMD", "/usr/local/bin/gdb-server", "--healthcheck"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
explorer:
image: ianknowles/galactus-db-explorer:latest
environment:
GDB_EXPLORER_LISTEN: "0.0.0.0:7474"
GDB_EXPLORER_DEFAULT_ENDPOINT: "bolt://db:7687"
GDB_EXPLORER_DEFAULT_USER: "gdb"
ports:
- "127.0.0.1:7474:7474"
depends_on:
db:
condition: service_healthy
restart: unless-stopped
volumes:
graph-data:
Create a .env file beside compose.yaml, using your own password:
GDB_INITIAL_PASSWORD=replace-with-your-own-long-password
Start the services:
docker compose up -d
docker compose ps
docker compose logs -f db
Open http://127.0.0.1:7474 and sign in as gdb with your configured password.
Explorer connects to bolt://db:7687 within the Compose network. Select gdb
as the database. Applications running on your host connect to
bolt://127.0.0.1:7687.
Configure the server through environment variables. These are release image
defaults; both examples above explicitly select group durability.
| Variable | Default | Purpose |
|---|---|---|
GDB_INITIAL_PASSWORD | Required | Administrator password; at least 12 characters |
GDB_INITIAL_USER | gdb | Administrator created at startup |
GDB_INITIAL_DATABASE | gdb | Home database, created if absent |
GDB_BIND | 0.0.0.0:7687 | In-container Bolt listener |
GDB_DATA | /data/gdb | Instance directory within the persistent volume |
GDB_LICENSE_MODE | developer | developer, personal, or commercial |
GDB_LICENSE | Unset | Commercial licence token |
GDB_LICENSE_FILE | Unset | Path to a mounted licence file; takes precedence over GDB_LICENSE |
GDB_DURABILITY | buffered | buffered, group, or sync |
GDB_SYNC_INTERVAL_MS | 50 | Buffered flush interval in milliseconds |
GDB_CHECKPOINT_THRESHOLD | 67108864 | Log bytes before automatic maintenance; 0 disables |
GDB_PROPERTY_CACHE_BYTES | 16777216 | Decoded property cache budget per database |
GDB_QUERY_THREADS | auto | Parallel read workers; automatic selection is capped at 8 |
GDB_MAX_INPUT_BYTES | 67108864 | Maximum incoming Bolt message or WebSocket frame size |
buffered durability can lose acknowledged changes since the last sync after a
power or kernel failure. group and sync wait for a covering disk sync before
acknowledging commits.
Keep GDB_BIND=0.0.0.0:7687 inside the container. Use the host port mapping to
control access. The examples publish ports only on loopback. Remote deployments
need appropriate private networking and TLS termination: the server does not
provide native TLS.
Mount a volume at /data to retain database files when replacing a container.
The image runs as UID/GID 10001:10001. New named volumes inherit the image's
directory ownership; bind-mounted directories must be writable by that user.
Use a separate data directory for each instance, with only one running server
accessing it.
docker compose down retains the named volume. Adding -v deletes it and its
database files.
Before upgrading, arrange a verified backup and check storage compatibility for the target release. Native backup and restore require Commercial entitlement. Set the desired image tag or digest in your Compose file, then run:
docker compose pull
docker compose up -d
docker compose ps
Keep the previous image reference and your recovery copy. An older image is not guaranteed to read data written by a newer release.
Galactus DB is proprietary software. Use is subject to the applicable licence grant and terms.
| Edition | Intended use | CPU allocation | Native backup and restore |
|---|---|---|---|
| Developer | Development and evaluation | Multiple allocated CPUs | Unavailable |
| Personal | Personal projects | One allocated CPU | Unavailable |
| Commercial | Commercial deployments | Licensed allocated cores per instance | Requires backup/restore entitlement |
A fresh instance starts in free Developer mode without a licence key,
registration, or online activation. Both free editions support reads, writes,
Cypher, GDS, and APOC. For Personal mode, set GDB_LICENSE_MODE=personal and limit
the container to one CPU.
Current server builds limit the free editions to one active user database plus
system; older image tags can differ. GDB_INITIAL_DATABASE selects the active
user database at startup. Commercial supports multiple active user databases.
Commercial deployments require a Commercial licence. Supply the token through
GDB_LICENSE or a mounted file selected by GDB_LICENSE_FILE, and set
GDB_LICENSE_MODE=commercial. Run CALL gdb.license(); to inspect instance and
licence status.
Galactus DB implements its own Cypher, GDS, and APOC functionality. Support is a subset of the corresponding Neo4j interfaces; applications should verify the queries and procedures they use. Drivers must be able to negotiate Bolt 4.4.
The server operates as a single node, without replicated clustering. Write execution is exclusive. Graph topology and indexes remain in memory, so size container memory for the workload as well as the property cache.
The runtime image contains no shell or package manager. Use docker logs and
Bolt clients for diagnostics.
Content type
Image
Digest
sha256:d1d49da5e…
Size
2.2 MB
Last updated
about 20 hours ago
docker pull ianknowles/galactus-db