Self-Hosting on Hetzner vs DigitalOcean vs Linode: Cost Comparison
Self-Hosting on Hetzner vs DigitalOcean vs Linode: Cost Comparison
Your VPS provider matters when self-hosting. The price difference between providers can save (or cost) you hundreds per year. Here's a real comparison for self-hosting workloads.
Quick Comparison
| Spec | Hetzner | DigitalOcean | Linode (Akamai) |
|---|---|---|---|
| Entry price | €3.30/month | $6/month | $5/month |
| 4 GB RAM | €4.50/month | $24/month | $24/month |
| 8 GB RAM | €8/month | $48/month | $48/month |
| 16 GB RAM | €16/month | $96/month | $96/month |
| Bandwidth | 20 TB included | 4-8 TB | 4-8 TB |
| Locations | EU, US | Global (14) | Global (11) |
| Block storage | €0.044/GB/month | $0.10/GB/month | $0.10/GB/month |
| Backups | 20% of server cost | 20% of server cost | 20% of server cost |
| IPv6 | Free | Free | Free |
| Snapshots | €0.012/GB/month | $0.06/GB/month | Free (limited) |
Price per Spec: The Real Numbers
Small Stack (1-5 tools, 1-10 users)
| Spec | Hetzner CX22 | DO Droplet | Linode |
|---|---|---|---|
| vCPU | 2 | 2 | 2 |
| RAM | 4 GB | 4 GB | 4 GB |
| Disk | 40 GB | 80 GB | 80 GB |
| Bandwidth | 20 TB | 4 TB | 4 TB |
| Monthly | €4.50 | $24 | $24 |
| Annual | €54 | $288 | $288 |
Hetzner saves you $234/year vs DigitalOcean or Linode for the same specs.
Medium Stack (5-15 tools, 10-50 users)
| Spec | Hetzner CX32 | DO Droplet | Linode |
|---|---|---|---|
| vCPU | 4 | 4 | 4 |
| RAM | 8 GB | 8 GB | 8 GB |
| Disk | 80 GB | 160 GB | 160 GB |
| Bandwidth | 20 TB | 5 TB | 5 TB |
| Monthly | €8 | $48 | $48 |
| Annual | €96 | $576 | $576 |
Hetzner saves you $480/year.
Large Stack (15+ tools, 50-200 users)
| Spec | Hetzner CX41 | DO Droplet | Linode |
|---|---|---|---|
| vCPU | 8 | 8 | 8 |
| RAM | 16 GB | 16 GB | 16 GB |
| Disk | 160 GB | 320 GB | 320 GB |
| Bandwidth | 20 TB | 6 TB | 6 TB |
| Monthly | €16 | $96 | $96 |
| Annual | €192 | $1,152 | $1,152 |
Hetzner saves you $960/year.
Performance Benchmarks
Real-world benchmarks for self-hosting workloads:
CPU (sysbench, higher = better)
| Provider | Single-thread | Multi-thread (4 cores) |
|---|---|---|
| Hetzner | ~1,800 | ~7,200 |
| DigitalOcean | ~1,600 | ~6,400 |
| Linode | ~1,650 | ~6,600 |
Winner: Hetzner — AMD EPYC processors offer better per-core performance.
Disk I/O (fio, sequential read)
| Provider | Read | Write |
|---|---|---|
| Hetzner | ~800 MB/s | ~400 MB/s |
| DigitalOcean | ~400 MB/s | ~200 MB/s |
| Linode | ~500 MB/s | ~250 MB/s |
Winner: Hetzner — NVMe SSDs across all plans.
Network
| Provider | Internal | External | Included |
|---|---|---|---|
| Hetzner | 10 Gbps | 1 Gbps | 20 TB |
| DigitalOcean | 2 Gbps | 1 Gbps | 4-8 TB |
| Linode | 10 Gbps | 1 Gbps | 4-8 TB |
Winner: Hetzner — 20 TB bandwidth is overkill for most self-hosting.
Data Center Locations
| Provider | Locations |
|---|---|
| Hetzner | Germany (Falkenstein, Nuremberg), Finland (Helsinki), US (Ashburn, Hillsboro), Singapore |
| DigitalOcean | US (NYC, SF, Toronto), EU (London, Amsterdam, Frankfurt), Asia (Singapore, Bangalore), Australia (Sydney) |
| Linode | US (multiple), EU (London, Frankfurt), Asia (Tokyo, Singapore, Mumbai), Australia (Sydney), Canada (Toronto) |
Best coverage: DigitalOcean/Linode — more global locations. Best EU hosting: Hetzner — German data centers with strong GDPR compliance.
When to Choose Each Provider
Choose Hetzner When:
- Budget matters — 3-5x cheaper for equivalent specs
- EU-based — German data centers, strong GDPR
- High bandwidth — 20 TB included (streaming, downloads)
- Performance focus — AMD EPYC, NVMe, best I/O
- Self-hosting is your primary use — you manage everything yourself
- Block storage needed — cheapest per-GB option
Choose DigitalOcean When:
- US/Asia-based — closest data centers for your users
- Managed services — want managed databases, Kubernetes, load balancers
- Team collaboration — better team/project management UI
- Marketplace — 1-click app deployments
- Support matters — better documentation and support
Choose Linode When:
- Similar to DigitalOcean — comparable pricing and features
- Free snapshots — limited but useful
- Akamai CDN — integration with Akamai's network
- Good API — clean Terraform/API support
Hidden Costs to Watch
| Cost | Hetzner | DigitalOcean | Linode |
|---|---|---|---|
| Bandwidth overage | €1.19/TB | $0.01/GB ($10/TB) | $0.01/GB ($10/TB) |
| Floating IP | €0.50/month | $5/month | $5/month |
| Load balancer | €5.50/month | $12/month | $10/month |
| Firewall | Free (included) | Free (included) | Free (included) |
| DDoS protection | Free (basic) | Free (basic) | Free (basic) |
Recommended Setups
Budget Setup (~$10/month)
Hetzner CX22 (4 GB RAM) — run 5-8 lightweight tools
Standard Setup (~$25/month)
Hetzner CX32 (8 GB RAM) — run 10-15 tools comfortably
Production Setup (~$50/month)
2x Hetzner CX32 (8 GB each) — app server + database server with backups
Enterprise Setup (~$100/month)
Hetzner CX41 (16 GB) + CX22 (4 GB backup) + block storage — full self-hosting stack with redundancy
Migration Between Providers
Moving between VPS providers is straightforward:
- Provision new VPS on target provider
- Install Docker on new server
- Copy Docker volumes via rsync:
rsync -avz /var/lib/docker/volumes/ new-server:/var/lib/docker/volumes/ - Copy compose files and .env configs
- Start services on new server
- Update DNS to point to new IP
- Verify everything works
- Decommission old server
Find the best self-hosting tools and guides on OSSAlt — features, resource requirements, and deployment guides side by side.