Local machine: advanced
For most users the Local machine install script is enough. This page
covers running the canonical compose file docker/localhost.docker-compose.yaml directly:
selectively starting service profiles, running multiple stands side by side, attaching the
demo databases, and troubleshooting.
The same Datagrok services run on every deployment — see Components for the canonical list.
Minimal: 60 GB of free disk space, 4 CPUs, 8 GB RAM.
Prerequisites
- Install and launch the latest Docker Desktop:
- Clone the
public repository (the compose file lives at
docker/localhost.docker-compose.yaml). - Open a terminal and
cdinto the cloned repository.
Compose profiles
The compose file uses Docker Compose profiles
to start subsets of services. The all profile is everything; pick narrower profiles to
save disk and RAM.
| Profile | Starts |
|---|---|
all | Every Datagrok service plus the in-cluster Postgres |
datagrok | Datagrok core only |
db | In-cluster Postgres |
grok_connect | Grok Connect (external database connectors) |
grok_spawner | Grok Spawner (manages plugin containers) |
rabbitmq | RabbitMQ (AMQP queue, required for scripting) |
scripting / jkg | Jupyter Kernel Gateway, RabbitMQ, grok_pipe — server-side script execution |
cvm | Convenience alias for scripting + everything it needs |
mlflow / ml | MLflow tracking server and supporting Postgres |
demo | Demo databases (world, chembl, northwind, unichem, starbucks) — used by tutorials |
postgres_chembl, postgres_world, ... | Individual demo databases |
postgres_rdkit | Adds RDKit Postgres for cheminformatics work |
Install Datagrok
-
Pull the latest images:
- Windows
- MacOS/Linux
docker compose -f docker\localhost.docker-compose.yaml --profile all pulldocker compose -f docker/localhost.docker-compose.yaml --profile all pull -
Start the full stack:
- Windows
- MacOS/Linux
docker compose -f docker\localhost.docker-compose.yaml --project-name datagrok ^--profile all up -dnoteIf you encounter an error related to a
WriteFilefunction when runningdocker-compose upon Windows, try running the command prompt (cmd) in Administrator mode. This is a known issue with Docker on certain computers.docker compose -f docker/localhost.docker-compose.yaml --project-name datagrok \--profile all up -d -
After about a minute the server is ready at http://localhost:8080. Sign in as
admin/admin.
Selective profiles
Drop scripting/JKG to save disk and RAM:
- Windows
- MacOS/Linux
docker compose -f docker\localhost.docker-compose.yaml --project-name datagrok ^
--profile datagrok --profile db --profile grok_connect --profile grok_spawner up -d
docker compose -f docker/localhost.docker-compose.yaml --project-name datagrok \
--profile datagrok --profile db --profile grok_connect --profile grok_spawner up -d
Add server-side scripting (Python / R / Julia / JavaScript / Octave) on top:
- Windows
- MacOS/Linux
docker compose -f docker\localhost.docker-compose.yaml --project-name datagrok ^
--profile datagrok --profile db --profile grok_connect --profile grok_spawner ^
--profile scripting up -d
docker compose -f docker/localhost.docker-compose.yaml --project-name datagrok \
--profile datagrok --profile db --profile grok_connect --profile grok_spawner \
--profile scripting up -d
The scripting profile pulls in RabbitMQ, grok_pipe, and the Jupyter Kernel Gateway —
everything needed for server-side scripts.
Demo databases
Datagrok ships with demo databases that back several tutorials. Add them with the
demo profile:
- Windows
- MacOS/Linux
docker compose -f docker\localhost.docker-compose.yaml --project-name datagrok ^
--profile all --profile demo up -d
docker compose -f docker/localhost.docker-compose.yaml --project-name datagrok \
--profile all --profile demo up -d
Use individual postgres_<name> profiles to start a single demo database.
Multiple stands
You can run more than one Datagrok stand on the same host. To do so, give the second stand a different project name and override the host ports it binds.
-
Run the first stand as described above (project name
datagrok). -
Pin image versions for the second stand. Any tag from Docker Hub is valid — see Images and versions for the latest pinned set, or release history for older releases.
Each service has its own environment variable:
DATAGROK_VERSION,GROK_PIPE_VERSION,GROK_SPAWNER_VERSION,GROK_CONNECT_VERSION,JKG_VERSION,GROK_REGISTRY_PROXY_VERSION. They all default tobleeding-edge. To pin a stand to the latest stable release:- Windows
- MacOS/Linux
set DATAGROK_VERSION=1.27.3set GROK_PIPE_VERSION=1.19.0set GROK_SPAWNER_VERSION=2.16.0set GROK_CONNECT_VERSION=2.6.2set JKG_VERSION=1.31.0export DATAGROK_VERSION=1.27.3export GROK_PIPE_VERSION=1.19.0export GROK_SPAWNER_VERSION=2.16.0export GROK_CONNECT_VERSION=2.6.2export JKG_VERSION=1.31.0 -
Override the host ports the second stand binds. Pick values that don't collide with the first stand:
Environment variable Default DATAGROK_PORT8080DATAGROK_DB_PORT5432GROK_SPAWNER_PORT8000GROK_CONNECT_PORT1234DATAGROK_DEMO_POSTGRES_NORTHWIND_PORT5433DATAGROK_DEMO_POSTGRES_CHEMBL_PORT5434DATAGROK_DEMO_POSTGRES_UNICHEM_PORT5435DATAGROK_DEMO_POSTGRES_STARBUCKS_PORT5436DATAGROK_DEMO_POSTGRES_WORLD_PORT5437 -
Start the second stand under a different project name (e.g.
datagrok_2):- Windows
- MacOS/Linux
set DATAGROK_PORT=8091set DATAGROK_DB_PORT=5443docker compose -f docker\localhost.docker-compose.yaml --project-name datagrok_2 ^--profile all up -dexport DATAGROK_PORT=8091export DATAGROK_DB_PORT=5443docker compose -f docker/localhost.docker-compose.yaml --project-name datagrok_2 \--profile all up -d
Compose variants
Several alternative compose files cover specific cases:
| File | Use when |
|---|---|
docker/localhost.docker-compose.yaml | Default local install |
docker/localhost.bleeding-edge.docker-compose.yaml | Track latest unreleased images |
docker/localhost.bleeding-edge-separate-data.docker-compose.yaml | Bleeding-edge with persistent data volumes detached |
docker/localhost.macos-silicon.docker-compose.yaml | Apple Silicon (ARM64); pulls linux/arm64 image variants |
docker/localhost.js-api.debug.docker-compose.yaml | JS API debugging with source maps |
Shutting down Datagrok
Stop the containers (volumes preserved):
- Windows
- MacOS/Linux
docker compose -f docker\localhost.docker-compose.yaml --project-name datagrok ^
--profile all --profile demo stop
docker compose -f docker/localhost.docker-compose.yaml --project-name datagrok \
--profile all --profile demo stop
Reset to factory state — removes all data including users, projects, and connections:
- Windows
- MacOS/Linux
docker compose -f docker\localhost.docker-compose.yaml --project-name datagrok ^
--profile all --profile demo down --volumes
docker compose -f docker/localhost.docker-compose.yaml --project-name datagrok \
--profile all --profile demo down --volumes
Troubleshooting
-
View logs (follow live):
- Windows
- MacOS/Linux
docker compose -f docker\localhost.docker-compose.yaml --project-name datagrok ^--profile all logs -f --tail 200 datagrokdocker compose -f docker/localhost.docker-compose.yaml --project-name datagrok \--profile all logs -f --tail 200 datagrokReplace
datagrokwith any service:db,grok_connect,grok_pipe,grok_spawner,jupyter_kernel_gateway,rabbitmq, etc. -
Open a shell inside a container:
- Windows
- MacOS/Linux
docker compose -f docker\localhost.docker-compose.yaml --project-name datagrok ^--profile all exec datagrok /bin/shdocker compose -f docker/localhost.docker-compose.yaml --project-name datagrok \--profile all exec datagrok /bin/sh -
Recreate the stand from scratch:
- Windows
- MacOS/Linux
docker compose -f docker\localhost.docker-compose.yaml --project-name datagrok ^--profile all --profile demo down --volumesdocker compose -f docker\localhost.docker-compose.yaml --project-name datagrok ^--profile all --profile demo pulldocker compose -f docker\localhost.docker-compose.yaml --project-name datagrok ^--profile all --profile demo up -ddocker compose -f docker/localhost.docker-compose.yaml --project-name datagrok \--profile all --profile demo down --volumesdocker compose -f docker/localhost.docker-compose.yaml --project-name datagrok \--profile all --profile demo pulldocker compose -f docker/localhost.docker-compose.yaml --project-name datagrok \--profile all --profile demo up -d -
Docker logs may consume free disk space over time. Limit the daemon's log size via Docker Desktop resource settings or the logging configuration.
See also
- Local machine — install via the wrapper script
- Components — service list and roles
- Server configuration —
GROK_PARAMETERSreference - All deployment paths