DigitalOcean vs Hetzner Cloud

Both rent plain Linux VMs that you set up and run yourself. DigitalOcean bills per second and adds GPUs, more regions and managed services, while Hetzner Cloud bills every started hour, has lower list prices on its cheapest servers, and does not allow nested virtualization.

The companies and products

DigitalOcean

DigitalOcean is a general-purpose cloud, and Droplets are its Linux virtual machines.

A Droplet is a Linux VM you rent by size, with root, a public IP, local SSD and a monthly transfer allowance. You pick an image, then install and run your own software on it, next to DigitalOcean products like Kubernetes, managed databases, load balancers and cloud firewalls. It is a server host, not an agent sandbox, so this page compares the two where they overlap: giving an agent its own Linux machine. DigitalOcean also sells two separate products in preview, Harness Runtime for agents and MicroVMs, which are not Droplets.

Founded
2012

Hetzner Cloud

Hetzner is a German hosting company founded in 1997; Hetzner Cloud rents virtual servers, storage and networking by the hour.

A Hetzner Cloud server is a Linux VM picked from shared vCPU lines (cost-optimized CX and CAX, regular CPX) or dedicated vCPU (CCX), with local NVMe disk, a public IP and up to 20 TB of traffic in the EU. You add volumes, private networks, firewalls and load balancers, and run everything yourself through the Console, the Cloud API, the hcloud CLI or Terraform. It is general infrastructure, not an agent sandbox, so this page compares the two where they overlap: giving an agent its own Linux machine.

Certifications
ISO/IEC 27001:2022

Which use cases each one fits

For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “39th cheapest of 368” means 38 of the other 367 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.

Use case and its workloadDigitalOcean: price rankHetzner Cloud: price rankbochka: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
Both give an agent a full VM with root and Docker, but Hetzner Cloud cannot run nested VMs and a new DigitalOcean team gets only 3 Droplets at once; bochka has /dev/kvm, snapshots and coding agents built in.
134th of 367, with limits
$1,187 a month
46th of 367, with limits
$287 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
35th of 366, with limits
$1,429 a month
94th of 366, with limits
$325 a month
5th cheapest of 366
$657 a month
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
DigitalOcean fits short runs better than Hetzner Cloud: it bills per second with a 60 second minimum, while Hetzner bills every started hour in full.
63rd of 345, with limits
$60 a month
156th of 345, with limits
$649 a month
186th of 345, with limits
$2,000 a month
Sandboxes for your users
300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month
Both need a limits raise first: a new DigitalOcean team runs 3 Droplets at once and Hetzner reviews server limit requests by hand, while bochka allows 100 to 2,000 sandboxes by plan.
54th of 361, with limits
$421 a month
46th of 361, with limits
$314 a month
Cheapest of 361
$209 a month
RL rollouts
1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month
31st of 360, with limits
$1,786 a month
104th of 360, with limits
$6,490 a month
34th of 360, with limits
$2,000 a month
Agent evals
250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month
106th of 364, with limits
$357 a month
51st cheapest of 364
$1,010 a month
10th cheapest of 364
$200 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
A ten-minute CI job is billed as a full hour on Hetzner Cloud and by the second on DigitalOcean; on both you run the runner software and the clean-up yourself.
146th of 377, with limits
$171 a month
83rd cheapest of 377
$788 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
All three fit a 24/7 dev box: DigitalOcean and Hetzner Cloud are classic always-on servers with a monthly price cap, and bochka keeps the disk with snapshots every minute.
39th cheapest of 368
$48 a month
32nd cheapest of 368
$42 a month
18th cheapest of 368
$26 a month
Computer-use agents
50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month
Neither DigitalOcean nor Hetzner Cloud ships a desktop, so you install the desktop, the browser and VNC yourself; bochka streams a 60fps desktop with Chromium and computer use.
117th of 369, with limits
$263 a month
134th of 369, with limits
$320 a month
6th cheapest of 369
$200 a month
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
56th of 367, with limits
$147 a month
227th of 367, with limits
$312 a month
7th cheapest of 367
$200 a month
Scraping & bots (startup scale)
50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month
88th of 346, with limits
$175 a month
157th of 346, with limits
$62 a month
6th cheapest of 346
$90 a month
Mass scraping & bots (undetectable)
1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month
69th of 338, with limits
$1,786 a month
45th of 338, with limits
$1,248 a month
71st of 338, with limits
$1,800 a month
Parallel red teaming
200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month
Many short parallel machines suit DigitalOcean's per-second billing better than Hetzner's hourly rounding, once your team has a higher Droplet limit.
22nd of 360, with limits
$199 a month
114th of 360, with limits
$52 a month
2nd cheapest of 360
$200 a month
GPU eval jobs
10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month
Only DigitalOcean rents GPUs here, with Nvidia and AMD GPU Droplets; Hetzner Cloud and bochka have none.
Can't run itCan't run itCan't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Can't run itCan't run itCan't run it

