Continues from Installation. Run source secrets/inputs.sh before any make target that touches the VPS.
5. Provision the VPS
| |
6. Configure container secrets
| |
Required: OPENCLAW_GATEWAY_TOKEN, ANTHROPIC_API_KEY (or leave empty for subscription auth), TELEGRAM_BOT_TOKEN. See Secrets Reference for the full variable reference.
7. (Optional) Encrypt secrets at rest with SOPS
Complete step 6 first — make secrets-encrypt reads secrets/.env.
| |
Plain .env works for local use. SOPS is required for the GitOps auto-deploy workflow. See Secrets Reference § SOPS for the full workflow.
Adding extra services? If you plan to run additional services (e.g. Mission Control), copy
docker-compose.override.example.yml → docker-compose.override.ymlbefore the next step — it cannot be merged in after bootstrap without re-running it.
1 2cp docker-compose.override.example.yml docker-compose.override.yml vim docker-compose.override.yml
8. Bootstrap OpenClaw
| |
Creates directories, builds Docker images, pushes config, and starts containers — everything in one command.
Claude subscription auth: If you left
ANTHROPIC_API_KEYempty, runmake setup-authafter bootstrap to link your Claude subscription.
9. Verify
| |
Open http://localhost:18789 and paste your OPENCLAW_GATEWAY_TOKEN to authenticate.
Success looks like: Gateway UI loads, token is accepted, you can start a conversation.
Common failures:
make statusshows container restarting → checkmake logsfor missing env vars (most likelyOPENCLAW_GATEWAY_TOKENnot set in.env)make tunnelhangs → SSH key orSERVER_IPissue; verify withmake ssh- Gateway UI shows “Unauthorized” → wrong
OPENCLAW_GATEWAY_TOKEN
Access the Gateway
The gateway binds to 127.0.0.1:18789 (localhost only).
Via SSH tunnel (always available):
| |
Open http://localhost:18789 and paste your OPENCLAW_GATEWAY_TOKEN.
Via Tailscale Serve (if Tailscale is enabled):
| |
Dashboard available at https://openclaw-prod.<tailnet>.ts.net from any tailnet device.