Blog
Spin up deputyOS on DigitalOcean in 4 minutes
End-to-end DigitalOcean walkthrough: create a $4 droplet, paste the snapshot, point your channels at the public IP, done.
New to deputyOS? The fastest path is to run it on your laptop first — no cloud bill, no commitment. This post covers the always-on DigitalOcean route, which is the right next step if you don’t want hardware and want the assistant reachable from anywhere.
DigitalOcean is the easiest way to put deputyOS in the cloud. The 1-Click Marketplace listing is in flight; until that lands, here’s the manual path that’s almost as fast.
What you’ll need
- A DigitalOcean account.
- An SSH key uploaded to DigitalOcean.
- A model provider API key (OpenAI / Anthropic / OpenRouter / Bedrock — or pick the air-gapped tier and skip the cloud LLM).
Step 1: Import the snapshot
This is the temporary step until the Marketplace listing lands.
Until then: the snapshot ID is published in each release’s manifest. Go to the picker, choose:
- Hardware: DigitalOcean
- Profile: OpenClaw (or your choice)
- Tier: Standard
- Channel: Stable
The download link the picker gives you for DigitalOcean is not a file — it’s a snapshot import instruction. Follow the link to “Custom Images” in your DigitalOcean account, paste the URL the picker gave you, and DigitalOcean will fetch and ingest it. Takes a couple of minutes.
(Once the 1-Click Marketplace listing is live, this step collapses to: “1-Click → Launch”.)
Step 2: Create a droplet from the image
In the DigitalOcean console:
- Choose region: pick the one closest to you for lower latency.
- Choose image: the deputyOS snapshot you just imported.
- Choose size:
- Basic / Regular / $4/mo (512 MB RAM, 1 vCPU) — fine for OpenClaw + cloud LLM.
- Basic / Premium / $7/mo (1 GB RAM) — recommended; gives ClamAV daemon headroom.
- Basic / Premium / $14/mo (2 GB RAM) — comfortable for Hermes or Khoj.
- For air-gapped rich tier: $24/mo+ (need ~4 GB to run LFM2-2.6B).
- Authentication: SSH key (the one you uploaded earlier).
- Hostname: whatever you like.
- Backups: optional ($1/mo for $4 droplet); deputyOS has its own backup story so you don’t strictly need this.
Click Create. ~30 seconds and you have a public IPv4.
Step 3: Wait for first boot
deputyOS does a one-time first-boot sequence: kernel boot, services start, mDNS publishes, wizard token generated, friendly URL logged to /var/log/deputyos-wizard.log. Takes about 90 seconds.
Two ways to find the wizard URL:
A) From the DigitalOcean console
Use the in-browser console (DigitalOcean → your droplet → “Console”). After the boot lines, you’ll see:
deputyOS wizard ready:
http://<your-public-ip>:8088/wizard?token=<one-time-token>
http://deputyos.local:8088/wizard?token=<one-time-token>
Copy the URL with the public IP.
B) Via SSH
ssh root@<droplet-ip>
journalctl -u deputywizard.service --no-pager -n 50
Same URL, same token.
Step 4: Open the wizard
In your browser, paste the URL. One-time tokens expire in 1 hour and are single-use. If you mis-paste, regenerate via deputyctl init --print-token over SSH.
The wizard at this point is identical to the Pi 5 wizard — see the 10-minute Pi 5 walkthrough for the step-by-step. The differences for cloud:
- Hostname: set whatever; doesn’t matter much in the cloud.
- Wi-Fi: skip (you’re wired in).
- Cloudflare Tunnel / Tailscale: skip (you already have a public IP).
- SSH: paste your key if you haven’t already.
- Channels: same flow.
- Backup bucket: especially relevant in the cloud — set up B2/R2 so a droplet rebuild doesn’t lose your memory.
Step 5: Lock down ingress
By default, the droplet’s public IPv4 makes the wizard port (8088) reachable from the internet. You don’t want this long-term. Two options:
Option A: DigitalOcean Cloud Firewall
In the console: Networking → Firewalls → New. Allow:
- TCP 22 (SSH) from your IPs.
- TCP 80/443 from anywhere only if you front the wizard with Caddy/Nginx with TLS.
- Otherwise, drop everything else.
deputyOS internally listens on 0.0.0.0:8088, but the firewall ensures nothing reaches it from outside.
Option B: Tailscale
deputyctl tunnel --port 8088 opens a Cloudflare Quick Tunnel — works but requires every device to go through Cloudflare’s edge.
The cleanest option is tailscale up on the droplet (the deputyOS image has tailscaled installed; just tailscale up to enrol). Now the wizard is only reachable via your tailnet, not the public internet.
We strongly recommend Tailscale or the Cloud Firewall path — leaving 8088 open is the kind of thing you’ll regret.
Step 6: Verify it’s working
ssh root@<droplet-ip>
deputyctl status # OpenClaw should be 'active (running)'
deputyctl doctor # all 14 checks should pass (or skip on non-applicable)
deputyctl logs --follow # watch for incoming messages
In Telegram (or whichever channel you configured), send a message to your bot. The agent responds within seconds.
Why DigitalOcean specifically
We support several clouds — Hetzner, Vultr, Linode, Oracle, Fly. DigitalOcean has a few advantages for first-time cloud self-hosters:
- The 1-Click Marketplace flow (when it lands) is genuinely 1 click.
- Snapshots transfer between regions easily — easy to migrate.
- Backups are $1/mo and weekly.
- The console UI is friendlier than AWS/GCP for non-pros.
- Their docs are excellent.
If you want a different cloud, the Hetzner walkthrough covers the cheapest path (cloud-init recipe; no snapshot needed). For Oracle Cloud’s always-free arm tier, see the picker — it’s free indefinitely if you stay within the 4 OCPU / 24 GB RAM allowance.
Why DigitalOcean specifically might not be your pick
- More expensive than Hetzner: a $4 DO droplet is roughly equivalent to a €4 Hetzner CX11 plus better networking.
- Less generous than Oracle’s free tier: Oracle’s always-free 24 GB arm instance dwarfs anything paid at DO’s price point.
- US-centric pricing: regional egress charges may bite for some workloads.
Pick your cloud based on geography, budget, and how much you value the console UX. deputyOS works on all of them.
Total cost in practice
For a daily-driver OpenClaw on a $7/mo droplet, using OpenRouter as the provider:
- Droplet: $7/mo
- OpenRouter tokens (typical hobbyist load — 50 conversations/day, 10 messages each): ~$3–8/mo
- DigitalOcean backups: $1/mo (optional)
Roughly $10–15/month for an always-on AI assistant on the public internet. Hardware-free, electricity-free, you-don’t-have-to-maintain-the-house-cooling free.
The next step
Get the image and pick DigitalOcean. The wizard does the rest. Use Tailscale to lock down ingress and you have an excellent setup.
Related posts
Cheap AI on Hetzner: cloud-init recipe walkthrough
Run deputyOS on a €4 Hetzner cloud server. Cloud-init recipe, no image transfer needed, ready in under 5 minutes.
Turn a Raspberry Pi into your personal Telegram AI bot
Step-by-step: build a self-hosted Telegram bot that's actually an AI assistant with memory, running on your own Pi via deputyOS.