Self-Hosting n8n on Hetzner: The Real Cost Math (2026)
What self-hosting n8n on Hetzner actually costs: real server sizing, the ~$5-$20/mo math, the maintenance you own, and when self-hosting is the wrong call.
tl;dr
Self-hosting n8n on Hetzner runs roughly $5 to $20 a month for the server while the n8n software itself is free, so you trade a subscription for the maintenance work of updates, backups, and uptime.
Short answer: Self-hosting n8n on Hetzner costs about $5 to $20 a month, and that is the server, not n8n. The software is open-source and free to self-host, so you only pay for the box it runs on. A small CX-series or shared-vCPU Hetzner VM handles most workloads. The real cost is not money, it is the maintenance you take on: updates, backups, and uptime become your job instead of a vendor’s. For a developer running real volume that trade is usually worth it. For a non-technical team it usually is not.
I run an AI automation agency, and self-hosted n8n on Hetzner is the default stack I reach for. So this is the first-hand version, not a spec sheet. I will give you the actual numbers, the server sizing I use in production, and the maintenance reality nobody mentions in the “n8n is free” posts. I will also tell you when self-hosting is the wrong call, because it often is.
Why self-host n8n in the first place
Two reasons, and only two really matter.
The first is data control. When you self-host, every byte stays inside infrastructure you own. Nothing routes through a vendor’s cloud. For anyone handling financial records, legal documents, or personal data under GDPR, that is not a nice-to-have, it is the reason the project exists. You can put the box in an EU region, lock down access, and answer “where does our data live?” with a straight answer.
The second is cost at scale, and it comes down to the pricing model. n8n charges per execution: a whole workflow run counts as one, no matter how many steps are inside it. Per-task tools like Zapier count every single step. Run a ten-step workflow a few thousand times a month and the gap is enormous. Self-hosted n8n removes the per-execution meter entirely. You pay for the server and nothing else, so the marginal cost of the next workflow run is effectively zero. If you want the full breakdown of that pricing difference, I wrote an honest n8n vs Zapier comparison that covers it.
n8n is built by n8n GmbH in Berlin. It is fair-code licensed, the source is public, and self-hosting is a first-class supported path, not a hack. That matters: you are not fighting the tool to run it yourself.
What self-hosting n8n on Hetzner actually costs
Here is the honest math. There are two line items, and only one of them is a bill.
| Cost | Self-hosted on Hetzner | n8n Cloud |
|---|---|---|
| n8n software | Free | Included |
| Server / hosting | ~$5-$20/mo (Hetzner VM) | n/a |
| Subscription | None | ~€20/mo entry |
| Per-execution metering | None | Yes, tier-capped |
| Maintenance | Yours (your time) | Handled for you |
| Data location | Your infrastructure | n8n’s cloud |
The software is free. The server is the cost, and on Hetzner a capable box lands in the $5 to $20 a month range for most automation workloads. That is the whole monetary story. The thing the table cannot price is the maintenance row, because it is paid in your time, not euros. That is the catch, and I will not skip it.
Realistic Hetzner server sizing
People wildly over-provision because n8n “feels” heavy. It is not, for typical agency-style workloads. Here is roughly how I size it:
- Small (~$5/mo). A shared-vCPU Hetzner Cloud VM with around 2 vCPU and 4 GB RAM. Fine for a single tenant running dozens of workflows on schedules and webhooks, with Postgres on the same box. This covers the majority of real businesses.
- Medium (~$10-$15/mo). More RAM and a dedicated-ish CPU once you are running heavier branching, document parsing, or LLM calls through the Claude API and want headroom. I move clients here when workflows get genuinely busy.
- Larger (~$20/mo and up). A bigger VM, or splitting Postgres onto its own instance, once you are running queue mode with worker processes for real concurrency.
Run n8n with Docker Compose and point it at a real Postgres database from day one, not the default SQLite. SQLite is fine for kicking the tires and miserable to migrate off later. Postgres on the same box costs you nothing extra and saves you a painful afternoon at exactly the moment you cannot afford one.
The reason Hetzner specifically: the price-to-performance is hard to beat, and the EU data centers (Germany, Finland) keep your data inside the EU, which closes the GDPR loop cleanly. A $5 to $20 box there does work that costs noticeably more elsewhere.
The maintenance reality you actually own
This is the part the “n8n is free!” crowd leaves out, so let me be direct. Self-hosting is not free. You traded a subscription for a job. Three things become yours:
1. Updates. n8n ships often. New nodes, fixes, the occasional breaking change. You decide when to pull a new image, and you test before you do, because an upgrade can change node behavior under you. On Cloud, this is invisible. Self-hosted, it is a recurring task you own.
2. Backups. Your workflows, credentials, and execution history live in that Postgres database. If the box dies and you have no backup, your automations are gone. You need automated, off-server database backups, and you need to have actually restored one at least once. A backup you have never tested is a guess.
3. Uptime. When n8n goes down at 2am, no support queue catches it. You do. That means monitoring, alerting, and ideally a restart policy so a crashed container comes back on its own. For workflows that are core to revenue, “I’ll notice eventually” is not a strategy.
Treat credentials and the encryption key as the crown jewels. Set a fixed N8N_ENCRYPTION_KEY and back it up separately from the database. Lose that key and your stored credentials become unreadable even with a perfect database backup. I have watched a clean restore fail for exactly this reason. Save the key somewhere you will still have it in a year.
None of this is hard for a developer. It is a Docker Compose file, a backup cron, a reverse proxy with TLS, and an uptime check. But it is real, ongoing work, and pretending otherwise is how people end up with a silently broken automation they trusted.
When self-hosting n8n is the wrong call
I self-host by default, and I still talk people out of it regularly. Skip self-hosting when:
- Nobody on the team is comfortable in a terminal. If “SSH into the box and pull a new image” sounds like a problem, self-hosting will quietly rot. n8n Cloud at around €20 a month exists for exactly this, and it is a fair price for not owning uptime.
- The automation is core to revenue and you have no one to own it. An automation that prints money is the worst one to leave on an unmonitored box. Either dedicate someone to maintain it, or have it built and maintained for you.
- Your volume is tiny. If you run a handful of executions a month, the cost saving over Cloud is rounding error, and you are taking on maintenance to save almost nothing. Stay on Cloud until volume justifies the move.
The honest rule: self-host when you have the technical ownership to maintain it and the volume or data-control needs to justify it. Otherwise the maintenance you took on costs more than the subscription you avoided.
Build it yourself or hire it out?
If you are a developer or technical founder, self-hosting n8n on Hetzner is genuinely a weekend project, and you should just do it. Spin up the VM, run the Compose stack, wire Postgres, add backups and a reverse proxy, and you are in business for the price of a coffee a month. I would not talk you out of that.
You should hire it out when the workflows are core to how the business runs, when you need the system monitored so it does not fail silently at month-end, or when you would rather your team’s time go to product than to babysitting infrastructure. That is the work we do at Code2b: we build on tooling you control, self-hosted on infrastructure that keeps your data inside the EU, and we keep it running when an API or an n8n release changes under it. Most builds go live in 2 to 4 weeks, simple ones in about a week, and productized workflows start at €1,999 with a fixed scope and fixed fee. The systems themselves are built to SOC 2 controls, GDPR compliant, with role-based access and audit logging, and self-hosting is the default.
If you want a straight read on whether self-hosting is right for your case, look at how we approach the engine on our n8n automation page, or how we scope larger builds on our custom workflow systems page. I will tell you honestly, even when the answer is “this is simple, host it yourself.”
Ready to automate your business?
Book a free 30-minute strategy call. We will identify the highest-impact automation opportunities in your operation.
Book a free strategy call →Frequently asked questions
How much does it cost to self-host n8n?
The n8n software is free to self-host. Your only real bill is the server. On Hetzner that is roughly 5 to 20 dollars a month for most automation workloads. The hidden cost is maintenance, since updates, backups, and uptime become your responsibility instead of a vendor's. So the money is cheap and the time is the trade-off.
Is self-hosted n8n really free?
The software is free and open-source under a fair-code license, but self-hosting is not zero-cost. You pay for the server, around 5 to 20 dollars a month on Hetzner, and you pay in your own time for updates, backups, and keeping it online. Free software, not free to run.
What server size do I need for n8n on Hetzner?
Most single-tenant setups run comfortably on a shared-vCPU Hetzner VM with about 2 vCPU and 4 GB of RAM, with Postgres on the same box. Scale up the RAM or move Postgres onto its own instance once you run heavy document parsing, LLM calls, or queue mode with workers. People usually over-provision; start small.
Is n8n Cloud or self-hosting better?
Self-hosting wins on cost at scale and data control, since there is no per-execution metering and your data never leaves your infrastructure. n8n Cloud, around 20 euros a month, wins when you do not want to own updates, backups, and uptime. Pick self-hosting if you have the technical ownership; pick Cloud if you would rather not.
Do I need Docker to self-host n8n?
Not strictly, but Docker with Docker Compose is the cleanest path and what most people use. It makes updates, restarts, and moving the setup between servers far simpler. Pair it with a real Postgres database from the start rather than the default SQLite, so you never have to migrate later.
What happens if my self-hosted n8n server goes down?
There is no vendor support queue, so you catch it yourself. That is why you need monitoring, alerting, and a restart policy that brings a crashed container back automatically, plus tested off-server backups of your Postgres database and your encryption key. Without those, downtime can mean lost workflows.
Written by Aleksandar Janca, co-founder of Code2b. Self-taught builder and former pro athlete, I personally architect every Code2b automation, most of it self-hosted on n8n and Hetzner so clients keep control of their data. I have shipped production workflows across a wide range of industries, with a human in the loop on every decision that touches money. If you want an honest read on whether to self-host or hire it out, let’s talk.