n8n self-hosted vs cloud: the cost nobody puts in the comparison table
· 8 min read — #n8n#Automation#Self-Hosting#Cost Optimization#DevOps
The n8n pricing page is honest. It lists the cloud plans, the execution counts, and what each tier includes. It also does what every SaaS pricing page does: it ignores the cost that you can't put on a credit card. For self-hosted n8n, that's your time. For n8n Cloud, it's the long-term lock-in and the per-execution ceiling. Both pages show you a price. Neither shows you the bill.
I run both flavors in production. Here's how I think about the choice now.
What's actually on each pricing page
n8n Cloud is a hosted version of the workflow editor, with execution quotas baked in. The entry tier gives you a fixed number of workflow executions per month on shared infrastructure, with the usual limits on what you can run. Higher tiers unlock more executions, longer execution time, dedicated resources, and SSO. Check the current page for exact numbers; I won't quote them because they change, but the order of magnitude is: the cheapest tier is in the tens of executions per month, mid-tier in the thousands, enterprise in the tens of thousands. Above enterprise you're negotiating.
Self-hosted n8n is the same software running on a machine you control. The Community Edition is free under a sustainable-use license. The Enterprise self-hosted license unlocks SSO, advanced permissions, and support. The infrastructure cost is whatever VM you put it on. A typical small deployment runs comfortably on a 10 to 20 dollar VPS; a busy one wants more CPU and more RAM.
That's the headline. Now the part the pricing page doesn't cover.
The hidden cost of self-hosted: your hours
Self-hosted n8n on a 10 dollar VPS is the cheapest line item you'll ever write down. It's also not the bill. The bill is the four hours a month you spend:
- Updating n8n when a new version ships (and the database migration that sometimes breaks)
- Renewing TLS certificates (or wiring up Caddy to do it for you)
- Debugging why the worker died at 3am because the queue database ran out of connections
- Backing up the workflow database and the credentials vault, and verifying the backup restores
- Debugging the OAuth flow when Google or Slack rotates a secret and your n8n is sitting on the old one
- Restarting the whole stack after the VPS host rebooted for kernel patching
None of that is on the VPS line. All of it is on your time, or whoever is on call.
In my own deployments, the realistic floor is 3 to 5 hours per month per instance, once it's stable and you have good backups. Before it's stable (the first 3 months of a new setup), it's 8 to 15 hours a month. Add an external database, add a real secret manager, add monitoring, and the floor climbs further. A production self-hosted n8n is not "set and forget" software. It's a long-running service that needs maintenance.
If your hourly rate is X dollars, the real monthly cost of self-hosted is roughly:
# Self-hosted monthly cost (honest version)
vps_cost = 10 # a small VM; scale up for busier deployments
hours_per_month = 4 # realistic floor for a stable instance
your_hourly_rate = 75 # your loaded cost, including benefits
self_hosted_real_cost = vps_cost + (hours_per_month * your_hourly_rate)
print(f"Real monthly cost: ${self_hosted_real_cost:.0f}")
# At 75/hr: $310/month
# At $150/hr: $610/month
# At $0/hr (student/free time): $10/month, the VPS lineIf your time is worth 150 an hour, that 10 dollar VPS is actually 610 dollars a month. If your time is worth 0 (you're doing this for fun and have a flexible deadline), the VPS is genuinely 10 dollars a month and self-hosted wins on price alone.
The break-even, viewed honestly
Here's how I frame the choice when a client asks. The exact numbers depend on your execution volume, your time cost, and what tier you'd need on Cloud. The structure is stable.
| Situation | Likely winner |
|---|---|
| < 1K executions/month, you can self-host | Self-hosted |
| 1K to 10K executions/month, you have a stable setup | Self-hosted if your time is cheap, Cloud if your time is expensive |
| 10K+ executions/month, predictable workload | Cloud, unless you have ops capacity already |
| Spiky / unpredictable workload | Cloud (no idle cost, no overprovisioning) |
| Workflows handling PII or regulated data | Self-hosted, with the maintenance budgeted |
| You need SSO, audit logs, advanced permissions | Cloud, or self-hosted with the Enterprise license |
| You don't have anyone willing to be on call | Cloud, full stop |
The pattern: Cloud wins when your time is expensive relative to your execution volume, or when your workload is unpredictable. Self-hosted wins when you have the time, the workload is steady, and you want control.
The honest version of the break-even: at small scale, self-hosted is cheaper only if you value your time at close to zero. At large scale, Cloud is more expensive per execution but cheaper in aggregate because you're not paying the maintenance overhead.
Things Cloud gives you that the price list downplays
Beyond the executions, n8n Cloud takes care of:
- Backups: their problem, not yours
- Scaling: when your workflow suddenly needs to run 10× more often
- Updates: rolled out without you scheduling maintenance windows
- SSO / audit: included in higher tiers without the Enterprise license fee
- Support: someone to email when a worker dies at 3am
These are real. If your team is small, or your operations are spread across too many tools already, those are not optional. They're the difference between a workflow that runs and a workflow that becomes a second job.
Things self-hosted gives you that Cloud doesn't
- Data residency: workflows and credentials stay on your hardware
- Custom nodes: anything you can write in JavaScript or as a Docker container
- No execution limits: beyond what your hardware can handle
- No per-execution pricing: the meter stops at your VPS bill
- No tier upgrade pressure: you don't get emails asking you to move up a plan
For workflows that touch sensitive data (PII, financial records, anything under GDPR/CCPA scope), data residency alone can justify self-hosted. For workflows that need a custom integration that isn't in the public node library, self-hosted is the only path.
When n8n isn't the right tool
n8n is a workflow engine. It glues things together that don't natively talk to each other. It's not a general-purpose programming environment, and trying to use it as one is where teams waste the most time.
Three cases where I'd reach for code instead:
-
You need transactional guarantees. A workflow that calls Stripe, updates a database, calls SendGrid, and updates another database has three failure points between operations. If step 3 fails, you have to write idempotency logic manually. A 200-line NestJS or Next.js API route with a real transaction model handles this in one place and retries on failure. Workflow engines are not databases; they don't give you ACID guarantees across nodes.
-
You need version control and code review. n8n workflows live in a database. You can export to JSON, but the diffs are noisy, the merges are painful, and code review on a workflow is a UX task, not a code review. If your workflow logic is complex enough that you need peer review, write it as code in a repo with PRs.
-
You need sub-100ms latency. A workflow that runs on a schedule or in response to a webhook is fine at second-level latency. A workflow that needs to respond inside a request is the wrong shape. Inlining the logic into your application code is faster, cheaper, and easier to debug.
I keep coming back to this rule: if the workflow could be a cron job and a few API calls, n8n is overkill. If it could be a script you run manually, n8n is overkill. If it spans 5+ services and changes often, n8n earns its keep.
How I'd choose if I had to start over today
For a small team with a stable workload, no compliance pressure, and someone willing to own the ops: self-hosted on a small VPS, with a backup script that actually gets tested once a quarter, and a runbook for the things that break.
For a team that doesn't want a second on-call rotation, has variable load, or is scaling fast: n8n Cloud at a tier that gives you headroom. The premium over self-hosted is the price of not being paged at 3am.
For anything where the data is sensitive or the workflow touches regulated systems: self-hosted with a budgeted maintenance line, and the Enterprise license if you need SSO.
And for the workflows that need transactional integrity or live inside a user request: write them as code. Don't fight the tool.
I'm Ignacio Belando, a freelance senior engineer based in Rosario, Argentina. I run n8n in production for my own operations and for client automation pipelines. If you're weighing self-hosted vs Cloud and want a second opinion on which fits your workload, email me.