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
- In Hetzner Cloud Console, create a server: Ubuntu 24.04, type CX22 or larger, in a location near you.
- Copy the recipe from the picker with
hetzner-cloudselected. - Paste it into the Cloud config field under User data.
- 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
| Type | vCPU | RAM | ~Cost | Suits |
|---|---|---|---|---|
| CX22 | 2 | 4 GB | €4/mo | Standard tier, cloud models |
| CX32 | 4 | 8 GB | €7/mo | Comfortable headroom |
| CX42 | 8 | 16 GB | €17/mo | Small local models |
Local inference on shared vCPU is slow. If you want local models, dedicated hardware is better value than scaling a VPS up.