Disclosure: we may earn a commission or referral reward from CloudCone, Contabo, DigitalOcean (account credit, not cash), Hostwinds, InterServer, RackNerd, VPSDime and Vultr if you sign up through our links. It does not change the price you pay. Every other provider pays us nothing. Prices in this guide are as of the date shown and may have changed; see the comparison pages for the latest checked prices.
Guides · MIGRATE
DigitalOcean to Hetzner migration in 2026: cutting your bill in half (or more)
Some prices quoted in this guide are out of date. It is being rebuilt on our price index; for current prices use the comparison pages, which show when each price was checked.
Of all the migrations we cover, DigitalOcean to Hetzner is the one that most consistently saves real money. Same specs, sometimes 6-8x cheaper. Same underlying stack (Linux and everything you'd install on it). The reasons not to migrate are real but narrow: managed Postgres/MySQL/Kubernetes ecosystem, a specific US or global region Hetzner doesn't cover, and marketplace one-click apps.
Prices as of 2026-09-22.
The cost delta at every DigitalOcean tier
| Current DO plan | Hetzner equivalent | Monthly saved |
|---|---|---|
| Basic 1 GB ($6) | CX22 (2 vCPU / 4 GB, $4.60) | $1.40 + more resources |
| Basic 2 GB ($12) | CX22 ($4.60) | $7.40 |
| Basic 2 GB / 2 vCPU ($18) | CX22 ($4.60) | $13.40 |
| Basic 4 GB ($24) | CX22 ($4.60) or CX32 ($7.60) | $19-20 |
| Basic 8 GB ($48) | CX32 ($7.60) | $40.40 |
| Basic 16 GB (~$96) | CX52 (~$28) | $68 |
| Managed Postgres 1 GB ($15) | self-hosted on the same VPS | $15 |
For a small production app on DO Basic 4 GB with Managed Postgres 1 GB ($39/mo total), the Hetzner CX32 equivalent with self-hosted Postgres is $7.60/mo. That's $377/year saved for the same functional stack.
When to migrate (and when not to)
Migrate if:
- Your workload is a plain Linux app on a plain Droplet.
- You self-host your database or are willing to move to self-hosted.
- You're EU-based or fine with EU/US-East/US-West Hetzner regions.
- Cost matters and you're comfortable managing a Linux server.
Do NOT migrate if:
- You use DO Managed Postgres/MySQL/MongoDB heavily and want the failover, PITR, monitoring.
- You use DOKS (DO Kubernetes) and don't want to run K8s on Hetzner (possible, more work).
- You use DO's Marketplace one-click apps and depend on their updates.
- You need Asia, LATAM, or Middle East regions Hetzner doesn't cover.
- Your organisation has legal or procurement requirements for a US-domiciled vendor.
Step-by-step migration
1. Provision a Hetzner Cloud account and server
Sign up at console.hetzner.cloud. Pick a region (Falkenstein for EU, Ashburn or Hillsboro for US). Create a CX22 (or larger) with Ubuntu 24.04 LTS.
2. Install the same stack you had on DigitalOcean
Almost every DO setup translates 1:1:
```bash
Nginx + Certbot
apt install nginx certbot python3-certbot-nginx
Node.js (via nodesource)
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install nodejs
Postgres
apt install postgresql
Redis
apt install redis-server
```
The stack you tuned on DO reproduces on Hetzner identically.
3. Copy your application and data
Two clean approaches:
A) SCP + restore from backup
- Take a DO snapshot and Postgres
pg_dump. - SCP the app tarball to Hetzner.
- Restore Postgres from the dump.
B) Rsync during a maintenance window
- Rsync
/var/wwwand/etc/nginxfrom DO to Hetzner. - Rsync Postgres data directory (with the database stopped).
Method B is faster for large data; A is safer for cutover.
4. Verify on the new IP
Add a hosts-file entry pointing your domain at Hetzner's IP. Test everything: home, login, checkout, admin. Fix issues in-place.
5. DNS cutover
- Drop TTL to 300 seconds 24 hours before.
- Change A/AAAA records to Hetzner IPs.
- Certbot new SSL:
certbot --nginx -d yourdomain.comon Hetzner. - Verify Let's Encrypt issuance.
6. Migrate DO Managed Database (if applicable)
If you were using DO Managed Postgres:
```bash
On DO side, dump the database:
pg_dump -h {do-postgres-host} -U {user} {db} > backup.sql
Copy to Hetzner
scp backup.sql root@hetzner-ip:/tmp/
Restore on Hetzner:
sudo -u postgres psql {db} < /tmp/backup.sql
```
For live cutover with minimal downtime, use pg_dump with --data-only and logical replication, or accept a 5-15 minute cutover window.
7. Decommission DigitalOcean
- Take final DO snapshot.
- Cancel the Droplet(s) and Managed Database.
- Keep the snapshot for 30 days as insurance.
What you give up
Managed services. DO's Managed Postgres, MySQL, MongoDB and Kubernetes offerings are legitimately valuable if you use them. Hetzner has no equivalents. You're self-hosting.
Marketplace one-click apps. Ghost, Discourse, WordPress on DO Marketplace are curated and get updates. On Hetzner you're on your own.
DO's tutorials. DO's docs are the best on the internet for Linux server admin. You can still use them from Hetzner — the Linux is the same.
DO's community. DO Community Q&A and forums are large and active. Hetzner's is smaller and mostly in German-language forums, though the English-speaking Hetzner community is growing.
Regional coverage. DO has 15+ regions; Hetzner has 6 (three EU, three US). If your users are in Singapore, Toronto, Sydney or India, DO wins on latency.
What you gain
- 60-85% cost reduction at every tier.
- Fully quantified 20 TB bandwidth on every plan.
- Better raw hardware per dollar. More recent CPUs, NVMe storage.
- A cleaner control panel with a first-class REST API.
- A privacy-friendly host under EU jurisdiction.
Related guides
- Hetzner Cloud pricing analysis — deep look at the trade-offs.
- Cheapest 4 vCPU / 8 GB VPS — the shape most people migrating from DO end up at.
- DigitalOcean's Droplet pricing explained — the "what you pay for" story on DO.
Prices as of 2026-09-22.