We buy the servers we test with our own money. Some links are affiliate links; they never change a verdict. Disclosure · How we test
n8n Cloud vs self hosted comes down to limits against labour. Cloud Starter costs 20 € a month (billed annually) for 2,500 executions, 5 concurrent runs and, per n8n's docs, 640 MiB of RAM. A self-hosted n8n on a 6.64 € Hetzner CX23 has no plan limits; in our Lab it handled 15.04 executions/s with zero failed requests. You pay for that freedom with your own upkeep time.
This matters now because n8n 2.x changed the plan lineup (Business is now self-hosted only) and Hetzner repriced its servers in 2026, so older comparisons get both sides wrong. All Cloud facts below come from n8n's pricing page and docs as we read them on 5 November 2026.
Verdict
Self-host on a 4 GB Hetzner CX23 if you run more than a hobby load or need data on your own server: it gave us 15.04 executions/s and its n8n peaked at 1003.0 MiB under 50 concurrent requests. Pick n8n Cloud if nobody wants to own a server and your volume fits Starter or Pro.
Tested in the Lab Hetzner CX23, CX33, CX43, CAX11, CAX21 · Nov 2026
This comparison sits in our n8n hosting hub. For the money side alone, with every cost line, see n8n hosting price.
The short comparison
| n8n Cloud Starter | n8n Cloud Pro | Self-hosted Community (CX23) | |
|---|---|---|---|
| Price | 20 €/month, billed annually | 50 €/month, billed annually | 6.64 € server + 1.33 € backups + your time |
| Executions per month | 2.5K | 10K | No plan limit |
| Concurrent executions | 5 | "20 / 50" | Unlimited by default; you can set a limit |
| Instance RAM | 640 MiB | 640 MiB (Pro-1) or 1280 MiB (Pro-2) | 3819 MiB total on the server |
| Execution log retention | 7 days, max 2,500 saved | 30 days, max 25,000 saved | You decide (we keep 14 days) |
| Updates, backups, security | n8n | n8n | You |
| Where data lives | n8n's infrastructure | n8n's infrastructure | Your server |
A note on units: MiB is a mebibyte (1,048,576 bytes); a vCPU is one virtual processor core shared with or reserved from the host machine.
Limits: what the Cloud plans cap
Executions
n8n counts one execution per full workflow run, whatever the number of steps. Starter includes 2.5K a month, Pro 10K, Business (self-hosted) 40K. The pricing page lists overage fees as "Capped" for Starter and Pro.
Concurrency
Cloud limits how many executions run at the same time. Per n8n's docs, "Any executions beyond the limits queue for later processing", in first-in, first-out order, and queued executions cannot be retried. On a self-hosted instance, the docs say "Concurrency control is disabled by default"; you can set one with N8N_CONCURRENCY_PRODUCTION_LIMIT.
Memory
This is the limit most comparisons skip. n8n's Cloud data management docs list the RAM per instance:
| Cloud plan | RAM | CPU |
|---|---|---|
| Trial, Starter | 640 MiB | 10 millicore, burstable |
| Pro-1 (10k executions) | 640 MiB | 20 millicore, burstable |
| Pro-2 (50k executions) | 1280 MiB | 80 millicore, burstable |
| Enterprise | 4096 MiB | 80 millicore, burstable |
The same docs warn that complex workflows with large data volumes can exceed the memory limit and "the instance can crash and become inaccessible." They also state that n8n itself uses about 180 MiB on average on Cloud.
What our self-hosted n8n actually used
We ran n8n 2.46.6 with Postgres 16, using our production compose file, on five Hetzner servers in Helsinki. The test workflow was a webhook, one Code node (run by n8n's task runner) and a response, hit by ApacheBench at 1, 10, 25 and 50 concurrent requests:
| Server | Concurrent requests | Executions/s | Median | p95 | Failed | n8n peak RAM |
|---|---|---|---|---|---|---|
| Hetzner CX232 vCPU · 4 GB · x86_64 | 1 | 10.1 | 104 ms | 162 ms | 0 | 520 MiB |
| Hetzner CX232 vCPU · 4 GB · x86_64 | 10 | 14.8 | 697 ms | 893 ms | 0 | 660 MiB |
| Hetzner CX232 vCPU · 4 GB · x86_64 | 25 | 15.0 | 1,651 ms | 1,936 ms | 0 | 825 MiB |
| Hetzner CX232 vCPU · 4 GB · x86_64 | 50 | 14.2 | 3,445 ms | 3,954 ms | 0 | 1,003 MiB |
| Hetzner CX334 vCPU · 8 GB · x86_64 | 1 | 13.5 | 72 ms | 133 ms | 0 | 543 MiB |
| Hetzner CX334 vCPU · 8 GB · x86_64 | 10 | 31.9 | 311 ms | 438 ms | 0 | 574 MiB |
| Hetzner CX334 vCPU · 8 GB · x86_64 | 25 | 29.5 | 841 ms | 986 ms | 0 | 803 MiB |
| Hetzner CX334 vCPU · 8 GB · x86_64 | 50 | 30.1 | 1,647 ms | 1,846 ms | 0 | 1,050 MiB |
| Hetzner CX438 vCPU · 15 GB · x86_64 | 1 | 14.6 | 78 ms | 123 ms | 0 | 546 MiB |
| Hetzner CX438 vCPU · 15 GB · x86_64 | 10 | 36.1 | 280 ms | 341 ms | 0 | 544 MiB |
| Hetzner CX438 vCPU · 15 GB · x86_64 | 25 | 35.0 | 714 ms | 800 ms | 0 | 694 MiB |
| Hetzner CX438 vCPU · 15 GB · x86_64 | 50 | 32.4 | 1,539 ms | 1,682 ms | 0 | 1,016 MiB |
| Hetzner CAX112 vCPU · 4 GB · aarch64 | 1 | 10.3 | 113 ms | 156 ms | 0 | 585 MiB |
| Hetzner CAX112 vCPU · 4 GB · aarch64 | 10 | 13.9 | 755 ms | 934 ms | 0 | 640 MiB |
| Hetzner CAX112 vCPU · 4 GB · aarch64 | 25 | 12.9 | 1,909 ms | 2,279 ms | 0 | 729 MiB |
| Hetzner CAX112 vCPU · 4 GB · aarch64 | 50 | 13.2 | 3,786 ms | 4,114 ms | 0 | 1,038 MiB |
| Hetzner CAX214 vCPU · 8 GB · aarch64 | 1 | 12.0 | 107 ms | 128 ms | 0 | 539 MiB |
| Hetzner CAX214 vCPU · 8 GB · aarch64 | 10 | 25.4 | 402 ms | 528 ms | 0 | 579 MiB |
| Hetzner CAX214 vCPU · 8 GB · aarch64 | 25 | 25.8 | 965 ms | 1,106 ms | 0 | 824 MiB |
| Hetzner CAX214 vCPU · 8 GB · aarch64 | 50 | 24.5 | 2,019 ms | 2,197 ms | 0 | 859 MiB |
Measured by AI Hosting Lab on 2026-11-05 · 5 servers · method · raw data
What stands out:
- Zero failed requests on every server at every concurrency, including 50 concurrent requests on the 2 vCPU, 4 GB CX23 and CAX11.
- Memory. Idle, n8n used 402.7 MiB on the CX23 load-test server and 379.7 MiB on our production CX23. Under 50 concurrent requests it peaked at 1003.0 MiB on the CX23 and 1049.6 MiB on the CX33.
- Throughput. The CX23 reached 15.04 executions/s, the CX33 31.93, the CX43 36.14. The ARM CAX11 reached 13.9 and the CAX21 25.77.
- Latency. At a single request at a time, the CX23 answered in a median of 104 ms; at 50 concurrent requests the median rose to 3445 ms, because requests wait their turn.
Our self-hosted setup is not the same software build or workload as an n8n Cloud instance, so this is no Cloud benchmark. What it does show: under a burst of 50 requests, our n8n used more memory than the 640 MiB a Starter or Pro-1 instance is documented to get. On the CX23, with 3819 MiB of RAM, that peak is about a quarter of the server. If your workflows handle files or large JSON payloads, that headroom is the practical difference.
The detailed latency picture per server is on n8n webhook performance.
Features: what the free Community Edition lacks
Self-hosting for free means the Community Edition. n8n's docs list what it "doesn't include":
| Feature | Community Edition | Where you get it |
|---|---|---|
| Projects, sharing workflows and credentials | No | Cloud Starter and Pro include shared projects (1 and 3); more on Business and Enterprise |
| SSO (SAML, LDAP) | No | Business, Enterprise |
| Environments, Git version control | No | Business, Enterprise |
| External secrets, log streaming | No | Enterprise |
| Custom variables, external binary storage, multi-main mode | No | Paid editions |
| Queue mode, logging | Yes | Included |
| Folders, debug in editor, custom execution data | With the free registered licence | Register your instance |
For a solo builder or a small team that does not need SSO or Git-based deployments, none of these is a blocker. For a company with an audit trail requirement, they are, and then you compare Enterprise or Business pricing rather than a VPS.
The break-even math
Self-hosting has a fixed server price and a variable cost: your time. Here is the CX23 setup against each Cloud plan, with Hetzner backups (20% of the server price) included and your hour valued at 30 €. Prices are from the Hetzner Cloud API, gross:
| Plan | CPU | vCPU | RAM | Disk | Per month excl. VAT | Per month incl. 21% VAT | Per hour incl. VAT |
|---|---|---|---|---|---|---|---|
| CAX11 | arm | 2 | 4 GB | 40 GB | 5.99 € | 7.25 € | 0.0116 € |
| CAX21 | arm | 4 | 8 GB | 80 GB | 10.49 € | 12.69 € | 0.0203 € |
| CAX31 | arm | 8 | 16 GB | 160 GB | 20.99 € | 25.40 € | 0.0407 € |
| CAX41 | arm | 16 | 32 GB | 320 GB | 40.99 € | 49.60 € | 0.0795 € |
| CCX13 | x86 | 2 | 8 GB | 80 GB | 42.99 € | 52.02 € | 0.0834 € |
| CCX23 | x86 | 4 | 16 GB | 160 GB | 85.99 € | 104.05 € | 0.1667 € |
| CCX33 | x86 | 8 | 32 GB | 240 GB | 138.49 € | 167.57 € | 0.2685 € |
| CCX43 | x86 | 16 | 64 GB | 360 GB | 275.99 € | 333.95 € | 0.5352 € |
| CCX53 | x86 | 32 | 128 GB | 600 GB | 533.49 € | 645.52 € | 1.0346 € |
| CCX63 | x86 | 48 | 192 GB | 960 GB | 853.49 € | 1,032.72 € | 1.6550 € |
| CPX11 | x86 | 2 | 2 GB | 40 GB | 5.49 € | 6.64 € | 0.0106 € |
| CPX02 | x86 | 1 | 1 GB | 20 GB | 5.99 € | 7.25 € | 0.0116 € |
| CPX21 | x86 | 3 | 4 GB | 80 GB | 9.49 € | 11.48 € | 0.0184 € |
| CPX12 | x86 | 1 | 2 GB | 40 GB | 11.49 € | 13.90 € | 0.0223 € |
| CPX31 | x86 | 4 | 8 GB | 160 GB | 17.49 € | 21.16 € | 0.0339 € |
| CPX22 | x86 | 2 | 4 GB | 80 GB | 19.49 € | 23.58 € | 0.0378 € |
| CPX41 | x86 | 8 | 16 GB | 240 GB | 32.49 € | 39.31 € | 0.0630 € |
| CPX32 | x86 | 4 | 8 GB | 160 GB | 35.49 € | 42.94 € | 0.0688 € |
| CPX42 | x86 | 8 | 16 GB | 320 GB | 69.49 € | 84.08 € | 0.1348 € |
| CPX51 | x86 | 16 | 32 GB | 360 GB | 70.99 € | 85.90 € | 0.1377 € |
| CPX52 | x86 | 12 | 24 GB | 480 GB | 100.49 € | 121.59 € | 0.1948 € |
| CPX62 | x86 | 16 | 32 GB | 640 GB | 129.99 € | 157.29 € | 0.2520 € |
| CX23 | x86 | 2 | 4 GB | 40 GB | 5.49 € | 6.64 € | 0.0106 € |
| CX33 | x86 | 4 | 8 GB | 80 GB | 8.49 € | 10.27 € | 0.0165 € |
| CX43 | x86 | 8 | 16 GB | 160 GB | 15.99 € | 19.35 € | 0.0310 € |
| CX53 | x86 | 16 | 32 GB | 320 GB | 29.49 € | 35.68 € | 0.0572 € |
From the Hetzner Cloud API, location hel1, checked 2026-11-05. "Incl. VAT" is what our Czech (EU consumer) account pays; businesses and buyers outside the EU usually pay the price excl. VAT. Primary IPv4 is billed separately.
| Compared plan | Cloud price | Self-hosted (CX23 + backups) | Monthly gap | Upkeep time that gap pays for |
|---|---|---|---|---|
| Starter | 20 € | 7.97 € | 12.03 € | 24 minutes |
| Pro | 50 € | 7.97 € | 42.03 € | 84 minutes |
| Pro on a CX33 (8 GB) | 50 € | 12.32 € | 37.68 € | 75 minutes |
Now add capacity. Starter's 2,500 executions take our CX23 about 166 seconds of work at 15.04 executions/s; Pro's 10,000 take about 11 minutes. Real workflows that call APIs run slower than our test, but the scale holds: on your own server, executions are almost free once the server is paid for. The more you run, the more self-hosting wins, as long as your upkeep stays under the minutes in the table.
Run your own numbers here. Enter the Cloud plan price that covers your volume (20 or 50), your server price plus 20% if you use backups, and your hours:
When n8n Cloud wins
- Best for: small teams with no one who wants to own a Linux server, and volumes that fit Starter or Pro.
- Main drawback: hard caps on executions, concurrency and instance memory; logs kept 7 or 30 days.
- Skip it if: you run tens of thousands of executions a month, process files, or need data to stay on your own machine.
Cloud also gives you AI Assistant credits and AI models without your own API keys, which self-hosting does not. Start at n8n Cloud (no commission for us).
When self-hosting wins
- Best for: builders who run many executions, privacy-minded teams who keep data in-house, and anyone who wants unlimited concurrency and longer logs.
- Main drawback: updates, backups, TLS and security are your job.
- Skip it if: a broken server would cost you more than a year of Cloud fees, or you need SSO and Git without paying for Business.
Our pick is the Hetzner CX23 at 6.64 € (Hetzner Cloud, no commission either). If you want the 8 GB headroom for heavier workflows, the CX33 at 10.27 € doubled throughput in our test. ARM works too; the CAX21 reached 25.77 executions/s, see n8n on ARM.
What self-hosting work looks like
Our production install, from Docker to a healthy n8n, took 127 seconds on the CX23. After that, upkeep is mostly three things:
- Pull a new pinned image when you choose to update.
- Keep backups on and test one restore.
- Keep the server patched and SSH locked down. On Ubuntu 24.04 and newer, sshd runs via
ssh.socket, sosystemctl reload sshfails with "ssh.service is not active" even though new connections already use your new config. Don't panic when you see it.
The service restarts itself after crashes and reboots because our compose file sets restart: unless-stopped on both containers.
Next step: if self-hosting won, follow our n8n install guide for Hetzner, which uses the same compose file as this test.
Hetzner prices on this page include 21% VAT, as charged to our Czech (EU consumer) account by the Hetzner API on 2026-11-05. Without VAT (businesses, most buyers outside the EU): CX23 5.49 €, CX33 8.49 €, CX43 15.99 €, CAX11 5.99 €, CAX21 10.49 € per month.
FAQ
Is self-hosted n8n the same as n8n Cloud?
The workflow engine is the same, but the free Community Edition lacks some features: projects, sharing, environments, external secrets, log streaming, SSO and Git version control, among others. n8n Cloud is managed for you and has plan limits on executions, concurrency and memory.
How many executions can self-hosted n8n run?
The Community Edition has no plan limit on executions. Your server is the limit. With a small webhook workflow we measured 15.04 executions/s on a Hetzner CX23 and 36.14 executions/s on a CX43, with zero failed requests.
How much RAM does an n8n Cloud instance get?
n8n's docs list 640 MiB RAM for Trial, Starter and Pro-1 (10k executions), 1280 MiB for Pro-2 (50k executions) and 4096 MiB for Enterprise, as checked on 5 November 2026.
When is n8n Cloud the better choice?
When nobody on your team wants to own a server, when you run fewer than a few thousand executions a month, or when the price gap is smaller than the value of the time you would spend on upkeep.



