Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
Shared runtime steps for VM-based Docker installs such as GCP, Hetzner, and similar VPS providers.
Installing binaries inside a running container is a trap. Anything installed at runtime will be lost on restart.
All external binaries required by skills must be installed at image build time.
The examples below show three common binaries only:
goggogcligoplaceswacliThese are examples, not a complete list. You may install as many binaries as needed using the same pattern.
If you add new skills later that depend on additional binaries, you must:
Example Dockerfile
dockerfileFROM node:24-bookworm RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/* # Example binary 1: Gmail CLI (gogcli — installs as `gog`) # Copy the current Linux asset URL from https://github.com/steipete/gogcli/releases RUN curl -L https://github.com/steipete/gogcli/releases/latest/download/gogcli_linux_amd64.tar.gz \ | tar -xzO gog > /usr/local/bin/gog; \ chmod +x /usr/local/bin/gog # Example binary 2: Google Places CLI # Copy the current Linux asset URL from https://github.com/steipete/goplaces/releases RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_linux_amd64.tar.gz \ | tar -xzO goplaces > /usr/local/bin/goplaces; \ chmod +x /usr/local/bin/goplaces # Example binary 3: WhatsApp CLI # Copy the current Linux asset URL from https://github.com/steipete/wacli/releases RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli-linux-amd64.tar.gz \ | tar -xzO wacli > /usr/local/bin/wacli; \ chmod +x /usr/local/bin/wacli # Add more binaries below using the same pattern WORKDIR /app COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./ COPY ui/package.json ./ui/package.json COPY scripts ./scripts RUN corepack enable RUN pnpm install --frozen-lockfile COPY . . RUN pnpm build RUN pnpm ui:install RUN pnpm ui:build ENV NODE_ENV=production CMD ["node","dist/index.js"]
bashdocker compose build docker compose up -d openclaw-gateway
If build fails with
Killedexit code 137pnpm install --frozen-lockfileVerify binaries:
bashdocker compose exec openclaw-gateway which gog docker compose exec openclaw-gateway which goplaces docker compose exec openclaw-gateway which wacli
Expected output:
text/usr/local/bin/gog /usr/local/bin/goplaces /usr/local/bin/wacli
Verify Gateway:
bashdocker compose logs -f openclaw-gateway
Expected output:
text[gateway] listening on ws://0.0.0.0:18789
OpenClaw runs in Docker, but Docker is not the source of truth. All long-lived state must survive restarts, rebuilds, and reboots.
| Component | Location | Persistence mechanism | Notes |
|---|---|---|---|
| Gateway config | text /home/node/.openclaw/ | Host volume mount | Includes text openclaw.jsontext .env |
| Model auth profiles | text /home/node/.openclaw/agents/ | Host volume mount | text agents/<agentId>/agent/auth-profiles.json |
| Skill configs | text /home/node/.openclaw/skills/ | Host volume mount | Skill-level state |
| Agent workspace | text /home/node/.openclaw/workspace/ | Host volume mount | Code and agent artifacts |
| WhatsApp session | text /home/node/.openclaw/ | Host volume mount | Preserves QR login |
| Gmail keyring | text /home/node/.openclaw/ | Host volume + password | Requires text GOG_KEYRING_PASSWORD |
| Plugin runtime deps | text /var/lib/openclaw/plugin-runtime-deps/ | Docker named volume | Generated bundled plugin deps and runtime mirrors |
| External binaries | text /usr/local/bin/ | Docker image | Must be baked at build time |
| Node runtime | Container filesystem | Docker image | Rebuilt every image build |
| OS packages | Container filesystem | Docker image | Do not install at runtime |
| Docker container | Ephemeral | Restartable | Safe to destroy |
To update OpenClaw on the VM:
bashgit pull docker compose build docker compose up -d
© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine