@quantumclaw/quantumclaw 2026.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4601 -0
- package/LICENSE +21 -0
- package/README.md +559 -0
- package/assets/avatar-placeholder.svg +19 -0
- package/assets/chrome-extension/icons/icon128.png +0 -0
- package/assets/chrome-extension/icons/icon16.png +0 -0
- package/assets/chrome-extension/icons/icon32.png +0 -0
- package/assets/chrome-extension/icons/icon48.png +0 -0
- package/assets/dmg-background-small.png +0 -0
- package/assets/dmg-background.png +0 -0
- package/docs/.i18n/README.md +31 -0
- package/docs/.i18n/glossary.ja-JP.json +14 -0
- package/docs/.i18n/glossary.zh-CN.json +302 -0
- package/docs/.i18n/ja-JP.tm.jsonl +0 -0
- package/docs/assets/install-script.svg +1 -0
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/quantumclaw-logo-text-dark.png +0 -0
- package/docs/assets/quantumclaw-logo-text-dark.svg +418 -0
- package/docs/assets/quantumclaw-logo-text.png +0 -0
- package/docs/assets/quantumclaw-logo-text.svg +418 -0
- package/docs/assets/showcase/agents-ui.jpg +0 -0
- package/docs/assets/showcase/bambu-cli.png +0 -0
- package/docs/assets/showcase/codexmonitor.png +0 -0
- package/docs/assets/showcase/gohome-grafana.png +0 -0
- package/docs/assets/showcase/ios-testflight.jpg +0 -0
- package/docs/assets/showcase/oura-health.png +0 -0
- package/docs/assets/showcase/padel-cli.svg +11 -0
- package/docs/assets/showcase/padel-screenshot.jpg +0 -0
- package/docs/assets/showcase/papla-tts.jpg +0 -0
- package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
- package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
- package/docs/assets/showcase/roborock-status.svg +13 -0
- package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
- package/docs/assets/showcase/snag.png +0 -0
- package/docs/assets/showcase/tesco-shop.jpg +0 -0
- package/docs/assets/showcase/wienerlinien.png +0 -0
- package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
- package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
- package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
- package/docs/assets/sponsors/blacksmith.svg +14 -0
- package/docs/assets/sponsors/convex.svg +16 -0
- package/docs/assets/sponsors/openai.svg +3 -0
- package/docs/assets/sponsors/vercel.svg +5 -0
- package/docs/auth-credential-semantics.md +53 -0
- package/docs/automation/auth-monitoring.md +44 -0
- package/docs/automation/cron-jobs.md +727 -0
- package/docs/automation/cron-vs-heartbeat.md +286 -0
- package/docs/automation/gmail-pubsub.md +256 -0
- package/docs/automation/hooks.md +1056 -0
- package/docs/automation/poll.md +86 -0
- package/docs/automation/standing-orders.md +251 -0
- package/docs/automation/troubleshooting.md +122 -0
- package/docs/automation/webhook.md +217 -0
- package/docs/brave-search.md +93 -0
- package/docs/channels/bluebubbles.md +347 -0
- package/docs/channels/broadcast-groups.md +442 -0
- package/docs/channels/channel-routing.md +139 -0
- package/docs/channels/discord.md +1229 -0
- package/docs/channels/feishu.md +747 -0
- package/docs/channels/googlechat.md +261 -0
- package/docs/channels/group-messages.md +84 -0
- package/docs/channels/groups.md +379 -0
- package/docs/channels/imessage.md +367 -0
- package/docs/channels/index.md +47 -0
- package/docs/channels/irc.md +242 -0
- package/docs/channels/line.md +194 -0
- package/docs/channels/location.md +56 -0
- package/docs/channels/matrix.md +677 -0
- package/docs/channels/mattermost.md +427 -0
- package/docs/channels/msteams.md +780 -0
- package/docs/channels/nextcloud-talk.md +138 -0
- package/docs/channels/nostr.md +249 -0
- package/docs/channels/pairing.md +114 -0
- package/docs/channels/signal.md +329 -0
- package/docs/channels/slack.md +603 -0
- package/docs/channels/synology-chat.md +134 -0
- package/docs/channels/telegram.md +987 -0
- package/docs/channels/tlon.md +276 -0
- package/docs/channels/troubleshooting.md +118 -0
- package/docs/channels/twitch.md +379 -0
- package/docs/channels/whatsapp.md +460 -0
- package/docs/channels/zalo.md +243 -0
- package/docs/channels/zalouser.md +181 -0
- package/docs/ci.md +55 -0
- package/docs/cli/acp.md +288 -0
- package/docs/cli/agent.md +29 -0
- package/docs/cli/agents.md +123 -0
- package/docs/cli/approvals.md +50 -0
- package/docs/cli/backup.md +76 -0
- package/docs/cli/browser.md +106 -0
- package/docs/cli/channels.md +102 -0
- package/docs/cli/clawbot.md +21 -0
- package/docs/cli/completion.md +35 -0
- package/docs/cli/config.md +295 -0
- package/docs/cli/configure.md +36 -0
- package/docs/cli/cron.md +77 -0
- package/docs/cli/daemon.md +53 -0
- package/docs/cli/dashboard.md +22 -0
- package/docs/cli/devices.md +139 -0
- package/docs/cli/directory.md +63 -0
- package/docs/cli/dns.md +23 -0
- package/docs/cli/docs.md +15 -0
- package/docs/cli/doctor.md +48 -0
- package/docs/cli/gateway.md +235 -0
- package/docs/cli/health.md +21 -0
- package/docs/cli/hooks.md +329 -0
- package/docs/cli/index.md +1150 -0
- package/docs/cli/logs.md +28 -0
- package/docs/cli/memory.md +66 -0
- package/docs/cli/message.md +278 -0
- package/docs/cli/models.md +81 -0
- package/docs/cli/node.md +127 -0
- package/docs/cli/nodes.md +75 -0
- package/docs/cli/onboard.md +157 -0
- package/docs/cli/pairing.md +32 -0
- package/docs/cli/plugins.md +210 -0
- package/docs/cli/qr.md +46 -0
- package/docs/cli/reset.md +20 -0
- package/docs/cli/sandbox.md +197 -0
- package/docs/cli/secrets.md +188 -0
- package/docs/cli/security.md +79 -0
- package/docs/cli/sessions.md +110 -0
- package/docs/cli/setup.md +29 -0
- package/docs/cli/skills.md +36 -0
- package/docs/cli/status.md +30 -0
- package/docs/cli/system.md +60 -0
- package/docs/cli/tui.md +30 -0
- package/docs/cli/uninstall.md +20 -0
- package/docs/cli/update.md +103 -0
- package/docs/cli/voicecall.md +34 -0
- package/docs/cli/webhooks.md +25 -0
- package/docs/concepts/agent-loop.md +148 -0
- package/docs/concepts/agent-workspace.md +236 -0
- package/docs/concepts/agent.md +122 -0
- package/docs/concepts/architecture.md +137 -0
- package/docs/concepts/compaction.md +123 -0
- package/docs/concepts/context-engine.md +268 -0
- package/docs/concepts/context.md +172 -0
- package/docs/concepts/delegate-architecture.md +296 -0
- package/docs/concepts/features.md +73 -0
- package/docs/concepts/markdown-formatting.md +130 -0
- package/docs/concepts/memory.md +108 -0
- package/docs/concepts/messages.md +154 -0
- package/docs/concepts/model-failover.md +152 -0
- package/docs/concepts/model-providers.md +607 -0
- package/docs/concepts/models.md +225 -0
- package/docs/concepts/multi-agent.md +552 -0
- package/docs/concepts/oauth.md +158 -0
- package/docs/concepts/presence.md +102 -0
- package/docs/concepts/queue.md +89 -0
- package/docs/concepts/retry.md +69 -0
- package/docs/concepts/session-pruning.md +121 -0
- package/docs/concepts/session-tool.md +242 -0
- package/docs/concepts/session.md +310 -0
- package/docs/concepts/streaming.md +155 -0
- package/docs/concepts/system-prompt.md +132 -0
- package/docs/concepts/timezone.md +91 -0
- package/docs/concepts/typebox.md +291 -0
- package/docs/concepts/typing-indicators.md +68 -0
- package/docs/concepts/usage-tracking.md +35 -0
- package/docs/date-time.md +128 -0
- package/docs/debug/node-issue.md +85 -0
- package/docs/diagnostics/flags.md +91 -0
- package/docs/docs.json +2078 -0
- package/docs/gateway/authentication.md +179 -0
- package/docs/gateway/background-process.md +97 -0
- package/docs/gateway/bonjour.md +177 -0
- package/docs/gateway/bridge-protocol.md +91 -0
- package/docs/gateway/cli-backends.md +225 -0
- package/docs/gateway/configuration-examples.md +651 -0
- package/docs/gateway/configuration-reference.md +3123 -0
- package/docs/gateway/configuration.md +633 -0
- package/docs/gateway/discovery.md +123 -0
- package/docs/gateway/doctor.md +362 -0
- package/docs/gateway/gateway-lock.md +34 -0
- package/docs/gateway/health.md +44 -0
- package/docs/gateway/heartbeat.md +393 -0
- package/docs/gateway/index.md +261 -0
- package/docs/gateway/local-models.md +152 -0
- package/docs/gateway/logging.md +113 -0
- package/docs/gateway/multiple-gateways.md +112 -0
- package/docs/gateway/network-model.md +22 -0
- package/docs/gateway/openai-http-api.md +132 -0
- package/docs/gateway/openresponses-http-api.md +295 -0
- package/docs/gateway/openshell.md +307 -0
- package/docs/gateway/pairing.md +99 -0
- package/docs/gateway/protocol.md +267 -0
- package/docs/gateway/remote-gateway-readme.md +158 -0
- package/docs/gateway/remote.md +153 -0
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +134 -0
- package/docs/gateway/sandboxing.md +469 -0
- package/docs/gateway/secrets-plan-contract.md +116 -0
- package/docs/gateway/secrets.md +503 -0
- package/docs/gateway/security/index.md +1220 -0
- package/docs/gateway/tailscale.md +132 -0
- package/docs/gateway/tools-invoke-http-api.md +118 -0
- package/docs/gateway/troubleshooting.md +378 -0
- package/docs/gateway/trusted-proxy-auth.md +330 -0
- package/docs/help/debugging.md +168 -0
- package/docs/help/environment.md +163 -0
- package/docs/help/faq.md +2997 -0
- package/docs/help/index.md +28 -0
- package/docs/help/scripts.md +28 -0
- package/docs/help/testing.md +526 -0
- package/docs/help/troubleshooting.md +297 -0
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-step2-create-app.png +0 -0
- package/docs/images/feishu-step3-credentials.png +0 -0
- package/docs/images/feishu-step4-permissions.png +0 -0
- package/docs/images/feishu-step5-bot-capability.png +0 -0
- package/docs/images/feishu-step6-event-subscription.png +0 -0
- package/docs/images/feishu-verification-token.png +0 -0
- package/docs/images/groups-flow.svg +52 -0
- package/docs/images/mobile-ui-screenshot.png +0 -0
- package/docs/index.md +196 -0
- package/docs/install/ansible.md +230 -0
- package/docs/install/azure.md +311 -0
- package/docs/install/bun.md +55 -0
- package/docs/install/development-channels.md +120 -0
- package/docs/install/digitalocean.md +129 -0
- package/docs/install/docker-vm-runtime.md +142 -0
- package/docs/install/docker.md +375 -0
- package/docs/install/exe-dev.md +126 -0
- package/docs/install/fly.md +501 -0
- package/docs/install/gcp.md +402 -0
- package/docs/install/hetzner.md +251 -0
- package/docs/install/index.md +183 -0
- package/docs/install/installer.md +415 -0
- package/docs/install/kubernetes.md +191 -0
- package/docs/install/macos-vm.md +281 -0
- package/docs/install/migrating-matrix.md +346 -0
- package/docs/install/migrating.md +110 -0
- package/docs/install/nix.md +89 -0
- package/docs/install/node.md +138 -0
- package/docs/install/northflank.mdx +54 -0
- package/docs/install/oracle.md +156 -0
- package/docs/install/podman.md +133 -0
- package/docs/install/railway.mdx +100 -0
- package/docs/install/raspberry-pi.md +159 -0
- package/docs/install/render.mdx +169 -0
- package/docs/install/uninstall.md +128 -0
- package/docs/install/updating.md +128 -0
- package/docs/ja-JP/index.md +186 -0
- package/docs/ja-JP/start/getting-started.md +125 -0
- package/docs/ja-JP/start/wizard.md +77 -0
- package/docs/logging.md +352 -0
- package/docs/nav-tabs-underline.js +100 -0
- package/docs/network.md +54 -0
- package/docs/nodes/audio.md +187 -0
- package/docs/nodes/camera.md +162 -0
- package/docs/nodes/images.md +72 -0
- package/docs/nodes/index.md +393 -0
- package/docs/nodes/location-command.md +98 -0
- package/docs/nodes/media-understanding.md +394 -0
- package/docs/nodes/talk.md +92 -0
- package/docs/nodes/troubleshooting.md +114 -0
- package/docs/nodes/voicewake.md +66 -0
- package/docs/perplexity.md +174 -0
- package/docs/pi-dev.md +80 -0
- package/docs/pi.md +567 -0
- package/docs/platforms/android.md +168 -0
- package/docs/platforms/digitalocean.md +266 -0
- package/docs/platforms/index.md +54 -0
- package/docs/platforms/ios.md +220 -0
- package/docs/platforms/linux.md +94 -0
- package/docs/platforms/mac/bundled-gateway.md +73 -0
- package/docs/platforms/mac/canvas.md +125 -0
- package/docs/platforms/mac/child-process.md +69 -0
- package/docs/platforms/mac/dev-setup.md +104 -0
- package/docs/platforms/mac/health.md +34 -0
- package/docs/platforms/mac/icon.md +31 -0
- package/docs/platforms/mac/logging.md +57 -0
- package/docs/platforms/mac/menu-bar.md +81 -0
- package/docs/platforms/mac/peekaboo.md +65 -0
- package/docs/platforms/mac/permissions.md +50 -0
- package/docs/platforms/mac/remote.md +84 -0
- package/docs/platforms/mac/signing.md +47 -0
- package/docs/platforms/mac/skills.md +33 -0
- package/docs/platforms/mac/voice-overlay.md +60 -0
- package/docs/platforms/mac/voicewake.md +67 -0
- package/docs/platforms/mac/webchat.md +43 -0
- package/docs/platforms/mac/xpc.md +61 -0
- package/docs/platforms/macos.md +226 -0
- package/docs/platforms/oracle.md +303 -0
- package/docs/platforms/raspberry-pi.md +412 -0
- package/docs/platforms/windows.md +241 -0
- package/docs/plugins/agent-tools.md +10 -0
- package/docs/plugins/architecture.md +1366 -0
- package/docs/plugins/building-extensions.md +10 -0
- package/docs/plugins/building-plugins.md +239 -0
- package/docs/plugins/bundles.md +181 -0
- package/docs/plugins/community.md +145 -0
- package/docs/plugins/manifest.md +241 -0
- package/docs/plugins/sdk-channel-plugins.md +370 -0
- package/docs/plugins/sdk-entrypoints.md +161 -0
- package/docs/plugins/sdk-migration.md +172 -0
- package/docs/plugins/sdk-overview.md +196 -0
- package/docs/plugins/sdk-provider-plugins.md +370 -0
- package/docs/plugins/sdk-runtime.md +345 -0
- package/docs/plugins/sdk-setup.md +331 -0
- package/docs/plugins/sdk-testing.md +263 -0
- package/docs/plugins/voice-call.md +380 -0
- package/docs/plugins/zalouser.md +77 -0
- package/docs/prose.md +134 -0
- package/docs/providers/anthropic.md +259 -0
- package/docs/providers/bedrock.md +176 -0
- package/docs/providers/claude-max-api-proxy.md +154 -0
- package/docs/providers/cloudflare-ai-gateway.md +71 -0
- package/docs/providers/deepgram.md +93 -0
- package/docs/providers/github-copilot.md +72 -0
- package/docs/providers/glm.md +43 -0
- package/docs/providers/google.md +78 -0
- package/docs/providers/groq.md +96 -0
- package/docs/providers/huggingface.md +209 -0
- package/docs/providers/index.md +69 -0
- package/docs/providers/kilocode.md +74 -0
- package/docs/providers/litellm.md +154 -0
- package/docs/providers/minimax.md +224 -0
- package/docs/providers/mistral.md +54 -0
- package/docs/providers/models.md +45 -0
- package/docs/providers/modelstudio.md +66 -0
- package/docs/providers/moonshot.md +175 -0
- package/docs/providers/nvidia.md +55 -0
- package/docs/providers/ollama.md +352 -0
- package/docs/providers/openai.md +303 -0
- package/docs/providers/opencode-go.md +45 -0
- package/docs/providers/opencode.md +64 -0
- package/docs/providers/openrouter.md +37 -0
- package/docs/providers/perplexity-provider.md +62 -0
- package/docs/providers/qianfan.md +38 -0
- package/docs/providers/qwen.md +53 -0
- package/docs/providers/sglang.md +104 -0
- package/docs/providers/synthetic.md +99 -0
- package/docs/providers/together.md +66 -0
- package/docs/providers/venice.md +282 -0
- package/docs/providers/vercel-ai-gateway.md +60 -0
- package/docs/providers/vllm.md +92 -0
- package/docs/providers/volcengine.md +74 -0
- package/docs/providers/xai.md +60 -0
- package/docs/providers/xiaomi.md +86 -0
- package/docs/providers/zai.md +46 -0
- package/docs/reference/AGENTS.default.md +126 -0
- package/docs/reference/RELEASING.md +42 -0
- package/docs/reference/api-usage-costs.md +144 -0
- package/docs/reference/credits.md +30 -0
- package/docs/reference/device-models.md +47 -0
- package/docs/reference/memory-config.md +711 -0
- package/docs/reference/prompt-caching.md +185 -0
- package/docs/reference/rpc.md +43 -0
- package/docs/reference/secretref-credential-surface.md +140 -0
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +563 -0
- package/docs/reference/session-management-compaction.md +324 -0
- package/docs/reference/templates/AGENTS.dev.md +83 -0
- package/docs/reference/templates/AGENTS.md +219 -0
- package/docs/reference/templates/BOOT.md +11 -0
- package/docs/reference/templates/BOOTSTRAP.md +62 -0
- package/docs/reference/templates/HEARTBEAT.md +14 -0
- package/docs/reference/templates/IDENTITY.dev.md +47 -0
- package/docs/reference/templates/IDENTITY.md +29 -0
- package/docs/reference/templates/SOUL.dev.md +76 -0
- package/docs/reference/templates/SOUL.md +43 -0
- package/docs/reference/templates/TOOLS.dev.md +24 -0
- package/docs/reference/templates/TOOLS.md +47 -0
- package/docs/reference/templates/USER.dev.md +18 -0
- package/docs/reference/templates/USER.md +23 -0
- package/docs/reference/test.md +90 -0
- package/docs/reference/token-use.md +175 -0
- package/docs/reference/transcript-hygiene.md +151 -0
- package/docs/reference/wizard.md +235 -0
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +98 -0
- package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
- package/docs/security/formal-verification.md +167 -0
- package/docs/start/bootstrapping.md +41 -0
- package/docs/start/docs-directory.md +66 -0
- package/docs/start/getting-started.md +116 -0
- package/docs/start/hubs.md +198 -0
- package/docs/start/lore.md +219 -0
- package/docs/start/onboarding-overview.md +67 -0
- package/docs/start/onboarding.md +91 -0
- package/docs/start/openclaw.md +221 -0
- package/docs/start/quickstart.md +22 -0
- package/docs/start/setup.md +164 -0
- package/docs/start/showcase.md +418 -0
- package/docs/start/wizard-cli-automation.md +215 -0
- package/docs/start/wizard-cli-reference.md +299 -0
- package/docs/start/wizard.md +125 -0
- package/docs/style.css +37 -0
- package/docs/tools/acp-agents.md +623 -0
- package/docs/tools/agent-send.md +100 -0
- package/docs/tools/apply-patch.md +51 -0
- package/docs/tools/brave-search.md +93 -0
- package/docs/tools/browser-linux-troubleshooting.md +138 -0
- package/docs/tools/browser-login.md +73 -0
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +211 -0
- package/docs/tools/browser.md +731 -0
- package/docs/tools/btw.md +142 -0
- package/docs/tools/capability-cookbook.md +119 -0
- package/docs/tools/clawhub.md +298 -0
- package/docs/tools/creating-skills.md +117 -0
- package/docs/tools/diffs.md +386 -0
- package/docs/tools/elevated.md +114 -0
- package/docs/tools/exec-approvals.md +430 -0
- package/docs/tools/exec.md +207 -0
- package/docs/tools/firecrawl.md +140 -0
- package/docs/tools/index.md +137 -0
- package/docs/tools/llm-task.md +119 -0
- package/docs/tools/lobster.md +340 -0
- package/docs/tools/loop-detection.md +100 -0
- package/docs/tools/multi-agent-sandbox-tools.md +364 -0
- package/docs/tools/pdf.md +156 -0
- package/docs/tools/perplexity-search.md +174 -0
- package/docs/tools/plugin.md +255 -0
- package/docs/tools/reactions.md +64 -0
- package/docs/tools/skills-config.md +86 -0
- package/docs/tools/skills.md +309 -0
- package/docs/tools/slash-commands.md +294 -0
- package/docs/tools/subagents.md +295 -0
- package/docs/tools/tavily.md +125 -0
- package/docs/tools/thinking.md +96 -0
- package/docs/tools/tts.md +406 -0
- package/docs/tools/web.md +516 -0
- package/docs/tts.md +406 -0
- package/docs/vps.md +112 -0
- package/docs/web/control-ui.md +275 -0
- package/docs/web/dashboard.md +54 -0
- package/docs/web/index.md +120 -0
- package/docs/web/tui.md +170 -0
- package/docs/web/webchat.md +61 -0
- package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
- package/docs/whatsapp-openclaw.jpg +0 -0
- package/docs/zh-CN/AGENTS.md +61 -0
- package/docs/zh-CN/automation/auth-monitoring.md +47 -0
- package/docs/zh-CN/automation/cron-jobs.md +435 -0
- package/docs/zh-CN/automation/cron-vs-heartbeat.md +286 -0
- package/docs/zh-CN/automation/gmail-pubsub.md +249 -0
- package/docs/zh-CN/automation/hooks.md +1051 -0
- package/docs/zh-CN/automation/poll.md +76 -0
- package/docs/zh-CN/automation/troubleshooting.md +8 -0
- package/docs/zh-CN/automation/webhook.md +163 -0
- package/docs/zh-CN/brave-search.md +60 -0
- package/docs/zh-CN/channels/bluebubbles.md +354 -0
- package/docs/zh-CN/channels/broadcast-groups.md +449 -0
- package/docs/zh-CN/channels/channel-routing.md +117 -0
- package/docs/zh-CN/channels/discord.md +468 -0
- package/docs/zh-CN/channels/feishu.md +728 -0
- package/docs/zh-CN/channels/googlechat.md +257 -0
- package/docs/zh-CN/channels/grammy.md +38 -0
- package/docs/zh-CN/channels/group-messages.md +91 -0
- package/docs/zh-CN/channels/groups.md +379 -0
- package/docs/zh-CN/channels/imessage.md +302 -0
- package/docs/zh-CN/channels/index.md +53 -0
- package/docs/zh-CN/channels/line.md +180 -0
- package/docs/zh-CN/channels/location.md +63 -0
- package/docs/zh-CN/channels/matrix.md +221 -0
- package/docs/zh-CN/channels/mattermost.md +144 -0
- package/docs/zh-CN/channels/msteams.md +775 -0
- package/docs/zh-CN/channels/nextcloud-talk.md +142 -0
- package/docs/zh-CN/channels/nostr.md +249 -0
- package/docs/zh-CN/channels/pairing.md +89 -0
- package/docs/zh-CN/channels/signal.md +209 -0
- package/docs/zh-CN/channels/slack.md +531 -0
- package/docs/zh-CN/channels/synology-chat.md +138 -0
- package/docs/zh-CN/channels/telegram.md +751 -0
- package/docs/zh-CN/channels/tlon.md +136 -0
- package/docs/zh-CN/channels/troubleshooting.md +36 -0
- package/docs/zh-CN/channels/twitch.md +385 -0
- package/docs/zh-CN/channels/whatsapp.md +411 -0
- package/docs/zh-CN/channels/zalo.md +196 -0
- package/docs/zh-CN/channels/zalouser.md +147 -0
- package/docs/zh-CN/cli/acp.md +173 -0
- package/docs/zh-CN/cli/agent.md +30 -0
- package/docs/zh-CN/cli/agents.md +82 -0
- package/docs/zh-CN/cli/approvals.md +57 -0
- package/docs/zh-CN/cli/browser.md +114 -0
- package/docs/zh-CN/cli/channels.md +86 -0
- package/docs/zh-CN/cli/config.md +57 -0
- package/docs/zh-CN/cli/configure.md +38 -0
- package/docs/zh-CN/cli/cron.md +43 -0
- package/docs/zh-CN/cli/dashboard.md +23 -0
- package/docs/zh-CN/cli/devices.md +74 -0
- package/docs/zh-CN/cli/directory.md +70 -0
- package/docs/zh-CN/cli/dns.md +30 -0
- package/docs/zh-CN/cli/docs.md +22 -0
- package/docs/zh-CN/cli/doctor.md +48 -0
- package/docs/zh-CN/cli/gateway.md +206 -0
- package/docs/zh-CN/cli/health.md +28 -0
- package/docs/zh-CN/cli/hooks.md +298 -0
- package/docs/zh-CN/cli/index.md +1143 -0
- package/docs/zh-CN/cli/logs.md +31 -0
- package/docs/zh-CN/cli/memory.md +52 -0
- package/docs/zh-CN/cli/message.md +246 -0
- package/docs/zh-CN/cli/models.md +85 -0
- package/docs/zh-CN/cli/node.md +115 -0
- package/docs/zh-CN/cli/nodes.md +80 -0
- package/docs/zh-CN/cli/onboard.md +164 -0
- package/docs/zh-CN/cli/pairing.md +28 -0
- package/docs/zh-CN/cli/plugins.md +66 -0
- package/docs/zh-CN/cli/reset.md +24 -0
- package/docs/zh-CN/cli/sandbox.md +158 -0
- package/docs/zh-CN/cli/security.md +33 -0
- package/docs/zh-CN/cli/sessions.md +23 -0
- package/docs/zh-CN/cli/setup.md +36 -0
- package/docs/zh-CN/cli/skills.md +33 -0
- package/docs/zh-CN/cli/status.md +33 -0
- package/docs/zh-CN/cli/system.md +63 -0
- package/docs/zh-CN/cli/tui.md +30 -0
- package/docs/zh-CN/cli/uninstall.md +24 -0
- package/docs/zh-CN/cli/update.md +101 -0
- package/docs/zh-CN/cli/voicecall.md +41 -0
- package/docs/zh-CN/cli/webhooks.md +32 -0
- package/docs/zh-CN/concepts/agent-loop.md +146 -0
- package/docs/zh-CN/concepts/agent-workspace.md +219 -0
- package/docs/zh-CN/concepts/agent.md +115 -0
- package/docs/zh-CN/concepts/architecture.md +123 -0
- package/docs/zh-CN/concepts/compaction.md +67 -0
- package/docs/zh-CN/concepts/context.md +168 -0
- package/docs/zh-CN/concepts/features.md +59 -0
- package/docs/zh-CN/concepts/markdown-formatting.md +117 -0
- package/docs/zh-CN/concepts/memory.md +412 -0
- package/docs/zh-CN/concepts/messages.md +141 -0
- package/docs/zh-CN/concepts/model-failover.md +145 -0
- package/docs/zh-CN/concepts/model-providers.md +606 -0
- package/docs/zh-CN/concepts/models.md +225 -0
- package/docs/zh-CN/concepts/multi-agent.md +372 -0
- package/docs/zh-CN/concepts/oauth.md +164 -0
- package/docs/zh-CN/concepts/presence.md +99 -0
- package/docs/zh-CN/concepts/queue.md +94 -0
- package/docs/zh-CN/concepts/retry.md +76 -0
- package/docs/zh-CN/concepts/session-pruning.md +129 -0
- package/docs/zh-CN/concepts/session-tool.md +200 -0
- package/docs/zh-CN/concepts/session.md +166 -0
- package/docs/zh-CN/concepts/streaming.md +133 -0
- package/docs/zh-CN/concepts/system-prompt.md +101 -0
- package/docs/zh-CN/concepts/timezone.md +96 -0
- package/docs/zh-CN/concepts/typebox.md +284 -0
- package/docs/zh-CN/concepts/typing-indicators.md +74 -0
- package/docs/zh-CN/concepts/usage-tracking.md +42 -0
- package/docs/zh-CN/date-time.md +129 -0
- package/docs/zh-CN/debug/node-issue.md +90 -0
- package/docs/zh-CN/diagnostics/flags.md +98 -0
- package/docs/zh-CN/gateway/authentication.md +184 -0
- package/docs/zh-CN/gateway/background-process.md +100 -0
- package/docs/zh-CN/gateway/bonjour.md +174 -0
- package/docs/zh-CN/gateway/bridge-protocol.md +86 -0
- package/docs/zh-CN/gateway/cli-backends.md +213 -0
- package/docs/zh-CN/gateway/configuration-examples.md +587 -0
- package/docs/zh-CN/gateway/configuration-reference.md +3103 -0
- package/docs/zh-CN/gateway/configuration.md +640 -0
- package/docs/zh-CN/gateway/discovery.md +123 -0
- package/docs/zh-CN/gateway/doctor.md +238 -0
- package/docs/zh-CN/gateway/gateway-lock.md +41 -0
- package/docs/zh-CN/gateway/health.md +42 -0
- package/docs/zh-CN/gateway/heartbeat.md +274 -0
- package/docs/zh-CN/gateway/index.md +335 -0
- package/docs/zh-CN/gateway/local-models.md +159 -0
- package/docs/zh-CN/gateway/logging.md +114 -0
- package/docs/zh-CN/gateway/multiple-gateways.md +119 -0
- package/docs/zh-CN/gateway/network-model.md +23 -0
- package/docs/zh-CN/gateway/openai-http-api.md +125 -0
- package/docs/zh-CN/gateway/openresponses-http-api.md +317 -0
- package/docs/zh-CN/gateway/pairing.md +99 -0
- package/docs/zh-CN/gateway/protocol.md +220 -0
- package/docs/zh-CN/gateway/remote-gateway-readme.md +164 -0
- package/docs/zh-CN/gateway/remote.md +133 -0
- package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +135 -0
- package/docs/zh-CN/gateway/sandboxing.md +188 -0
- package/docs/zh-CN/gateway/security/index.md +777 -0
- package/docs/zh-CN/gateway/tailscale.md +124 -0
- package/docs/zh-CN/gateway/tools-invoke-http-api.md +92 -0
- package/docs/zh-CN/gateway/troubleshooting.md +771 -0
- package/docs/zh-CN/help/debugging.md +160 -0
- package/docs/zh-CN/help/environment.md +88 -0
- package/docs/zh-CN/help/faq.md +2640 -0
- package/docs/zh-CN/help/index.md +28 -0
- package/docs/zh-CN/help/scripts.md +35 -0
- package/docs/zh-CN/help/testing.md +375 -0
- package/docs/zh-CN/help/troubleshooting.md +104 -0
- package/docs/zh-CN/index.md +186 -0
- package/docs/zh-CN/install/ansible.md +215 -0
- package/docs/zh-CN/install/bun.md +65 -0
- package/docs/zh-CN/install/development-channels.md +81 -0
- package/docs/zh-CN/install/docker.md +532 -0
- package/docs/zh-CN/install/exe-dev.md +133 -0
- package/docs/zh-CN/install/fly.md +490 -0
- package/docs/zh-CN/install/gcp.md +510 -0
- package/docs/zh-CN/install/hetzner.md +337 -0
- package/docs/zh-CN/install/index.md +235 -0
- package/docs/zh-CN/install/installer.md +422 -0
- package/docs/zh-CN/install/macos-vm.md +288 -0
- package/docs/zh-CN/install/migrating.md +199 -0
- package/docs/zh-CN/install/nix.md +99 -0
- package/docs/zh-CN/install/node.md +8 -0
- package/docs/zh-CN/install/northflank.mdx +60 -0
- package/docs/zh-CN/install/railway.mdx +106 -0
- package/docs/zh-CN/install/render.mdx +169 -0
- package/docs/zh-CN/install/uninstall.md +135 -0
- package/docs/zh-CN/install/updating.md +233 -0
- package/docs/zh-CN/logging.md +329 -0
- package/docs/zh-CN/network.md +59 -0
- package/docs/zh-CN/nodes/audio.md +120 -0
- package/docs/zh-CN/nodes/camera.md +162 -0
- package/docs/zh-CN/nodes/images.md +79 -0
- package/docs/zh-CN/nodes/index.md +348 -0
- package/docs/zh-CN/nodes/location-command.md +120 -0
- package/docs/zh-CN/nodes/media-understanding.md +380 -0
- package/docs/zh-CN/nodes/talk.md +97 -0
- package/docs/zh-CN/nodes/troubleshooting.md +8 -0
- package/docs/zh-CN/nodes/voicewake.md +72 -0
- package/docs/zh-CN/perplexity.md +102 -0
- package/docs/zh-CN/pi-dev.md +77 -0
- package/docs/zh-CN/pi.md +619 -0
- package/docs/zh-CN/platforms/android.md +155 -0
- package/docs/zh-CN/platforms/digitalocean.md +273 -0
- package/docs/zh-CN/platforms/index.md +60 -0
- package/docs/zh-CN/platforms/ios.md +114 -0
- package/docs/zh-CN/platforms/linux.md +100 -0
- package/docs/zh-CN/platforms/mac/bundled-gateway.md +75 -0
- package/docs/zh-CN/platforms/mac/canvas.md +128 -0
- package/docs/zh-CN/platforms/mac/child-process.md +73 -0
- package/docs/zh-CN/platforms/mac/dev-setup.md +109 -0
- package/docs/zh-CN/platforms/mac/health.md +41 -0
- package/docs/zh-CN/platforms/mac/icon.md +38 -0
- package/docs/zh-CN/platforms/mac/logging.md +64 -0
- package/docs/zh-CN/platforms/mac/menu-bar.md +88 -0
- package/docs/zh-CN/platforms/mac/peekaboo.md +62 -0
- package/docs/zh-CN/platforms/mac/permissions.md +46 -0
- package/docs/zh-CN/platforms/mac/remote.md +90 -0
- package/docs/zh-CN/platforms/mac/signing.md +54 -0
- package/docs/zh-CN/platforms/mac/skills.md +40 -0
- package/docs/zh-CN/platforms/mac/voice-overlay.md +67 -0
- package/docs/zh-CN/platforms/mac/voicewake.md +74 -0
- package/docs/zh-CN/platforms/mac/webchat.md +43 -0
- package/docs/zh-CN/platforms/mac/xpc.md +68 -0
- package/docs/zh-CN/platforms/macos.md +193 -0
- package/docs/zh-CN/platforms/oracle.md +310 -0
- package/docs/zh-CN/platforms/raspberry-pi.md +416 -0
- package/docs/zh-CN/platforms/windows.md +247 -0
- package/docs/zh-CN/plugins/agent-tools.md +99 -0
- package/docs/zh-CN/plugins/manifest.md +68 -0
- package/docs/zh-CN/plugins/voice-call.md +250 -0
- package/docs/zh-CN/plugins/zalouser.md +88 -0
- package/docs/zh-CN/prose.md +141 -0
- package/docs/zh-CN/providers/anthropic.md +265 -0
- package/docs/zh-CN/providers/bedrock.md +170 -0
- package/docs/zh-CN/providers/claude-max-api-proxy.md +155 -0
- package/docs/zh-CN/providers/cloudflare-ai-gateway.md +78 -0
- package/docs/zh-CN/providers/deepgram.md +97 -0
- package/docs/zh-CN/providers/github-copilot.md +67 -0
- package/docs/zh-CN/providers/glm.md +50 -0
- package/docs/zh-CN/providers/huggingface.md +216 -0
- package/docs/zh-CN/providers/index.md +69 -0
- package/docs/zh-CN/providers/kilocode.md +80 -0
- package/docs/zh-CN/providers/litellm.md +160 -0
- package/docs/zh-CN/providers/minimax.md +222 -0
- package/docs/zh-CN/providers/mistral.md +61 -0
- package/docs/zh-CN/providers/models.md +51 -0
- package/docs/zh-CN/providers/moonshot.md +182 -0
- package/docs/zh-CN/providers/nvidia.md +62 -0
- package/docs/zh-CN/providers/ollama.md +359 -0
- package/docs/zh-CN/providers/openai.md +308 -0
- package/docs/zh-CN/providers/opencode-go.md +52 -0
- package/docs/zh-CN/providers/opencode.md +71 -0
- package/docs/zh-CN/providers/openrouter.md +44 -0
- package/docs/zh-CN/providers/qianfan.md +45 -0
- package/docs/zh-CN/providers/qwen.md +55 -0
- package/docs/zh-CN/providers/sglang.md +111 -0
- package/docs/zh-CN/providers/synthetic.md +106 -0
- package/docs/zh-CN/providers/together.md +72 -0
- package/docs/zh-CN/providers/venice.md +289 -0
- package/docs/zh-CN/providers/vercel-ai-gateway.md +66 -0
- package/docs/zh-CN/providers/xiaomi.md +93 -0
- package/docs/zh-CN/providers/zai.md +53 -0
- package/docs/zh-CN/reference/AGENTS.default.md +131 -0
- package/docs/zh-CN/reference/RELEASING.md +48 -0
- package/docs/zh-CN/reference/api-usage-costs.md +141 -0
- package/docs/zh-CN/reference/credits.md +34 -0
- package/docs/zh-CN/reference/device-models.md +54 -0
- package/docs/zh-CN/reference/rpc.md +48 -0
- package/docs/zh-CN/reference/session-management-compaction.md +287 -0
- package/docs/zh-CN/reference/templates/AGENTS.dev.md +89 -0
- package/docs/zh-CN/reference/templates/AGENTS.md +225 -0
- package/docs/zh-CN/reference/templates/BOOT.md +17 -0
- package/docs/zh-CN/reference/templates/BOOTSTRAP.md +68 -0
- package/docs/zh-CN/reference/templates/HEARTBEAT.md +18 -0
- package/docs/zh-CN/reference/templates/IDENTITY.dev.md +54 -0
- package/docs/zh-CN/reference/templates/IDENTITY.md +36 -0
- package/docs/zh-CN/reference/templates/SOUL.dev.md +83 -0
- package/docs/zh-CN/reference/templates/SOUL.md +49 -0
- package/docs/zh-CN/reference/templates/TOOLS.dev.md +31 -0
- package/docs/zh-CN/reference/templates/TOOLS.md +53 -0
- package/docs/zh-CN/reference/templates/USER.dev.md +25 -0
- package/docs/zh-CN/reference/templates/USER.md +30 -0
- package/docs/zh-CN/reference/test.md +57 -0
- package/docs/zh-CN/reference/token-use.md +119 -0
- package/docs/zh-CN/reference/transcript-hygiene.md +109 -0
- package/docs/zh-CN/reference/wizard.md +242 -0
- package/docs/zh-CN/security/formal-verification.md +171 -0
- package/docs/zh-CN/start/bootstrapping.md +9 -0
- package/docs/zh-CN/start/docs-directory.md +70 -0
- package/docs/zh-CN/start/getting-started.md +143 -0
- package/docs/zh-CN/start/hubs.md +194 -0
- package/docs/zh-CN/start/lore.md +226 -0
- package/docs/zh-CN/start/onboarding-overview.md +58 -0
- package/docs/zh-CN/start/onboarding.md +105 -0
- package/docs/zh-CN/start/openclaw.md +248 -0
- package/docs/zh-CN/start/quickstart.md +88 -0
- package/docs/zh-CN/start/setup.md +153 -0
- package/docs/zh-CN/start/showcase.md +423 -0
- package/docs/zh-CN/start/wizard-cli-automation.md +222 -0
- package/docs/zh-CN/start/wizard-cli-reference.md +306 -0
- package/docs/zh-CN/start/wizard.md +132 -0
- package/docs/zh-CN/tools/agent-send.md +59 -0
- package/docs/zh-CN/tools/apply-patch.md +57 -0
- package/docs/zh-CN/tools/browser-linux-troubleshooting.md +144 -0
- package/docs/zh-CN/tools/browser-login.md +75 -0
- package/docs/zh-CN/tools/browser.md +553 -0
- package/docs/zh-CN/tools/chrome-extension.md +183 -0
- package/docs/zh-CN/tools/clawhub.md +209 -0
- package/docs/zh-CN/tools/creating-skills.md +61 -0
- package/docs/zh-CN/tools/elevated.md +64 -0
- package/docs/zh-CN/tools/exec-approvals.md +234 -0
- package/docs/zh-CN/tools/exec.md +169 -0
- package/docs/zh-CN/tools/firecrawl.md +68 -0
- package/docs/zh-CN/tools/index.md +515 -0
- package/docs/zh-CN/tools/llm-task.md +117 -0
- package/docs/zh-CN/tools/lobster.md +349 -0
- package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +401 -0
- package/docs/zh-CN/tools/plugin.md +1612 -0
- package/docs/zh-CN/tools/reactions.md +29 -0
- package/docs/zh-CN/tools/skills-config.md +78 -0
- package/docs/zh-CN/tools/skills.md +279 -0
- package/docs/zh-CN/tools/slash-commands.md +205 -0
- package/docs/zh-CN/tools/subagents.md +167 -0
- package/docs/zh-CN/tools/thinking.md +80 -0
- package/docs/zh-CN/tools/web.md +289 -0
- package/docs/zh-CN/tts.md +375 -0
- package/docs/zh-CN/vps.md +47 -0
- package/docs/zh-CN/web/control-ui.md +191 -0
- package/docs/zh-CN/web/dashboard.md +53 -0
- package/docs/zh-CN/web/index.md +118 -0
- package/docs/zh-CN/web/tui.md +166 -0
- package/docs/zh-CN/web/webchat.md +56 -0
- package/package.json +841 -0
- package/quantumclaw.mjs +135 -0
- package/skills/1password/SKILL.md +70 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/apple-notes/SKILL.md +77 -0
- package/skills/apple-reminders/SKILL.md +118 -0
- package/skills/bear-notes/SKILL.md +107 -0
- package/skills/blogwatcher/SKILL.md +69 -0
- package/skills/blucli/SKILL.md +47 -0
- package/skills/bluebubbles/SKILL.md +131 -0
- package/skills/camsnap/SKILL.md +45 -0
- package/skills/canvas/SKILL.md +198 -0
- package/skills/clawhub/SKILL.md +77 -0
- package/skills/coding-agent/SKILL.md +295 -0
- package/skills/discord/SKILL.md +197 -0
- package/skills/eightctl/SKILL.md +50 -0
- package/skills/gemini/SKILL.md +43 -0
- package/skills/gh-issues/SKILL.md +865 -0
- package/skills/gifgrep/SKILL.md +79 -0
- package/skills/github/SKILL.md +163 -0
- package/skills/gog/SKILL.md +116 -0
- package/skills/goplaces/SKILL.md +52 -0
- package/skills/healthcheck/SKILL.md +245 -0
- package/skills/himalaya/SKILL.md +257 -0
- package/skills/himalaya/references/configuration.md +184 -0
- package/skills/himalaya/references/message-composition.md +199 -0
- package/skills/imsg/SKILL.md +122 -0
- package/skills/mcporter/SKILL.md +61 -0
- package/skills/model-usage/SKILL.md +69 -0
- package/skills/model-usage/references/codexbar-cli.md +33 -0
- package/skills/model-usage/scripts/model_usage.py +320 -0
- package/skills/model-usage/scripts/test_model_usage.py +40 -0
- package/skills/nano-pdf/SKILL.md +38 -0
- package/skills/node-connect/SKILL.md +142 -0
- package/skills/notion/SKILL.md +174 -0
- package/skills/obsidian/SKILL.md +81 -0
- package/skills/openai-image-gen/SKILL.md +92 -0
- package/skills/openai-image-gen/scripts/gen.py +328 -0
- package/skills/openai-image-gen/scripts/test_gen.py +140 -0
- package/skills/openai-whisper/SKILL.md +38 -0
- package/skills/openai-whisper-api/SKILL.md +52 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
- package/skills/openhue/SKILL.md +112 -0
- package/skills/oracle/SKILL.md +125 -0
- package/skills/ordercli/SKILL.md +78 -0
- package/skills/peekaboo/SKILL.md +190 -0
- package/skills/sag/SKILL.md +87 -0
- package/skills/session-logs/SKILL.md +115 -0
- package/skills/sherpa-onnx-tts/SKILL.md +103 -0
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
- package/skills/skill-creator/SKILL.md +372 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/scripts/init_skill.py +378 -0
- package/skills/skill-creator/scripts/package_skill.py +139 -0
- package/skills/skill-creator/scripts/quick_validate.py +159 -0
- package/skills/skill-creator/scripts/test_package_skill.py +160 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +49 -0
- package/skills/sonoscli/SKILL.md +65 -0
- package/skills/spotify-player/SKILL.md +64 -0
- package/skills/summarize/SKILL.md +87 -0
- package/skills/things-mac/SKILL.md +86 -0
- package/skills/tmux/SKILL.md +153 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +95 -0
- package/skills/video-frames/SKILL.md +46 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/voice-call/SKILL.md +45 -0
- package/skills/wacli/SKILL.md +72 -0
- package/skills/weather/SKILL.md +112 -0
- package/skills/xurl/SKILL.md +461 -0
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Run QuantumClaw Gateway 24/7 on a GCP Compute Engine VM (Docker) with durable state"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want QuantumClaw running 24/7 on GCP
|
|
5
|
+
- You want a production-grade, always-on Gateway on your own VM
|
|
6
|
+
- You want full control over persistence, binaries, and restart behavior
|
|
7
|
+
title: "GCP"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# QuantumClaw on GCP Compute Engine (Docker, Production VPS Guide)
|
|
11
|
+
|
|
12
|
+
## Goal
|
|
13
|
+
|
|
14
|
+
Run a persistent QuantumClaw Gateway on a GCP Compute Engine VM using Docker, with durable state, baked-in binaries, and safe restart behavior.
|
|
15
|
+
|
|
16
|
+
If you want "QuantumClaw 24/7 for ~$5-12/mo", this is a reliable setup on Google Cloud.
|
|
17
|
+
Pricing varies by machine type and region; pick the smallest VM that fits your workload and scale up if you hit OOMs.
|
|
18
|
+
|
|
19
|
+
## What are we doing (simple terms)?
|
|
20
|
+
|
|
21
|
+
- Create a GCP project and enable billing
|
|
22
|
+
- Create a Compute Engine VM
|
|
23
|
+
- Install Docker (isolated app runtime)
|
|
24
|
+
- Start the QuantumClaw Gateway in Docker
|
|
25
|
+
- Persist `~/.quantumclaw` + `~/.quantumclaw/workspace` on the host (survives restarts/rebuilds)
|
|
26
|
+
- Access the Control UI from your laptop via an SSH tunnel
|
|
27
|
+
|
|
28
|
+
The Gateway can be accessed via:
|
|
29
|
+
|
|
30
|
+
- SSH port forwarding from your laptop
|
|
31
|
+
- Direct port exposure if you manage firewalling and tokens yourself
|
|
32
|
+
|
|
33
|
+
This guide uses Debian on GCP Compute Engine.
|
|
34
|
+
Ubuntu also works; map packages accordingly.
|
|
35
|
+
For the generic Docker flow, see [Docker](/install/docker).
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Quick path (experienced operators)
|
|
40
|
+
|
|
41
|
+
1. Create GCP project + enable Compute Engine API
|
|
42
|
+
2. Create Compute Engine VM (e2-small, Debian 12, 20GB)
|
|
43
|
+
3. SSH into the VM
|
|
44
|
+
4. Install Docker
|
|
45
|
+
5. Clone QuantumClaw repository
|
|
46
|
+
6. Create persistent host directories
|
|
47
|
+
7. Configure `.env` and `docker-compose.yml`
|
|
48
|
+
8. Bake required binaries, build, and launch
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## What you need
|
|
53
|
+
|
|
54
|
+
- GCP account (free tier eligible for e2-micro)
|
|
55
|
+
- gcloud CLI installed (or use Cloud Console)
|
|
56
|
+
- SSH access from your laptop
|
|
57
|
+
- Basic comfort with SSH + copy/paste
|
|
58
|
+
- ~20-30 minutes
|
|
59
|
+
- Docker and Docker Compose
|
|
60
|
+
- Model auth credentials
|
|
61
|
+
- Optional provider credentials
|
|
62
|
+
- WhatsApp QR
|
|
63
|
+
- Telegram bot token
|
|
64
|
+
- Gmail OAuth
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
<Steps>
|
|
69
|
+
<Step title="Install gcloud CLI (or use Console)">
|
|
70
|
+
**Option A: gcloud CLI** (recommended for automation)
|
|
71
|
+
|
|
72
|
+
Install from [https://cloud.google.com/sdk/docs/install](https://cloud.google.com/sdk/docs/install)
|
|
73
|
+
|
|
74
|
+
Initialize and authenticate:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
gcloud init
|
|
78
|
+
gcloud auth login
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Option B: Cloud Console**
|
|
82
|
+
|
|
83
|
+
All steps can be done via the web UI at [https://console.cloud.google.com](https://console.cloud.google.com)
|
|
84
|
+
|
|
85
|
+
</Step>
|
|
86
|
+
|
|
87
|
+
<Step title="Create a GCP project">
|
|
88
|
+
**CLI:**
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
gcloud projects create my-quantumclaw-project --name="QuantumClaw Gateway"
|
|
92
|
+
gcloud config set project my-quantumclaw-project
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Enable billing at [https://console.cloud.google.com/billing](https://console.cloud.google.com/billing) (required for Compute Engine).
|
|
96
|
+
|
|
97
|
+
Enable the Compute Engine API:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
gcloud services enable compute.googleapis.com
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Console:**
|
|
104
|
+
|
|
105
|
+
1. Go to IAM & Admin > Create Project
|
|
106
|
+
2. Name it and create
|
|
107
|
+
3. Enable billing for the project
|
|
108
|
+
4. Navigate to APIs & Services > Enable APIs > search "Compute Engine API" > Enable
|
|
109
|
+
|
|
110
|
+
</Step>
|
|
111
|
+
|
|
112
|
+
<Step title="Create the VM">
|
|
113
|
+
**Machine types:**
|
|
114
|
+
|
|
115
|
+
| Type | Specs | Cost | Notes |
|
|
116
|
+
| --------- | ------------------------ | ------------------ | -------------------------------------------- |
|
|
117
|
+
| e2-medium | 2 vCPU, 4GB RAM | ~$25/mo | Most reliable for local Docker builds |
|
|
118
|
+
| e2-small | 2 vCPU, 2GB RAM | ~$12/mo | Minimum recommended for Docker build |
|
|
119
|
+
| e2-micro | 2 vCPU (shared), 1GB RAM | Free tier eligible | Often fails with Docker build OOM (exit 137) |
|
|
120
|
+
|
|
121
|
+
**CLI:**
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
gcloud compute instances create quantumclaw-gateway \
|
|
125
|
+
--zone=us-central1-a \
|
|
126
|
+
--machine-type=e2-small \
|
|
127
|
+
--boot-disk-size=20GB \
|
|
128
|
+
--image-family=debian-12 \
|
|
129
|
+
--image-project=debian-cloud
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Console:**
|
|
133
|
+
|
|
134
|
+
1. Go to Compute Engine > VM instances > Create instance
|
|
135
|
+
2. Name: `quantumclaw-gateway`
|
|
136
|
+
3. Region: `us-central1`, Zone: `us-central1-a`
|
|
137
|
+
4. Machine type: `e2-small`
|
|
138
|
+
5. Boot disk: Debian 12, 20GB
|
|
139
|
+
6. Create
|
|
140
|
+
|
|
141
|
+
</Step>
|
|
142
|
+
|
|
143
|
+
<Step title="SSH into the VM">
|
|
144
|
+
**CLI:**
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
gcloud compute ssh quantumclaw-gateway --zone=us-central1-a
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Console:**
|
|
151
|
+
|
|
152
|
+
Click the "SSH" button next to your VM in the Compute Engine dashboard.
|
|
153
|
+
|
|
154
|
+
Note: SSH key propagation can take 1-2 minutes after VM creation. If connection is refused, wait and retry.
|
|
155
|
+
|
|
156
|
+
</Step>
|
|
157
|
+
|
|
158
|
+
<Step title="Install Docker (on the VM)">
|
|
159
|
+
```bash
|
|
160
|
+
sudo apt-get update
|
|
161
|
+
sudo apt-get install -y git curl ca-certificates
|
|
162
|
+
curl -fsSL https://get.docker.com | sudo sh
|
|
163
|
+
sudo usermod -aG docker $USER
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Log out and back in for the group change to take effect:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
exit
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Then SSH back in:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
gcloud compute ssh quantumclaw-gateway --zone=us-central1-a
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Verify:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
docker --version
|
|
182
|
+
docker compose version
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
</Step>
|
|
186
|
+
|
|
187
|
+
<Step title="Clone the QuantumClaw repository">
|
|
188
|
+
```bash
|
|
189
|
+
git clone https://github.com/quantumclaw/quantumclaw.git
|
|
190
|
+
cd quantumclaw
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
This guide assumes you will build a custom image to guarantee binary persistence.
|
|
194
|
+
|
|
195
|
+
</Step>
|
|
196
|
+
|
|
197
|
+
<Step title="Create persistent host directories">
|
|
198
|
+
Docker containers are ephemeral.
|
|
199
|
+
All long-lived state must live on the host.
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
mkdir -p ~/.quantumclaw
|
|
203
|
+
mkdir -p ~/.quantumclaw/workspace
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
</Step>
|
|
207
|
+
|
|
208
|
+
<Step title="Configure environment variables">
|
|
209
|
+
Create `.env` in the repository root.
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
QUANTUMCLAW_IMAGE=quantumclaw:latest
|
|
213
|
+
QUANTUMCLAW_GATEWAY_TOKEN=change-me-now
|
|
214
|
+
QUANTUMCLAW_GATEWAY_BIND=lan
|
|
215
|
+
QUANTUMCLAW_GATEWAY_PORT=18789
|
|
216
|
+
|
|
217
|
+
QUANTUMCLAW_CONFIG_DIR=/home/$USER/.quantumclaw
|
|
218
|
+
QUANTUMCLAW_WORKSPACE_DIR=/home/$USER/.quantumclaw/workspace
|
|
219
|
+
|
|
220
|
+
GOG_KEYRING_PASSWORD=change-me-now
|
|
221
|
+
XDG_CONFIG_HOME=/home/node/.quantumclaw
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Generate strong secrets:
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
openssl rand -hex 32
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Do not commit this file.**
|
|
231
|
+
|
|
232
|
+
</Step>
|
|
233
|
+
|
|
234
|
+
<Step title="Docker Compose configuration">
|
|
235
|
+
Create or update `docker-compose.yml`.
|
|
236
|
+
|
|
237
|
+
```yaml
|
|
238
|
+
services:
|
|
239
|
+
quantumclaw-gateway:
|
|
240
|
+
image: ${QUANTUMCLAW_IMAGE}
|
|
241
|
+
build: .
|
|
242
|
+
restart: unless-stopped
|
|
243
|
+
env_file:
|
|
244
|
+
- .env
|
|
245
|
+
environment:
|
|
246
|
+
- HOME=/home/node
|
|
247
|
+
- NODE_ENV=production
|
|
248
|
+
- TERM=xterm-256color
|
|
249
|
+
- QUANTUMCLAW_GATEWAY_BIND=${QUANTUMCLAW_GATEWAY_BIND}
|
|
250
|
+
- QUANTUMCLAW_GATEWAY_PORT=${QUANTUMCLAW_GATEWAY_PORT}
|
|
251
|
+
- QUANTUMCLAW_GATEWAY_TOKEN=${QUANTUMCLAW_GATEWAY_TOKEN}
|
|
252
|
+
- GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
|
|
253
|
+
- XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
|
|
254
|
+
- PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
255
|
+
volumes:
|
|
256
|
+
- ${QUANTUMCLAW_CONFIG_DIR}:/home/node/.quantumclaw
|
|
257
|
+
- ${QUANTUMCLAW_WORKSPACE_DIR}:/home/node/.quantumclaw/workspace
|
|
258
|
+
ports:
|
|
259
|
+
# Recommended: keep the Gateway loopback-only on the VM; access via SSH tunnel.
|
|
260
|
+
# To expose it publicly, remove the `127.0.0.1:` prefix and firewall accordingly.
|
|
261
|
+
- "127.0.0.1:${QUANTUMCLAW_GATEWAY_PORT}:18789"
|
|
262
|
+
command:
|
|
263
|
+
[
|
|
264
|
+
"node",
|
|
265
|
+
"dist/index.js",
|
|
266
|
+
"gateway",
|
|
267
|
+
"--bind",
|
|
268
|
+
"${QUANTUMCLAW_GATEWAY_BIND}",
|
|
269
|
+
"--port",
|
|
270
|
+
"${QUANTUMCLAW_GATEWAY_PORT}",
|
|
271
|
+
"--allow-unconfigured",
|
|
272
|
+
]
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
`--allow-unconfigured` is only for bootstrap convenience, it is not a replacement for a proper gateway configuration. Still set auth (`gateway.auth.token` or password) and use safe bind settings for your deployment.
|
|
276
|
+
|
|
277
|
+
</Step>
|
|
278
|
+
|
|
279
|
+
<Step title="Shared Docker VM runtime steps">
|
|
280
|
+
Use the shared runtime guide for the common Docker host flow:
|
|
281
|
+
|
|
282
|
+
- [Bake required binaries into the image](/install/docker-vm-runtime#bake-required-binaries-into-the-image)
|
|
283
|
+
- [Build and launch](/install/docker-vm-runtime#build-and-launch)
|
|
284
|
+
- [What persists where](/install/docker-vm-runtime#what-persists-where)
|
|
285
|
+
- [Updates](/install/docker-vm-runtime#updates)
|
|
286
|
+
|
|
287
|
+
</Step>
|
|
288
|
+
|
|
289
|
+
<Step title="GCP-specific launch notes">
|
|
290
|
+
On GCP, if build fails with `Killed` or `exit code 137` during `pnpm install --frozen-lockfile`, the VM is out of memory. Use `e2-small` minimum, or `e2-medium` for more reliable first builds.
|
|
291
|
+
|
|
292
|
+
When binding to LAN (`QUANTUMCLAW_GATEWAY_BIND=lan`), configure a trusted browser origin before continuing:
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
docker compose run --rm quantumclaw-cli config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789"]' --strict-json
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
If you changed the gateway port, replace `18789` with your configured port.
|
|
299
|
+
|
|
300
|
+
</Step>
|
|
301
|
+
|
|
302
|
+
<Step title="Access from your laptop">
|
|
303
|
+
Create an SSH tunnel to forward the Gateway port:
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
gcloud compute ssh quantumclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Open in your browser:
|
|
310
|
+
|
|
311
|
+
`http://127.0.0.1:18789/`
|
|
312
|
+
|
|
313
|
+
Fetch a fresh tokenized dashboard link:
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
docker compose run --rm quantumclaw-cli dashboard --no-open
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Paste the token from that URL.
|
|
320
|
+
|
|
321
|
+
If Control UI shows `unauthorized` or `disconnected (1008): pairing required`, approve the browser device:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
docker compose run --rm quantumclaw-cli devices list
|
|
325
|
+
docker compose run --rm quantumclaw-cli devices approve <requestId>
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
Need the shared persistence and update reference again?
|
|
329
|
+
See [Docker VM Runtime](/install/docker-vm-runtime#what-persists-where) and [Docker VM Runtime updates](/install/docker-vm-runtime#updates).
|
|
330
|
+
|
|
331
|
+
</Step>
|
|
332
|
+
</Steps>
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## Troubleshooting
|
|
337
|
+
|
|
338
|
+
**SSH connection refused**
|
|
339
|
+
|
|
340
|
+
SSH key propagation can take 1-2 minutes after VM creation. Wait and retry.
|
|
341
|
+
|
|
342
|
+
**OS Login issues**
|
|
343
|
+
|
|
344
|
+
Check your OS Login profile:
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
gcloud compute os-login describe-profile
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
Ensure your account has the required IAM permissions (Compute OS Login or Compute OS Admin Login).
|
|
351
|
+
|
|
352
|
+
**Out of memory (OOM)**
|
|
353
|
+
|
|
354
|
+
If Docker build fails with `Killed` and `exit code 137`, the VM was OOM-killed. Upgrade to e2-small (minimum) or e2-medium (recommended for reliable local builds):
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
# Stop the VM first
|
|
358
|
+
gcloud compute instances stop quantumclaw-gateway --zone=us-central1-a
|
|
359
|
+
|
|
360
|
+
# Change machine type
|
|
361
|
+
gcloud compute instances set-machine-type quantumclaw-gateway \
|
|
362
|
+
--zone=us-central1-a \
|
|
363
|
+
--machine-type=e2-small
|
|
364
|
+
|
|
365
|
+
# Start the VM
|
|
366
|
+
gcloud compute instances start quantumclaw-gateway --zone=us-central1-a
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## Service accounts (security best practice)
|
|
372
|
+
|
|
373
|
+
For personal use, your default user account works fine.
|
|
374
|
+
|
|
375
|
+
For automation or CI/CD pipelines, create a dedicated service account with minimal permissions:
|
|
376
|
+
|
|
377
|
+
1. Create a service account:
|
|
378
|
+
|
|
379
|
+
```bash
|
|
380
|
+
gcloud iam service-accounts create quantumclaw-deploy \
|
|
381
|
+
--display-name="QuantumClaw Deployment"
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
2. Grant Compute Instance Admin role (or narrower custom role):
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
gcloud projects add-iam-policy-binding my-quantumclaw-project \
|
|
388
|
+
--member="serviceAccount:quantumclaw-deploy@my-quantumclaw-project.iam.gserviceaccount.com" \
|
|
389
|
+
--role="roles/compute.instanceAdmin.v1"
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
Avoid using the Owner role for automation. Use the principle of least privilege.
|
|
393
|
+
|
|
394
|
+
See [https://cloud.google.com/iam/docs/understanding-roles](https://cloud.google.com/iam/docs/understanding-roles) for IAM role details.
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
## Next steps
|
|
399
|
+
|
|
400
|
+
- Set up messaging channels: [Channels](/channels)
|
|
401
|
+
- Pair local devices as nodes: [Nodes](/nodes)
|
|
402
|
+
- Configure the Gateway: [Gateway configuration](/gateway/configuration)
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Run QuantumClaw Gateway 24/7 on a cheap Hetzner VPS (Docker) with durable state and baked-in binaries"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want QuantumClaw running 24/7 on a cloud VPS (not your laptop)
|
|
5
|
+
- You want a production-grade, always-on Gateway on your own VPS
|
|
6
|
+
- You want full control over persistence, binaries, and restart behavior
|
|
7
|
+
- You are running QuantumClaw in Docker on Hetzner or a similar provider
|
|
8
|
+
title: "Hetzner"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# QuantumClaw on Hetzner (Docker, Production VPS Guide)
|
|
12
|
+
|
|
13
|
+
## Goal
|
|
14
|
+
|
|
15
|
+
Run a persistent QuantumClaw Gateway on a Hetzner VPS using Docker, with durable state, baked-in binaries, and safe restart behavior.
|
|
16
|
+
|
|
17
|
+
If you want “QuantumClaw 24/7 for ~$5”, this is the simplest reliable setup.
|
|
18
|
+
Hetzner pricing changes; pick the smallest Debian/Ubuntu VPS and scale up if you hit OOMs.
|
|
19
|
+
|
|
20
|
+
Security model reminder:
|
|
21
|
+
|
|
22
|
+
- Company-shared agents are fine when everyone is in the same trust boundary and the runtime is business-only.
|
|
23
|
+
- Keep strict separation: dedicated VPS/runtime + dedicated accounts; no personal Apple/Google/browser/password-manager profiles on that host.
|
|
24
|
+
- If users are adversarial to each other, split by gateway/host/OS user.
|
|
25
|
+
|
|
26
|
+
See [Security](/gateway/security) and [VPS hosting](/vps).
|
|
27
|
+
|
|
28
|
+
## What are we doing (simple terms)?
|
|
29
|
+
|
|
30
|
+
- Rent a small Linux server (Hetzner VPS)
|
|
31
|
+
- Install Docker (isolated app runtime)
|
|
32
|
+
- Start the QuantumClaw Gateway in Docker
|
|
33
|
+
- Persist `~/.quantumclaw` + `~/.quantumclaw/workspace` on the host (survives restarts/rebuilds)
|
|
34
|
+
- Access the Control UI from your laptop via an SSH tunnel
|
|
35
|
+
|
|
36
|
+
The Gateway can be accessed via:
|
|
37
|
+
|
|
38
|
+
- SSH port forwarding from your laptop
|
|
39
|
+
- Direct port exposure if you manage firewalling and tokens yourself
|
|
40
|
+
|
|
41
|
+
This guide assumes Ubuntu or Debian on Hetzner.
|
|
42
|
+
If you are on another Linux VPS, map packages accordingly.
|
|
43
|
+
For the generic Docker flow, see [Docker](/install/docker).
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Quick path (experienced operators)
|
|
48
|
+
|
|
49
|
+
1. Provision Hetzner VPS
|
|
50
|
+
2. Install Docker
|
|
51
|
+
3. Clone QuantumClaw repository
|
|
52
|
+
4. Create persistent host directories
|
|
53
|
+
5. Configure `.env` and `docker-compose.yml`
|
|
54
|
+
6. Bake required binaries into the image
|
|
55
|
+
7. `docker compose up -d`
|
|
56
|
+
8. Verify persistence and Gateway access
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## What you need
|
|
61
|
+
|
|
62
|
+
- Hetzner VPS with root access
|
|
63
|
+
- SSH access from your laptop
|
|
64
|
+
- Basic comfort with SSH + copy/paste
|
|
65
|
+
- ~20 minutes
|
|
66
|
+
- Docker and Docker Compose
|
|
67
|
+
- Model auth credentials
|
|
68
|
+
- Optional provider credentials
|
|
69
|
+
- WhatsApp QR
|
|
70
|
+
- Telegram bot token
|
|
71
|
+
- Gmail OAuth
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
<Steps>
|
|
76
|
+
<Step title="Provision the VPS">
|
|
77
|
+
Create an Ubuntu or Debian VPS in Hetzner.
|
|
78
|
+
|
|
79
|
+
Connect as root:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
ssh root@YOUR_VPS_IP
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
This guide assumes the VPS is stateful.
|
|
86
|
+
Do not treat it as disposable infrastructure.
|
|
87
|
+
|
|
88
|
+
</Step>
|
|
89
|
+
|
|
90
|
+
<Step title="Install Docker (on the VPS)">
|
|
91
|
+
```bash
|
|
92
|
+
apt-get update
|
|
93
|
+
apt-get install -y git curl ca-certificates
|
|
94
|
+
curl -fsSL https://get.docker.com | sh
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Verify:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
docker --version
|
|
101
|
+
docker compose version
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
</Step>
|
|
105
|
+
|
|
106
|
+
<Step title="Clone the QuantumClaw repository">
|
|
107
|
+
```bash
|
|
108
|
+
git clone https://github.com/quantumclaw/quantumclaw.git
|
|
109
|
+
cd quantumclaw
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
This guide assumes you will build a custom image to guarantee binary persistence.
|
|
113
|
+
|
|
114
|
+
</Step>
|
|
115
|
+
|
|
116
|
+
<Step title="Create persistent host directories">
|
|
117
|
+
Docker containers are ephemeral.
|
|
118
|
+
All long-lived state must live on the host.
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
mkdir -p /root/.quantumclaw/workspace
|
|
122
|
+
|
|
123
|
+
# Set ownership to the container user (uid 1000):
|
|
124
|
+
chown -R 1000:1000 /root/.quantumclaw
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
</Step>
|
|
128
|
+
|
|
129
|
+
<Step title="Configure environment variables">
|
|
130
|
+
Create `.env` in the repository root.
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
QUANTUMCLAW_IMAGE=quantumclaw:latest
|
|
134
|
+
QUANTUMCLAW_GATEWAY_TOKEN=change-me-now
|
|
135
|
+
QUANTUMCLAW_GATEWAY_BIND=lan
|
|
136
|
+
QUANTUMCLAW_GATEWAY_PORT=18789
|
|
137
|
+
|
|
138
|
+
QUANTUMCLAW_CONFIG_DIR=/root/.quantumclaw
|
|
139
|
+
QUANTUMCLAW_WORKSPACE_DIR=/root/.quantumclaw/workspace
|
|
140
|
+
|
|
141
|
+
GOG_KEYRING_PASSWORD=change-me-now
|
|
142
|
+
XDG_CONFIG_HOME=/home/node/.quantumclaw
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Generate strong secrets:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
openssl rand -hex 32
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Do not commit this file.**
|
|
152
|
+
|
|
153
|
+
</Step>
|
|
154
|
+
|
|
155
|
+
<Step title="Docker Compose configuration">
|
|
156
|
+
Create or update `docker-compose.yml`.
|
|
157
|
+
|
|
158
|
+
```yaml
|
|
159
|
+
services:
|
|
160
|
+
quantumclaw-gateway:
|
|
161
|
+
image: ${QUANTUMCLAW_IMAGE}
|
|
162
|
+
build: .
|
|
163
|
+
restart: unless-stopped
|
|
164
|
+
env_file:
|
|
165
|
+
- .env
|
|
166
|
+
environment:
|
|
167
|
+
- HOME=/home/node
|
|
168
|
+
- NODE_ENV=production
|
|
169
|
+
- TERM=xterm-256color
|
|
170
|
+
- QUANTUMCLAW_GATEWAY_BIND=${QUANTUMCLAW_GATEWAY_BIND}
|
|
171
|
+
- QUANTUMCLAW_GATEWAY_PORT=${QUANTUMCLAW_GATEWAY_PORT}
|
|
172
|
+
- QUANTUMCLAW_GATEWAY_TOKEN=${QUANTUMCLAW_GATEWAY_TOKEN}
|
|
173
|
+
- GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
|
|
174
|
+
- XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
|
|
175
|
+
- PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
176
|
+
volumes:
|
|
177
|
+
- ${QUANTUMCLAW_CONFIG_DIR}:/home/node/.quantumclaw
|
|
178
|
+
- ${QUANTUMCLAW_WORKSPACE_DIR}:/home/node/.quantumclaw/workspace
|
|
179
|
+
ports:
|
|
180
|
+
# Recommended: keep the Gateway loopback-only on the VPS; access via SSH tunnel.
|
|
181
|
+
# To expose it publicly, remove the `127.0.0.1:` prefix and firewall accordingly.
|
|
182
|
+
- "127.0.0.1:${QUANTUMCLAW_GATEWAY_PORT}:18789"
|
|
183
|
+
command:
|
|
184
|
+
[
|
|
185
|
+
"node",
|
|
186
|
+
"dist/index.js",
|
|
187
|
+
"gateway",
|
|
188
|
+
"--bind",
|
|
189
|
+
"${QUANTUMCLAW_GATEWAY_BIND}",
|
|
190
|
+
"--port",
|
|
191
|
+
"${QUANTUMCLAW_GATEWAY_PORT}",
|
|
192
|
+
"--allow-unconfigured",
|
|
193
|
+
]
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
`--allow-unconfigured` is only for bootstrap convenience, it is not a replacement for a proper gateway configuration. Still set auth (`gateway.auth.token` or password) and use safe bind settings for your deployment.
|
|
197
|
+
|
|
198
|
+
</Step>
|
|
199
|
+
|
|
200
|
+
<Step title="Shared Docker VM runtime steps">
|
|
201
|
+
Use the shared runtime guide for the common Docker host flow:
|
|
202
|
+
|
|
203
|
+
- [Bake required binaries into the image](/install/docker-vm-runtime#bake-required-binaries-into-the-image)
|
|
204
|
+
- [Build and launch](/install/docker-vm-runtime#build-and-launch)
|
|
205
|
+
- [What persists where](/install/docker-vm-runtime#what-persists-where)
|
|
206
|
+
- [Updates](/install/docker-vm-runtime#updates)
|
|
207
|
+
|
|
208
|
+
</Step>
|
|
209
|
+
|
|
210
|
+
<Step title="Hetzner-specific access">
|
|
211
|
+
After the shared build and launch steps, tunnel from your laptop:
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Open:
|
|
218
|
+
|
|
219
|
+
`http://127.0.0.1:18789/`
|
|
220
|
+
|
|
221
|
+
Paste your gateway token.
|
|
222
|
+
|
|
223
|
+
</Step>
|
|
224
|
+
</Steps>
|
|
225
|
+
|
|
226
|
+
The shared persistence map lives in [Docker VM Runtime](/install/docker-vm-runtime#what-persists-where).
|
|
227
|
+
|
|
228
|
+
## Infrastructure as Code (Terraform)
|
|
229
|
+
|
|
230
|
+
For teams preferring infrastructure-as-code workflows, a community-maintained Terraform setup provides:
|
|
231
|
+
|
|
232
|
+
- Modular Terraform configuration with remote state management
|
|
233
|
+
- Automated provisioning via cloud-init
|
|
234
|
+
- Deployment scripts (bootstrap, deploy, backup/restore)
|
|
235
|
+
- Security hardening (firewall, UFW, SSH-only access)
|
|
236
|
+
- SSH tunnel configuration for gateway access
|
|
237
|
+
|
|
238
|
+
**Repositories:**
|
|
239
|
+
|
|
240
|
+
- Infrastructure: [quantumclaw-terraform-hetzner](https://github.com/andreesg/quantumclaw-terraform-hetzner)
|
|
241
|
+
- Docker config: [quantumclaw-docker-config](https://github.com/andreesg/quantumclaw-docker-config)
|
|
242
|
+
|
|
243
|
+
This approach complements the Docker setup above with reproducible deployments, version-controlled infrastructure, and automated disaster recovery.
|
|
244
|
+
|
|
245
|
+
> **Note:** Community-maintained. For issues or contributions, see the repository links above.
|
|
246
|
+
|
|
247
|
+
## Next steps
|
|
248
|
+
|
|
249
|
+
- Set up messaging channels: [Channels](/channels)
|
|
250
|
+
- Configure the Gateway: [Gateway configuration](/gateway/configuration)
|
|
251
|
+
- Keep QuantumClaw up to date: [Updating](/install/updating)
|