Key features

FeatureDigitalOceanHetzner Cloudbochka
What you getA general Linux VM (Droplet) you set up and run yourselfA general Linux VM you set up and run yourselfA sandbox API for agents, on full VMs
IsolationEvery Droplet is a full VM with its own kernelEvery server is a full VM with its own kernelEvery sandbox is a full VM with its own kernel
CPU speed (Node.js build-and-test, 4 vCPU / 8 GB)No comparable measurement; Basic plans share hyper-threads with other Droplets8.88 runs/s on a shared CX33; CPX and CCX were not measured26.69 runs/s on dedicated AMD Ryzen 9 9950X (Zen 5) hosts
Docker and nested virtualizationRoot and Docker; nested VMs are mentioned in the live migration docs but not listed as a featureRoot and Docker; nested virtualization is "not possible on cloud server"Docker, root, systemd and /dev/kvm on every machine, documented
Billing unitPer second with a 60 second minimum, capped at 672 hours a monthEvery started hour billed in full, with a monthly capPer second, spent from the usage credit of a monthly plan from $20
StoppingA powered-off Droplet is billed in full until you destroy itA powered-off server is billed in full until you delete itA stopped sandbox costs nothing and keeps its disk
Snapshots and backupsOn-demand snapshots billed by size; paid scheduled backups from every 4 hours to weeklySnapshots you take yourself, or daily backups in 7 slots for 20% of the server priceAutomatic snapshots every minute and on stop
ForkTake a live snapshot, then create new Droplets from it (disk, no memory)Take a snapshot, then create a new server from it (disk, no memory; shutting down first is recommended)Fork a running sandbox in one call (disk, no memory)
Machines at onceA new team gets 3 Droplets; 100 at Tier 5, unlocked by prepayment, paid invoices or a requestPer-project limits are not published; raised by a support request reviewed by hand100 to 2,000 sandboxes by plan
Reaching the machinePublic IPv4 and IPv6 on any port; HTTPS needs your own certificates or a load balancerPublic IPv4 and IPv6 on any port; HTTPS needs your own certificates or a paid load balancerHTTPS URLs for up to 50 ports, token-protected; raw TCP; own IP
Coding agents, desktop and keysNone on Droplets; the separate Harness Runtime preview runs agents in microVMs; secrets go on the serverNone; you install and drive agents yourself, for example over SSH, and put secrets on the serverClaude Code, Codex, OpenCode and more preinstalled with a prompt, steer and events API; 60fps desktop with Chromium; AI credentials proxy for any HTTPS API
Cloud around the serverManaged databases, Kubernetes, load balancers, VPC and free firewalls with outbound rulesVolumes, private networks, load balancers and free firewalls with outbound rulesA sandbox product; open internet on every plan, no provider-side egress allowlist
GPUsNvidia and AMD GPU Droplets, on demand, reserved or spotNone in Hetzner CloudNone
Regions13 regions in the US, Canada, Europe, Asia and AustraliaGermany and Finland, plus Ashburn, Hillsboro and SingaporeEU only: Germany, Finland, France
Every feature Battleships tracks (43)
FeatureDigitalOceanHetzner Cloudbochka
Full VM (own kernel)YesYesYes
Docker insideYesYesYes
Nested virtualizationYesNoYes
RootYesYesYes
SystemdYesYesYes
Desktop GUINoNoYes
BrowserNoNoYes
Computer-use APINoNoYes
SSHYesYesYes
Persistent diskYesYesYes
Pause/resumeNoYesYes
Automatic snapshotsNoNoYes
Fork/cloneYesYesYes
Live fork (no pause)YesYesYes
Memory forkNoNoNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopNoNoNo
Wake on requestNoNoNo
HTTPS preview URLsNoNoYes
Raw TCP inboundYesYesYes
Public IPv4YesYesNo
Egress allowlistYesYesNo
Secret proxyNoNoYes
Secret proxy for any APINoNoYes
Preinstalled agentsNoNoYes
Agent harness APINoNoYes
MCP serverYesNoNo
GPUYesNoNo
WindowsNoNoNo
Arm64NoYesNo
Self-hostingNoNoNo
BYOCNoNoNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNoNoYes
Usage per sandbox (API)YesNoYes
Audit logsNot publishedNot publishedNo
SSOYesNoNo
SOC 2YesNoNo
HIPAAYesNoNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

