Docker image
OpenClaw in Docker. Your AI agent, your server.
OpenClaw is a self-hosted AI agent gateway: it runs an autonomous assistant you control from a web Control UI, connect to chat channels, and point at the LLM provider of your choice, with all state kept on your own instance.
Prefer not to run it yourself? Managed OpenClaw from $13.33/mo
# OpenClaw in Docker, base pinned by digest docker pull ghcr.io/remarkablecloud/openclaw:2026.9.4-r1 docker compose up -d
- Current build
2026.9.4-r1, updated Sep 11, 2026- Base
- OpenClaw official, digest-pinned
- What's inside
- Hardened defaults, one data volume, proxy-fronted UI
- Upstream license
- OpenClaw: MIT
The image
What our image adds.
What changes from upstream OpenClaw, and why it matters in production.
Digest-pinned base
Built from ghcr.io/openclaw/openclaw@sha256:cc596b846506… (OpenClaw 2026.9.4, Node 24, Debian 12). Pinning by digest keeps rebuilds reproducible.
Token-gated Control UI, never open
The gateway is started with token authentication, and our wrapper generates a strong token on first run, persists it in the data volume, and prints it once. Nothing is baked into an image layer, and the instance is never left unauthenticated on a public URL.
Reachable behind a proxy
The gateway binds a routable interface (not loopback) and starts in an unconfigured-friendly mode, so it comes up cleanly behind a reverse proxy on first boot, before you have added an LLM key.
Local state, no external database
All state lives in a single /home/node/.openclaw volume.
Healthcheck
A container HEALTHCHECK polls /health so the platform routes traffic only once the gateway is ready. The current published tag is ghcr.io/remarkablecloud/openclaw:2026.9.4-r1.
Run it yourself, or not
Same image either way.
Pull it and run it anywhere, or let us run OpenClaw for you on a managed server with updates, monitoring and snapshots.
Run OpenClaw yourself
- Pull it from GHCR and run it on any Docker host
- The guide below: compose, environment, backups, upgrades
- You patch, back up and watch it
OpenClaw on a managed server
- Installed for you from this same image, $0 for the app
- Updates with a snapshot first, monitoring and a managed firewall
- A 4 GB server from $13.33/mo billed annually, with room for more apps
The guide
Run it in production.
Compose file, environment reference, hardening, backups and upgrades, written by the people who build the image.
On this page
Architecture at a glance
- OpenClaw gateway serves the Control UI on port
18789. TLS is terminated upstream by a reverse proxy (Traefik on the RemarkableCloud App Platform). - No external database. State, memory, and credentials live in the
/home/node/.openclawvolume. - LLM provider. OpenClaw calls an external LLM (OpenAI, Anthropic, and many others); you supply your own API key in the Control UI (or via environment).
Docker Compose walkthrough
The standalone stack is defined in the image’s docker-compose.yml:
name: openclaw
services:
openclaw:
image: ${OPENCLAW_IMAGE:-ghcr.io/remarkablecloud/openclaw:2026.9.4-r1}
restart: unless-stopped
ports: ["${HTTP_PORT:-18789}:18789"]
environment:
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN:-}
# OPENAI_API_KEY: ${OPENAI_API_KEY:-}
volumes:
- openclaw-data:/home/node/.openclaw
volumes:
openclaw-data:
Step by step:
- The token is generated if blank. Leave
OPENCLAW_GATEWAY_TOKENempty and the image creates a strong one on first run, logs it once, and keeps it in the volume. - Only the web port is exposed.
${HTTP_PORT:-18789}:18789is for local use; in production the proxy connects to port18789on the internal network. - State lives in a volume.
openclaw-data(/home/node/.openclaw) persists the token, config, and memory across restarts and upgrades.
To start it locally:
docker compose up -d
Then read the token from docker compose logs openclaw, open http://localhost:18789, paste the token into Settings, and add your LLM API key.
Environment variable reference
| Variable | Required | Value / default | Purpose |
|---|---|---|---|
OPENCLAW_GATEWAY_TOKEN | no | (generated) | Shared token for the Control UI. Leave empty to auto-generate on first run (printed once); set it to pin your own. |
OPENCLAW_GATEWAY_PORT | no | 18789 | Gateway / Control UI port. |
OPENAI_API_KEY (or other provider key) | no | (unset) | LLM provider key. Can be set here or in the Control UI after connecting. |
Hardening notes
- Token-gated by default. The Control UI is started with token auth and a generated token; it is never open.
- Treat the token as admin/shell access. OpenClaw is an autonomous agent that can execute tasks and browse the web from its own container. Anyone with the token controls the agent, so keep it private and rotate it if leaked.
- Digest-pinned base. Each build is auditable and reproducible.
- Healthcheck gates traffic.
/healthmust return success before the platform routes requests. - Isolated per instance. Each deployment is its own container with its own volume and token.
Backups
The single volume holds all state:
docker run --rm -v openclaw_openclaw-data:/data -v "$PWD":/backup alpine \
tar czf /backup/openclaw-data.tgz -C /data .
The /home/node/.openclaw volume contains the token, configuration, and agent memory. On the RemarkableCloud App Platform, volume backups follow the platform’s backup schedule.
Upgrades
- New builds ship as new
-rtags. Pull the new tag and recreate the container; state persists in the volume:docker compose pull openclaw && docker compose up -d openclaw - Read the changelog. Every build is listed in
CHANGELOG.mdwith the base image digest and any behavior changes.
Changelog
Each build is pinned by digest and recorded here, so you can see what changed before you pull a new tag.
-
2026.9.4-r1Current Sep 11, 2026
OpenClaw and other product names are trademarks of their respective owners. RemarkableCloud is not affiliated with or endorsed by them.
FAQ
OpenClaw in Docker, answered.
Short answers from the people who build and run this image.
Do I need a database?
No. OpenClaw keeps all state in the /home/node/.openclaw volume; there is no external database.
How do I log in the first time?
The gateway token is printed once to the container log on first run. Open the Control UI, paste the token into Settings, then add your LLM API key.
Do I need my own LLM key?
Yes. OpenClaw calls an external LLM provider (OpenAI, Anthropic, and many others); add your key in the Control UI or via environment.
Is it safe to expose publicly?
It is token-gated, so it is not open. But because the agent can execute tasks, treat the token as administrative access: keep it private, and rotate it if it leaks.
How does HTTPS work if the container serves HTTP on 18789?
TLS is terminated at the reverse proxy (Traefik on the App Platform), which forwards to port 18789 on the internal network.
Pull it, or let us run it.
The same image runs OpenClaw on our managed servers, updates and monitoring included.