OpenClawSkills
GitHub
Platforms β€’ TutorialHeader.readTime

DigitalOcean

OpenClaw on DigitalOcean (simple paid VPS option)

Tutorial.step

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''.

Tutorial.step

Cost Comparison (2026)

| Provider | Plan | Specs | Price/mo | Notes |

| | - |

Tutorial.step

Prerequisites

- DigitalOcean account (''signup with $200 free credit'')

- SSH key pair (or willingness to use password auth)

- ~20 minutes

Tutorial.step

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

Tutorial.step

2) Connect via SSH

Bash
ssh root@YOUR_DROPLET_IP
Tutorial.step

3) Install OpenClaw

Bash
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
Tutorial.step

4) Run Onboarding

Bash
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)

Tutorial.step

5) Verify the Gateway

Bash
openclaw status

systemctl --user status openclaw-gateway.service

journalctl --user -u openclaw-gateway.service -f
Tutorial.step

6) Access the Dashboard

The gateway binds to loopback by default. To access the Control UI:

Option A: SSH Tunnel (recommended)

Bash
ssh -L 18789:localhost:18789 root@YOUR_DROPLET_IP

Option B: Tailscale Serve (HTTPS, loopback-only)

Bash
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).

Bash
openclaw config set gateway.bind tailnet
openclaw gateway restart

Open: ''http://<tailscale-ip>:18789'' (token required).

Tutorial.step

7) Connect Your Channels

#

Tutorial.step

Telegram

Bash
openclaw pairing list telegram
openclaw pairing approve telegram '<CODE>'

#

Tutorial.step

WhatsApp

Bash
openclaw channels login whatsapp

See ''Channels'' for other providers.

Tutorial.step

Persistence

All state lives in:

- ''~/.openclaw/'' β€” config, credentials, session data

- ''~/.openclaw/workspace/'' β€” workspace (SOUL.md, memory, etc.)

These survive reboots. Back them up periodically:

Bash
tar -czvf openclaw-backup.tar.gz ~/.openclaw ~/.openclaw/workspace

-- |

Tutorial.step

Troubleshooting

#

Tutorial.step

Gateway won't start

Bash
openclaw gateway status
openclaw doctor --non-interactive
journalctl -u openclaw --no-pager -n 50

#

Tutorial.step

Port already in use

Bash
lsof -i :18789
kill '<PID>'

#

Tutorial.step

Out of memory

Bash
free -h

---

Tutorial.step

See Also

- ''Hetzner guide'' β€” cheaper, more powerful

- ''Docker install'' β€” containerized setup

- ''Tailscale'' β€” secure remote access

- ''Configuration'' β€” full config reference