DigitalOceanNot measured
Hetzner Cloud8.88 runs/s
bochka26.69 runs/s

In StarSling's public benchmark at 4 vCPU / 8 GB, bochka did 26.69 Node.js build-and-test runs per second on its own hosts. A shared Hetzner CX33 did 8.88 runs per second in an earlier run, about a third of bochka's speed; Hetzner's CPX and dedicated CCX servers were not measured. DigitalOcean Droplets have no comparable measurement.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Hetzner Cloud measured on: Shared vCPU, Cost-Optimized (CX, Intel/AMD), EU. DigitalOcean has no published run in this suite yet, so there is no like-for-like number to compare.

Pricing in five scenarios

Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.

ScenarioDigitalOcean, a monthHetzner Cloud, a monthbochka, a month
One coding agent, workdays
4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days
$13 · Pay as you go$3 · Pay-as-you-go (postpaid) · with limits$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$48 · Pay as you go$10 · Pay-as-you-go (postpaid) · with limits$26 · $20/mo
50 agents in parallel
50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside
$629 · Pay as you go · with limits$141 · Pay-as-you-go (postpaid) · with limits$317 · $20/mo × 3 seats
Sandboxes for your users
2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once
$179 · Pay as you go · with limits$312 · Pay-as-you-go (postpaid) · with limits$200 · $100/mo × 2 seats
1,000 short jobs at once
2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month
$357 · Pay as you go · with limits$2,080 · Pay-as-you-go (postpaid) · with limits$2,000 · $2000/mo · with limits

DigitalOcean: Each Droplet size has a fixed hourly price, billed per second with a 60 second minimum and capped at 672 hours a month. Billing runs from create to destroy, including while the Droplet is powered off, and snapshots and backups cost extra.

Hetzner Cloud: Hetzner bills each server by the hour, rounding every started hour up, with a monthly cap, until you delete it, even when it is off. The prices here use the cheapest shared CX servers, which are currently out of stock; the CPX and CCX servers you can order today cost more per hour.

Hetzner Cloud: You pick a monthly plan from $20, and all of it becomes usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

A new DigitalOcean team can run only 3 Droplets at once, Basic shared plans up to $48, so 50 agents in parallel or sandboxes for your users need a higher tier first; Tier 5 allows 100. Hetzner does not publish its server limits, reviews each raise by hand, and every scenario here is priced on its CX line, which Hetzner marks as currently unavailable. Short jobs on Hetzner are also billed a full hour each. On bochka the limit is 100 to 2,000 sandboxes by plan plus starts per minute, so the 1,000-job burst is queued and does not fit either.

ScenarioDigitalOceanHetzner Cloudbochka
One coding agent, workdaysNone that bite
  • stock-limited: all CX types "currently unavailable" on hetzner.com (2,026-09-28)
None that bite
One agent that never stopsNone that bite
  • stock-limited: all CX types "currently unavailable" on hetzner.com (2,026-09-28)
None that bite
50 agents in parallel
  • Pay as you go: max 3 concurrent
  • stock-limited: all CX types "currently unavailable" on hetzner.com (2,026-09-28)
None that bite
Sandboxes for your users
  • Pay as you go: max 3 concurrent
  • stock-limited: all CX types "currently unavailable" on hetzner.com (2,026-09-28)
None that bite
1,000 short jobs at once
  • Pay as you go: max 3 concurrent
  • shared vCPUs on this tier, per-second with 672 h cap”): heavy, sustained CPU use can be slowed by other tenants
  • stock-limited: all CX types "currently unavailable" on hetzner.com (2,026-09-28)
  • max 2,400 starts/day (needs ~6,667)
  • max 600 starts/hour (needs ~1,000)
  • bursts above 90 starts/min are queued (a burst of 333 takes ~4 min to start)

Which one should you use?

Use DigitalOcean when

