{
  "title": "Add more binaries below using the same pattern",
  "content": "WORKDIR /app\nCOPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./\nCOPY ui/package.json ./ui/package.json\nCOPY scripts ./scripts\n\nRUN corepack enable\nRUN pnpm install --frozen-lockfile\n\nCOPY . .\nRUN pnpm build\nRUN pnpm ui:install\nRUN pnpm ui:build\n\nENV NODE_ENV=production\n\nCMD [\"node\",\"dist/index.js\"]\nbash theme={null}\ndocker compose build\ndocker compose up -d openclaw-gateway\nbash theme={null}\ndocker compose exec openclaw-gateway which gog\ndocker compose exec openclaw-gateway which goplaces\ndocker compose exec openclaw-gateway which wacli\n\n/usr/local/bin/gog\n/usr/local/bin/goplaces\n/usr/local/bin/wacli\nbash theme={null}\ndocker compose logs -f openclaw-gateway\n\n[gateway] listening on ws://0.0.0.0:18789\nbash theme={null}\nssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP\n```\n\n`http://127.0.0.1:18789/`\n\nPaste your gateway token.\n\n## What persists where (source of truth)\n\nOpenClaw runs in Docker, but Docker is not the source of truth.\nAll long-lived state must survive restarts, rebuilds, and reboots.\n\n| Component           | Location                          | Persistence mechanism  | Notes                            |\n| ------------------- | --------------------------------- | ---------------------- | -------------------------------- |\n| Gateway config      | `/home/node/.openclaw/`           | Host volume mount      | Includes `openclaw.json`, tokens |\n| Model auth profiles | `/home/node/.openclaw/`           | Host volume mount      | OAuth tokens, API keys           |\n| Skill configs       | `/home/node/.openclaw/skills/`    | Host volume mount      | Skill-level state                |\n| Agent workspace     | `/home/node/.openclaw/workspace/` | Host volume mount      | Code and agent artifacts         |\n| WhatsApp session    | `/home/node/.openclaw/`           | Host volume mount      | Preserves QR login               |\n| Gmail keyring       | `/home/node/.openclaw/`           | Host volume + password | Requires `GOG_KEYRING_PASSWORD`  |\n| External binaries   | `/usr/local/bin/`                 | Docker image           | Must be baked at build time      |\n| Node runtime        | Container filesystem              | Docker image           | Rebuilt every image build        |\n| OS packages         | Container filesystem              | Docker image           | Do not install at runtime        |\n| Docker container    | Ephemeral                         | Restartable            | Safe to destroy                  |",
  "code_samples": [
    {
      "code": "***\n\n## 8) Build and launch",
      "language": "unknown"
    },
    {
      "code": "Verify binaries:",
      "language": "unknown"
    },
    {
      "code": "Expected output:",
      "language": "unknown"
    },
    {
      "code": "***\n\n## 9) Verify Gateway",
      "language": "unknown"
    },
    {
      "code": "Success:",
      "language": "unknown"
    },
    {
      "code": "From your laptop:",
      "language": "unknown"
    }
  ],
  "headings": [
    {
      "level": "h2",
      "text": "8) Build and launch",
      "id": "8)-build-and-launch"
    },
    {
      "level": "h2",
      "text": "9) Verify Gateway",
      "id": "9)-verify-gateway"
    },
    {
      "level": "h2",
      "text": "What persists where (source of truth)",
      "id": "what-persists-where-(source-of-truth)"
    }
  ],
  "url": "llms-txt#add-more-binaries-below-using-the-same-pattern",
  "links": []
}