Skip to content

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.

6 min read deputyOS team

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

Search

Search index isn't built yet. Run npm run build to generate it (Pagefind writes to dist/pagefind/).