Hetzner Raised Prices 30–40%: When to Switch to Managed EU PaaS (2026)
On April 1, 2026, Hetzner adjusted its pricing across most Cloud server tiers — increases ranging from 30 to 40 percent depending on the plan. An HN thread on the announcement collected 628 comments in hours, most of them developers comparing VPS providers: Contabo, Netcup, OVHcloud, IONOS, Scaleway.
All those alternatives are also VPS providers. That comparison is the right one if self-managed infrastructure is your architectural choice. But if the Hetzner price increase made you pause and ask why exactly you're running your own servers, that is a different question — and the answer points toward managed PaaS, not another VPS.
This guide is for developers in that second group.
The Real Cost of a Self-Managed VPS
A Hetzner CX22 (2 vCPU AMD, 4 GB RAM, 40 GB NVMe) now costs roughly €8.39/month after the April 2026 increase. Call it €10/month with a floating IP and a small volume for backups. That is cheap.
The bill is not the full cost.
When you self-manage a production server, you carry an ongoing tax on your attention:
| Task | Frequency | Time (realistic) |
|---|---|---|
| OS security patches + kernel updates | Monthly minimum | 20–40 min |
| TLS certificate renewal + nginx config | Quarterly, plus incidents | 15–45 min |
| Docker daemon upgrades + container restarts | Monthly | 20–30 min |
| Debugging deployment failures | Per release | 15–60 min |
| Backup verification + recovery testing | Quarterly | 30–60 min |
| Firewall rules + ufw/iptables audits | After each new service | 20–30 min |
| Monitoring setup + alert tuning | Ongoing | 1–3 hours/month |
Conservative estimate: 3–5 hours per month for a competent developer running a single production app. More if anything breaks — disk fills up, certificate expires, deployment pipeline fails at 2am.
At €80/hour (a modest consulting rate for a mid-level developer), that is €240–€400/month in opportunity cost on top of the €10 VPS bill. The Hetzner price increase added perhaps €3/month. The 40% discussion is noise; the time cost was always the real number.
This is not an argument that VPS is bad. For some applications and some teams, self-managed infrastructure is the right architecture. But it is worth knowing what you are buying.
Three Profiles: Who Should Stay, Who Should Switch
Stay on Hetzner (or any VPS)
- You have dedicated infrastructure or DevOps staff (the time cost is already budgeted)
- Your application requires OS-level configuration that PaaS does not expose (custom kernel modules, specific networking)
- You host stateful workloads that need persistent disk configurations beyond managed database offerings
- Your budget for compute is the binding constraint and you have the skills to manage it
- You run many services on one server and need bin-packing density that per-service PaaS pricing cannot match
Switch to Managed EU PaaS
- You are a solo developer or small team where DevOps hours compete with product work
- Your application is a standard web service (Node.js, Python, Go, Ruby) with a PostgreSQL database
- Your current Hetzner setup is mostly
docker run+ nginx +certbot— a pattern managed PaaS handles for you - You want EU data jurisdiction by design, not as a configuration exercise
- Deployment reliability matters more than squeezing the last euro out of compute costs
The Hybrid Case
Many developers run multiple things on one Hetzner server: a personal project, a production app, some automation scripts. The price increase may be an excuse to separate concerns — move the production app to managed PaaS (where deployment, uptime, and certificates are handled), keep the Hetzner box for the rest. The production bill goes up slightly in nominal terms; the reliability and your cognitive load improve.
EU Jurisdiction: Where Hetzner and PaaS Differ
One thing the HN thread did not discuss: both Hetzner and sota.io are EU-incorporated companies. Hetzner Online GmbH is a German company. That means neither is subject to US CLOUD Act demands the way US-incorporated providers (AWS, Railway, Render, Fly.io) are.
If you are moving from a US-incorporated provider (Railway GmbH is a subsidiary of a US parent, for example), the jurisdiction argument applies. If you are moving between EU providers, the CLOUD Act is not the differentiating factor — operational model is.
The EU-jurisdiction argument for managed EU PaaS is primarily relevant when you are evaluating sota.io versus Railway, Render, Vercel, or Fly.io — providers incorporated in the US or with substantial US parent structures. Versus Hetzner specifically, the differentiation is operational: managed vs self-managed, not jurisdiction.
What Managed EU PaaS Actually Handles
When you deploy an application to sota.io, the following are not your problem:
TLS certificates. Automatic, via Let's Encrypt, with renewal handled transparently. No nginx config, no certbot cron jobs.
Docker builds. Push your code. sota.io detects the Dockerfile or builds from standard buildpacks. No Docker daemon to manage.
Health checks and restarts. If your container crashes, it restarts. Zero-downtime deployments are the default.
Managed PostgreSQL. Connection string injected as an environment variable. Backups, failover, and version upgrades managed by the platform.
Custom domains. Point your DNS to the platform, add a domain in the dashboard or CLI. HTTPS works immediately.
Environment variables and secrets. Stored encrypted, injected at runtime, never in your container image.
The monthly cost for a web service (2 dedicated vCPU, 2 GB RAM) with a managed PostgreSQL database is €9/month at sota.io. Add the Hetzner VPS mental model for comparison: €10/month compute + 3–5 hours DevOps versus €9/month fully managed.
Migration: Moving a Docker App from Hetzner to sota.io
If you are currently running a Dockerised application on Hetzner, the migration path is straightforward.
Step 1: Install the CLI
npm install -g @sota/cli
sota login
Step 2: Create a project
sota project create my-app
Step 3: Set your environment variables
sota env set DATABASE_URL="$DATABASE_URL"
sota env set NODE_ENV=production
sota env set SECRET_KEY="$SECRET_KEY"
Step 4: Deploy
sota deploy --name my-app
sota.io detects your Dockerfile automatically. If you do not have one, it builds from the directory using standard Node.js, Python, Go, or Ruby buildpacks.
Step 5: Add a managed database (optional)
sota postgres create --name my-app-db --attach my-app
This creates a PostgreSQL instance and injects DATABASE_URL into your application automatically.
Step 6: Add your custom domain
sota domain add my-app.example.com --project my-app
Update your DNS to the CNAME provided. TLS is provisioned automatically.
Step 7: Verify and clean up
curl -sI https://my-app.example.com | grep HTTP
# HTTP/2 200
Once you verify the production deployment works, you can delete the Hetzner server. There is no need to run both in parallel past the smoke test.
The Database Migration
If your Hetzner application uses PostgreSQL (self-managed), the migration requires one pg_dump/pg_restore cycle:
# On your Hetzner server: dump the database
pg_dump -Fc my_database > backup.dump
# Copy to your local machine
scp root@your-hetzner-ip:/path/to/backup.dump ./backup.dump
# Restore into sota.io managed Postgres
# (DATABASE_URL is available from `sota env get DATABASE_URL`)
pg_restore -d "$DATABASE_URL" backup.dump
This is a one-time operation. After the restore, point your application at the new DATABASE_URL and redeploy.
Pricing Comparison: The Honest Version
For a single production web service with a PostgreSQL database:
| Provider | Monthly Bill | Setup | DevOps overhead | Jurisdiction |
|---|---|---|---|---|
| Hetzner CX22 (post-increase) + self-managed Postgres | ~€10–15 | 2–4h initial | 3–5h/month ongoing | EU (German GmbH) |
| Hetzner CX22 + Managed Database addon | ~€25–35 | 1–2h | 2–3h/month | EU (German GmbH) |
| sota.io (2 vCPU, 2GB RAM + managed Postgres) | €9/month | ~20 min | Near zero | EU (German GmbH) |
| Railway (US parent) | ~€20–60/month | ~30 min | Near zero | US jurisdiction |
| Render Pro (US) | ~$85/month | ~30 min | Near zero | US jurisdiction |
The Hetzner price increase raised the self-managed bill by roughly €3/month. That is not the reason to switch. The 3–5 hours per month of maintenance time is. The question is whether you want to spend those hours on your product or on your infrastructure.
What You Give Up
Managed PaaS is not zero-tradeoff. Before migrating:
- Control: You cannot install arbitrary system packages, configure kernel parameters, or run privileged containers. If your application needs those, PaaS may not work.
- Density: A single Hetzner server running 10 small projects is cheaper than 10 separate PaaS deployments. Evaluate per-project.
- Debugging: SSH into a server is more direct than reading structured logs. PaaS log access is improving but remains less flexible than a shell.
- Vendor dependency: Self-managed infrastructure can be moved to any provider. A managed PaaS deployment is more coupled to the platform. Evaluate lock-in tolerance.
For a standard web application deployed from a Dockerfile, none of these are blockers. For applications with unusual infrastructure requirements, they may be.
Conclusion
Hetzner's April 2026 price increase is a forcing function, not a crisis. For developers running production applications on self-managed VPS to save money, the increase is worth 20 minutes of honest accounting: what does your monthly DevOps time cost, and is the saving real?
If the answer is no — if you are spending meaningful hours maintaining infrastructure that a managed platform would handle — the Hetzner price increase is a good moment to make the switch. The alternatives are not just other VPS providers. They are a different operational model.
sota.io is a managed EU PaaS built and incorporated in Germany, with EU data jurisdiction by design. Deployment from a Dockerfile takes minutes. There is a free tier. The paid plan starts at €9/month.
Pricing data current as of April 2026. Hetzner pricing reflects post-April-2026 adjustments. VPS DevOps time estimates are based on community surveys and developer interviews; your actual overhead will vary.