Skip to content

deputyOS on Hetzner Cloud

Run deputyOS on a Hetzner VPS for a few euros a month. Paste a cloud-init recipe and it builds itself — no image upload needed.

Setup time
~10 min
Difficulty
Easy
Cost
~€4/mo
Acceleration
provider virtualisation

Hetzner is the cheapest credible cloud target. A CX22 (2 vCPU, 4 GB) runs the standard tier for around €4 a month.

Why cloud-init rather than an image

Hetzner does not accept arbitrary image uploads on standard accounts, so this target ships as a cloud-init recipe instead of a baked image. The server builds itself on first boot from a pinned recipe.

The trade-off is honest: this path does not get the reproducibility guarantees of a baked image, because it assembles at boot from upstream packages. If provenance matters more than convenience, build the qemu-x86_64 image locally and upload it via Hetzner’s rescue system.

Create the server

  1. In Hetzner Cloud Console, create a server: Ubuntu 24.04, type CX22 or larger, in a location near you.
  2. Copy the recipe from the picker with hetzner-cloud selected.
  3. Paste it into the Cloud config field under User data.
  4. Add your SSH key and create.

First boot takes five to ten minutes while it installs and bakes.

Reaching it

The server has a public IP, so http://<ip> reaches the wizard directly. Do the setup promptly — a fresh box with an open wizard on a public address should not sit there overnight.

Once the device is linked to your account, use the tunnel instead and close the public port entirely:

deputyctl tunnel --integrated

The device then holds an outbound connection and is reachable at its tunnel URL, with nothing inbound exposed.

Sizing and cost

TypevCPURAM~CostSuits
CX2224 GB€4/moStandard tier, cloud models
CX3248 GB€7/moComfortable headroom
CX42816 GB€17/moSmall local models

Local inference on shared vCPU is slow. If you want local models, dedicated hardware is better value than scaling a VPS up.

Search

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