DigitalOcean
OpenClaw on DigitalOcean (simple paid VPS option)
Goal
Run a persistent OpenClaw Gateway on DigitalOcean for $6/month (or $4/mo with reserved pricing).
If you want a $0/month option and don't mind ARM + provider-specific setup, see the ''Oracle Cloud guide''.
Cost Comparison (2026)
| Provider | Plan | Specs | Price/mo | Notes |
| | - |
Prerequisites
- DigitalOcean account (''signup with $200 free credit'')
- SSH key pair (or willingness to use password auth)
- ~20 minutes
1) Create a Droplet
1. Log into ''DigitalOcean''
2. Click Create β Droplets
3. Choose:
- Region: Closest to you (or your users)
- Image: Ubuntu 24.04 LTS
- Size: Basic β Regular β $6/mo (1 vCPU, 1GB RAM, 25GB SSD)
- Authentication: SSH key (recommended) or password
4. Click Create Droplet
5. Note the IP address
2) Connect via SSH
ssh root@YOUR_DROPLET_IP
3) Install OpenClaw
apt update && apt upgrade -y curl -fsSL https://deb.nodesource.com/setup_22.x | bash - apt install -y nodejs curl -fsSL https://openclaw.ai/install.sh | bash - openclaw --version
4) Run Onboarding
openclaw onboard --install-daemon
The wizard will walk you through:
- Model auth (API keys or OAuth)
- Channel setup (Telegram, WhatsApp, Discord, etc.)
- Gateway token (auto-generated)
- Daemon installation (systemd)
5) Verify the Gateway
openclaw status systemctl --user status openclaw-gateway.service journalctl --user -u openclaw-gateway.service -f
6) Access the Dashboard
The gateway binds to loopback by default. To access the Control UI:
Option A: SSH Tunnel (recommended)
ssh -L 18789:localhost:18789 root@YOUR_DROPLET_IP
Option B: Tailscale Serve (HTTPS, loopback-only)
curl -fsSL https://tailscale.com/install.sh | sh tailscale up openclaw config set gateway.tailscale.mode serve openclaw gateway restart
Open: ''https://<magicdns>/''
Notes:
- Serve keeps the Gateway loopback-only and authenticates via Tailscale identity headers.
- To require token/password instead, set ''gateway.auth.allowTailscale: false'' or use ''gateway.auth.mode: "password"''.
Option C: Tailnet bind (no Serve)
Open: ''http://<tailscale-ip>:18789'' (token required).
openclaw config set gateway.bind tailnet openclaw gateway restart
Open: ''http://<tailscale-ip>:18789'' (token required).
7) Connect Your Channels
#
Telegram
openclaw pairing list telegram openclaw pairing approve telegram '<CODE>'
#
openclaw channels login whatsapp
See ''Channels'' for other providers.
Persistence
All state lives in:
- ''~/.openclaw/'' β config, credentials, session data
- ''~/.openclaw/workspace/'' β workspace (SOUL.md, memory, etc.)
These survive reboots. Back them up periodically:
tar -czvf openclaw-backup.tar.gz ~/.openclaw ~/.openclaw/workspace
-- |
Troubleshooting
#
Gateway won't start
openclaw gateway status openclaw doctor --non-interactive journalctl -u openclaw --no-pager -n 50
#
Port already in use
lsof -i :18789 kill '<PID>'
#
Out of memory
free -h
---
See Also
- ''Hetzner guide'' β cheaper, more powerful
- ''Docker install'' β containerized setup
- ''Tailscale'' β secure remote access
- ''Configuration'' β full config reference