DigitalOcean vs Vultr
Both sell plain Linux servers that you set up and run yourself. DigitalOcean bills by the second and can block outbound traffic in its firewall, while Vultr bills every started hour and runs in 33 locations, with Windows and more GPU choices.
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.
Vultr
Vultr is a general-purpose cloud, and Cloud Compute is its line of KVM virtual servers.
A Vultr instance is a Linux or Windows VM you rent by size, with root, a public IPv4, local SSD or NVMe and a monthly transfer allowance. You choose shared vCPU plans (Regular, High Performance, High Frequency) or dedicated vCPU plans (Optimized Cloud Compute, VX1), and run your own software next to Vultr block storage, file systems, VPCs, Kubernetes, bare metal and GPUs. 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.
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 workload | DigitalOcean: price rank | Vultr: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month DigitalOcean and Vultr both give a full VM with root and Docker that starts empty; bochka comes with coding agents, snapshots every minute and free stops. | 134th of 367, with limits $1,187 a month | 114th of 367, with limits $1,060 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB Both can run an assistant around the clock, but you build the agent setup, the HTTPS link and the backups yourself; bochka has them built in. | 35th of 366, with limits $1,429 a month | 144th of 366, with limits $1,000 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 suits short runs better than Vultr, since it bills by the second while Vultr bills every started hour; bochka's start limits make big bursts a compromise too. | 63rd of 345, with limits $60 a month | 168th of 345, with limits $1,000 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 A new DigitalOcean team can run only 3 Droplets at once, and Vultr bills each 10-minute session as a full hour; bochka allows 100 to 2,000 sandboxes by plan. | 54th of 361, with limits $421 a month | 98th of 361, with limits $899 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 | 179th of 360, with limits $20,000 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 | 47th cheapest of 364 $893 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 Both run Docker builds on a full VM, and on both you also run the runner software, the image updates and the clean-up between jobs. | 146th of 377, with limits $171 a month | 91st cheapest of 377 $857 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 Vultr are classic always-on servers, and a bochka machine keeps its disk with snapshots every minute. | 39th cheapest of 368 $48 a month | 28th cheapest of 368 $40 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 bochka streams a 60fps desktop with Chromium and computer use; on a Droplet or a Vultr instance you install and run a desktop and VNC yourself. | 117th of 369, with limits $263 a month | 252nd of 369, with limits $1,190 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 | 300th of 367, with limits $894 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 | 175th of 346, with limits $89 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 | 72nd of 338, with limits $1,818 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 | 22nd of 360, with limits $199 a month | 168th of 360, with limits $150 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 DigitalOcean and Vultr both rent Nvidia and AMD GPUs, and bochka has no GPUs, so model work belongs on one of them. | Can't run it | Can't run it | Can't run it |
| macOS agents 5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month | Can't run it | Can't run it | Can't run it |
Key features
| Feature | DigitalOcean | Vultr | bochka |
|---|---|---|---|
| Isolation | Every Droplet is a full VM with its own kernel | Every instance is a KVM VM with its own kernel | Every sandbox is a full VM with its own kernel |
| CPU | Basic plans share hyper-threads with other Droplets; dedicated CPU plans cost more; no comparable measurement | Shared vCPU plans, or dedicated AMD EPYC vCPU on Optimized and VX1 plans; no comparable measurement | Dedicated AMD Ryzen 9 9950X (Zen 5) hosts; 26.69 runs/s at 4 vCPU / 8 GB |
| Billing unit | Per second with a 60 second minimum, capped at 672 hours a month | Every started hour, capped at 672 hours a month on most plans; VX1 has no cap | Per second, spent from the monthly plan's usage credit |
| Stopping | A powered-off Droplet is billed in full; you destroy it to stop paying | A stopped instance is billed in full; you destroy it to stop paying | A stopped sandbox costs nothing and keeps its disk |
| Snapshots and copies | On-demand disk snapshots, then new Droplets from them; paid backups from every 4 hours to weekly | Manual disk snapshots that can take up to 30 minutes, then new instances from them; paid backups | Automatic snapshots every minute and on stop; fork a running sandbox in one call |
| Docker and nested virtualization | Root and Docker; nested VMs are mentioned in the live migration docs but not listed as a feature | Root and Docker; virtualization is documented for VX1 and bare metal only | Docker, root, systemd and /dev/kvm on every machine, documented |
| Machines at once | 3 Droplets for a new team; 100 at Tier 5, reached by prepayment, paid invoices or a request | Not published; you see your limit in the console and ask support to raise it | 100 to 2,000 sandboxes by plan, plus a limit on starts per minute |
| Reaching the machine | Public IPv4 and IPv6 on any port; HTTPS needs your own certificates or a load balancer | Public IPv4 on any port; HTTPS needs your own domain, proxy and certificates | HTTPS URLs for up to 50 ports, token-protected; raw TCP; own IP |
| Desktop and computer use | Headless Linux; you install a desktop and VNC yourself | Headless Linux; you install a desktop and VNC yourself | 60fps desktop and Chromium, computer use and browser control, embeddable stream |
| Coding agents | None on Droplets; the separate Harness Runtime product runs agents in microVMs, in preview | None; you install and supervise agents yourself | Claude Code, Codex, OpenCode and more preinstalled, driven from outside with a prompt, steer and events API |
| Keeping keys out of the machine | No credentials proxy; you put secrets on the server yourself | No credentials proxy; you put secrets on the server yourself | AI credentials proxy for model providers and any HTTPS API you register |
| Outbound rules | Free cloud firewalls with outbound rules by IP range, Droplet or tag | Vultr Firewall filters incoming traffic only; outbound rules go in the guest | Open internet on every plan; no provider-side allowlist |
| GPUs and Windows | Nvidia and AMD GPU Droplets, on demand, reserved or spot | Nvidia and AMD GPUs, including GH200 and B200; Windows Server for a license fee | No GPUs; Linux guests only, Wine for Windows apps |
| Regions | 13 regions in the US, Canada, Europe, Asia and Australia | 33 locations on six continents | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | DigitalOcean | Vultr | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | Not published | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | Yes | Not published | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Yes | Yes | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | No | No | Yes |
| Automatic snapshots | No | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Not published | Yes |
| Memory fork | No | No | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | No | No | No |
| Wake on request | No | No | No |
| HTTPS preview URLs | No | No | Yes |
| Raw TCP inbound | Yes | Yes | Yes |
| Public IPv4 | Yes | Yes | No |
| Egress allowlist | Yes | No | No |
| Secret proxy | No | No | Yes |
| Secret proxy for any API | No | No | Yes |
| Preinstalled agents | No | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | Yes | Not published | No |
| GPU | Yes | Yes | No |
| Windows | No | Yes | No |
| Arm64 | No | No | No |
| Self-hosting | No | No | No |
| BYOC | No | No | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | No | Not published | Yes |
| Usage per sandbox (API) | Yes | No | Yes |
| Audit logs | Not published | Yes | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | Not published | No |
| HIPAA | Yes | Not published | No |
| EU data residency | Yes | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable measurement for DigitalOcean Droplets or Vultr Cloud Compute: neither was part of the public StarSling benchmark run where bochka did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB. Both sell shared and dedicated vCPU plans, so their results would depend on which plan you pick.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. DigitalOcean and Vultr have 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.
| Scenario | DigitalOcean, a month | Vultr, a month | bochka, 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 | $10 · Usage account | $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 | $40 · Usage account | $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 | $524 · Usage account | $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 | $894 · Usage account | $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 | $5,960 · Usage account | $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.
Vultr: Each Vultr plan has a fixed hourly price, billed by the started hour and capped at 672 hours a month on most plans; VX1 bills every hour used. Stopped instances are billed until destroyed, and snapshots, backups and extra IPs cost extra.
Vultr: 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 3 Droplets at once, so 50 agents in parallel and sandboxes for your users do not fit until you reach a higher tier; Tier 5 allows 100 Droplets. Vultr does not publish its default limit, so those scenarios fit on price but likely need a support ticket first. Vultr's one hour minimum is what hurts short jobs: 1,000 short jobs at once come to $5,960 a month on Vultr against $357 on DigitalOcean. On bochka the limit is starts per minute and per day, so that burst gets queued and needs more starts per day than the $2,000 plan allows.
| Scenario | DigitalOcean | Vultr | bochka |
|---|---|---|---|
| One coding agent, workdays | None that bite | None that bite | None that bite |
| One agent that never stops | None that bite | None that bite | None that bite |
| 50 agents in parallel |
| None that bite | None that bite |
| Sandboxes for your users |
| None that bite | None that bite |
| 1,000 short jobs at once |
| None that bite |
|
Which one should you use?
Use DigitalOcean when
your machines are short-lived and per-second billing matters, when you want outbound firewall rules from the provider, or when you want managed databases and Kubernetes next to your servers.
- Billing by the second. Useful if your machines live for minutes, not hours: Droplets bill per second with a 60 second minimum.
- Outbound firewall rules. Useful if an agent must only reach certain addresses: DigitalOcean's free cloud firewalls limit outbound traffic by IP range.
- An agent runtime in the same cloud. Useful if you want to try managed agents next to your Droplets: Harness Runtime runs Claude Code and Codex in microVMs, in preview.
Use Vultr when
you need more locations, Windows Server, a wider choice of GPUs, or slightly lower prices on shared servers that stay on all month.
- More places to run. Useful if your users are spread out: Vultr runs in 33 locations, from Sao Paulo and Johannesburg to Tokyo and Sydney.
- Windows and more GPUs. Useful if your work needs Windows Server or GPUs such as GH200 and B200, which Vultr rents next to its Linux servers.
- Lower prices for servers that stay on. Useful for always-on shared servers: one 4 vCPU / 8 GB machine running all month comes to $40 a month, against $48 on DigitalOcean.
Where bochka fits
DigitalOcean and Vultr are clouds for servers you run yourself. If what you are really running is agents, bochka gives each one a full VM that is ready to work, with coding agents, a desktop, HTTPS ports and snapshots every minute built in, and stops that cost nothing.
Free stops, disk saved every minute
Agents sit idle between tasks, but DigitalOcean and Vultr bill a stopped server in full. The workaround is scripting snapshot, destroy and recreate, and losing what changed since the last manual snapshot, which on Vultr can take up to 30 minutes.
Agents, a desktop and a keys proxy inside
A Droplet or a Vultr instance starts empty, so you install and supervise each agent, desktop and VNC, and put API keys on a disk the agent can leak. DigitalOcean's Harness Runtime runs agents, but as a separate preview product.
HTTPS on 50 ports and /dev/kvm
An agent's dev server needs a shareable link: on DigitalOcean that means certificates or a load balancer, on Vultr a domain, proxy and certificates. Nested VMs are documented only on Vultr VX1 and bare metal; bochka has /dev/kvm everywhere.
Use bochka when the servers are really for agents: each one gets a full VM with coding agents, a desktop, HTTPS ports and minute-by-minute snapshots built in, fork while running, and stops that cost nothing. Compare it one to one: bochka vs DigitalOcean and bochka vs Vultr.
Questions people ask
Is DigitalOcean cheaper than Vultr?
For servers that stay on, Vultr is a little lower: one 4 vCPU / 8 GB agent running all month comes to $40 on Vultr against $48 on DigitalOcean, and $26 on bochka. For short jobs DigitalOcean wins, because it bills by the second while Vultr bills every started hour: 1,000 short jobs at once come to $357 on DigitalOcean against $5,960 on Vultr.
Which is faster, DigitalOcean or Vultr?
There is no comparable measurement for either. Both sell shared vCPU plans and dedicated vCPU plans, so speed depends on the plan you pick. bochka did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB in the public StarSling benchmark.
Can DigitalOcean and Vultr run Docker and nested VMs?
Docker works on both, since each server is a full VM with root. Vultr documents virtualization only for VX1 and bare metal, and DigitalOcean only mentions nested VMs in its live migration docs. On bochka, Docker, systemd and /dev/kvm are documented on every machine.
Do I pay for a stopped server on DigitalOcean or Vultr?
Yes, on both. A powered-off Droplet and a stopped Vultr instance are billed in full until you destroy them. On bochka, a stopped sandbox costs nothing and keeps its disk.
Which has more regions?
Vultr, with 33 locations on six continents, against DigitalOcean's 16 datacenters in 13 regions across the US, Canada, Europe, Asia and Australia. bochka runs only in the EU, in Germany, Finland and France, with EU data residency.
Can I run 50 agents at once on DigitalOcean or Vultr?
Not on a new DigitalOcean team, which can run 3 Droplets at once; Tier 5 allows 100. Vultr does not publish its default limit and raises it through support. 50 agents in parallel come to $629 on DigitalOcean, $524 on Vultr and $317 on bochka.
Try bochka
Install the CLI, then run bochka new.
Product preview
More comparisons
- bochka vs DigitalOcean
- bochka vs Vultr
- AWS EC2 vs DigitalOcean
- Google Compute Engine vs DigitalOcean
- Azure Virtual Machines vs DigitalOcean
- Oracle Cloud vs DigitalOcean
- DigitalOcean vs Hetzner Cloud
- DigitalOcean vs Linode
- DigitalOcean vs Scaleway
- DigitalOcean vs OVHcloud
- DigitalOcean vs IONOS Cloud
- DigitalOcean vs Contabo