Run OpenClaw on Docker quickly.
10K+
services:
openclaw-gateway:
image: antiantiops/openclaw:v2026.8.1-devops-tool
container_name: openclaw-gateway
restart: unless-stopped
ports:
- "18789:18789"
volumes:
- ./openclaw-data:/root/.openclaw
environment:
NODE_ENV: production
OPENCLAW_DISABLE_BONJOUR: "1"
command:
- node
- /app/openclaw.mjs
- gateway
- --bind
- lan
- --allow-unconfigured
openclaw-cli:
image: antiantiops/openclaw:v2026.8.1-devops-tool
container_name: openclaw-cli
profiles:
- tools
volumes:
- ./openclaw-data:/root/.openclaw
environment:
NODE_ENV: production
entrypoint:
- node
- /app/openclaw.mjs
Start the gateway:
docker compose up -d openclaw-gateway
Configure basic settings (run before or after first start):
docker compose run --rm openclaw-cli config set gateway.port 18789
docker compose run --rm openclaw-cli config set gateway.bind lan
docker compose run --rm openclaw-cli config set gateway.auth.mode token
docker compose run --rm openclaw-cli config set gateway.auth.token "CHANGE_TO_LONG_RANDOM_TOKEN"
docker compose run --rm openclaw-cli config set gateway.controlUi.allowedOrigins '["http://YOUR_IP:18789","http://localhost:18789","http://127.0.0.1:18789"]'
docker compose run --rm openclaw-cli config set gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback true
Restart to apply config:
docker compose restart openclaw-gateway
Validate config and get dashboard URL:
docker compose run --rm openclaw-cli config validate
docker compose run --rm openclaw-cli doctor --lint
docker compose run --rm openclaw-cli dashboard --no-open
Open the returned URL in your browser to access the Control UI.
Content type
Image
Digest
sha256:1c7ea7703…
Size
1.5 GB
Last updated
4 days ago
docker pull antiantiops/openclaw