you want per-second billing, GPUs, regions in North America, Asia or Australia, or servers next to managed databases and Kubernetes.

  • Per-second billing. Useful for short or bursty jobs: Droplets bill per second with a 60 second minimum, where Hetzner rounds every started hour up.
  • GPUs and more regions. Useful if you need Nvidia or AMD GPUs, or servers in Canada, India or Australia, which Hetzner Cloud does not offer.
  • Managed services next to the server. Useful if the machine must sit beside managed databases and Kubernetes clusters in one private network and one account.

Use Hetzner Cloud when

you want low-priced long-lived servers in Europe, big dedicated machines or lots of included traffic, and do not need nested virtualization.

  • Lower list prices on the cheapest servers. Useful for long-running servers in Europe, as long as the CX line, currently out of stock, is back.
  • Big dedicated machines. Useful for heavy single machines: dedicated CCX servers go up to 48 vCPU and 192 GB of memory.
  • Lots of included traffic in the EU. Useful for data-heavy servers: each EU server includes 20 TB of outbound traffic, and extra traffic costs $1.20 per TB.

Where bochka fits

DigitalOcean and Hetzner Cloud are general clouds, and bochka is not trying to be one: it has no GPUs, no managed databases and runs only in the EU. If what you are really running is agents, each needing its own Linux machine that starts ready, pauses for free and can be copied, bochka does that part for you on full VMs.

Free stops and a disk saved every minute

Both clouds bill a powered-off machine in full, so an idle agent keeps costing money. The workaround is to snapshot, delete and recreate by script, losing changes since the last snapshot. bochka saves every minute and stops for free.

Agents, a desktop and a key proxy built in

Droplets and Hetzner servers start as empty OS images, so you install, update and supervise each agent, desktop and API key yourself, and the agent can read any key you put there. bochka ships them and keeps keys outside.

Nested virtualization and a faster CPU

Hetzner Cloud cannot run VMs inside a server, and DigitalOcean does not list nested virtualization as a feature. bochka documents /dev/kvm on every machine, and measured about three times the CPU speed of a Hetzner CX33.

Use bochka when the machines are for agents: a full VM each with /dev/kvm, coding agents, a desktop and HTTPS ports built in, snapshots every minute, fork while running, and stops that cost nothing. Compare it one to one: bochka vs DigitalOcean and bochka vs Hetzner Cloud.

Questions people ask

Is DigitalOcean cheaper than Hetzner Cloud?

On list prices for long-running servers, no: one agent that never stops comes to $48 a month on DigitalOcean against $10 on Hetzner's CX servers, and bochka comes to $26. But the CX line is currently out of stock, and for 300 short user sandboxes Hetzner's hourly rounding brings it to $312 against $179 on DigitalOcean and $200 on bochka.

Which is faster, DigitalOcean or Hetzner Cloud?

There is no comparable measurement for DigitalOcean Droplets. A shared Hetzner CX33 did 8.88 Node.js build-and-test runs per second at 4 vCPU / 8 GB, against 26.69 for bochka on dedicated AMD Ryzen 9 9950X hosts.

Can DigitalOcean and Hetzner Cloud run Docker and nested VMs?

Both run Docker, since each machine is a full VM with root. Hetzner's server FAQ says nested virtualization is not possible on cloud servers, and DigitalOcean mentions nested VMs only in its live migration docs, not as a listed feature. bochka documents Docker, systemd and /dev/kvm on every machine.

Do I pay for a powered-off server on DigitalOcean or Hetzner?

Yes, on both. A Droplet or a Hetzner server is billed in full until you destroy or delete it, so to stop paying you snapshot it, delete it and create it again later. On bochka, a stopped sandbox costs nothing and keeps its disk.

Which has more regions and GPUs?

DigitalOcean: 13 regions across the US, Canada, Europe, Asia and Australia, and Nvidia and AMD GPU Droplets. Hetzner Cloud runs in Germany, Finland, Ashburn, Hillsboro and Singapore, with no GPUs. bochka runs only in the EU and has no GPUs.

Is bochka SOC 2 compliant?

SOC 2 is in progress. We're open about where we stand: live status at status.bochka.xyz and our data retention policy at docs.bochka.xyz/data-retention.

Try bochka

Install the CLI, then run bochka new.

Product preview

More comparisons

Bochka product preview · Pricing, benchmarks and commands are illustrative. Sandbox provisioning is not connected.