NODED.CLOUD/Blog/Self-Hosted n8n on a VPS: Sizing, Webhooks and EU Hosting

Self-Hosted n8n on a VPS: Sizing, Webhooks and EU Hosting

24 Sept 2026 · Mario Marin

Workflow count is not what makes n8n hungry — payload size is. Size for your heaviest workflow, back up the encryption key separately, and trial it by the hour.

Workflow automation is one of the clearest wins for self-hosting: the SaaS versions charge per execution or per active workflow, and the thing doing the work is a Node process that will happily run on a €6 virtual machine. The catch is that automation tools sit in the middle of everything — they hold credentials for your other systems, they receive webhooks from the public internet, and they fall over quietly at 3am if nobody sized them properly.

This is how to size and host a self-hosted n8n instance on a VPS, what the moving parts actually need, and what it costs in each of our European locations.

What you are actually running

A self-hosted n8n deployment is three or four processes, and the sizing follows from which of them you need:

  • The n8n application. A Node.js process. Idle it is small; during an execution it holds the whole data set moving through the workflow in memory.
  • A database. PostgreSQL in any deployment you care about. SQLite is the default and it is fine for a handful of personal workflows, painful once several executions overlap.
  • Redis and worker processes, if you run queue mode. Not needed for a small instance; essential once you have long-running workflows that must not block each other.
  • A reverse proxy with TLS. Webhook-triggered workflows need a public HTTPS endpoint, and so does the editor UI.

The single biggest driver of memory is not workflow count — it is payload size. A workflow that pulls 50,000 rows from an API and maps them item by item will use orders of magnitude more RAM than fifty workflows that each move a webhook body into a spreadsheet row.

Shape by deployment

DeploymentShapeRAM / vCPU / diskBucharestFrankfurt · Vienna
Personal automations, small payloads, SQLiteVPS I KVM2 GB / 1 / 20 GB€4.00€5.50
Small team, PostgreSQL on the same box, modest payloadsVPS II KVM4 GB / 2 / 40 GB€6.00€9.00
Queue mode: n8n + workers + Redis + PostgreSQLVPS III KVM8 GB / 2 / 60 GB€10.00€16.00
Large payloads, many concurrent executions, file processingVPS IV KVM16 GB / 4 / 80 GB€16.00€26.00

Start at 4 GB if this instance is doing anything for a business. The 2 GB shape runs n8n well and leaves little room for the database plus a payload spike at the same time.

The four things that bite people

1. The encryption key is the whole instance

n8n encrypts stored credentials with a key held outside the database. Lose it and every saved credential is unrecoverable — you will re-authorise every integration by hand. Back it up separately from the database dump, ideally in your password manager rather than on the same machine.

2. Execution history fills the disk

By default, successful executions are saved with their data. A workflow that runs every five minutes and carries a megabyte of payload writes roughly 8 GB a month into the database. Set the retention and pruning options on day one, and monitor the database size rather than waiting for a full-disk incident.

3. Webhooks need a stable public endpoint

One IPv4 address is included with every VPS plan, which is all you need: put the editor and the webhook path behind one reverse proxy with an ACME certificate. What you must avoid is exposing the instance without authentication — an open n8n editor is a credential store with a web UI.

4. Timeouts are not optional

Set an execution timeout. Without one, a workflow waiting on an unresponsive third-party API holds memory until the process is restarted, and on a 2 GB machine a couple of those is an outage.

Where to run it

Two considerations decide the location, and they point in different directions:

  • Latency to the systems it talks to. If your automations mostly hit your own application, put the automation box in the same location as that application. Our five live locations are Bucharest, Warsaw, Amsterdam, Frankfurt and Vienna.
  • Data residency. Automation platforms see everything: customer records, invoices, support tickets, payment metadata. All five of our locations are in EU member states, so the data stays in the European Union wherever you put it — including Bucharest, which is our cheapest. See our note on EU-only hosting.

The location price list has every figure if you want to compare cities before ordering.

Trial it by the hour

Because the memory profile depends entirely on your own workflows, the sensible way to size this is to run the real thing:

  1. Order a VPS II on hourly billing: €0.0083 per hour in Bucharest, €0.0125 in Frankfurt.
  2. Install n8n with PostgreSQL, import your heaviest workflow, and run it against real data volumes.
  3. Watch peak memory during the run, not idle memory. A week of observation on a VPS II in Bucharest costs about €1.39.
  4. Keep the machine if it fits, or rebuild a shape up if it does not.

An hourly service needs €5 of account credit before it can be created, and it is charged from that balance each hour. Stopping the machine does not stop the meter — destroying it does.

Running costs against the hosted version

A VPS II in Bucharest is €6 a month, or €64.80 a year if you take the annual price, which is 10% off the plan price. Compared with per-execution pricing, the break-even arrives quickly — but be honest about the second column of the comparison: you now own upgrades, TLS renewal, database backups, disk monitoring and the encryption key. If nobody on your side wants that, the hosted product is a reasonable purchase. If you were going to run a VPS anyway, the automation instance is nearly free capacity.

Backups that actually restore

  1. pg_dump of the n8n database, nightly, shipped off the machine.
  2. The encryption key, stored somewhere that is not the machine.
  3. A copy of any static files your workflows read or write.
  4. One restore test on a throwaway hourly VPS. An hour of a VPS II costs under a cent — there is no excuse for an untested backup.

If disk is your constraint rather than memory, add storage instead of changing shape: extra storage is €4 per month per 50 GB increment, up to three increments per machine.

How Noded Can Help

Pick a VPS II from the hourly VPS page in the location closest to the systems your workflows talk to, trial it on hourly billing with your real payloads, and switch to the monthly price once you know the shape. If your automations move large files or run dozens of concurrent executions, our PostgreSQL sizing guide covers the database half of the problem, and a ticket gets you a second opinion on the shape before you commit.

FAQ

How much RAM does self-hosted n8n need?

4 GB is the sensible starting point with PostgreSQL on the same machine. 2 GB works for personal use with small payloads. Memory is driven by the size of the data moving through a workflow, not by how many workflows you have.

Do I need Redis and queue mode?

Not for a small instance. Add queue mode when long-running executions start blocking each other, which usually coincides with needing 8 GB.

Can I run it on the €4 plan?

For personal automations with small payloads, yes. For anything a business depends on, start at €6 in Bucharest or €9 in Frankfurt and keep headroom for payload spikes.

What happens if I lose the encryption key?

Every stored credential becomes unreadable and has to be re-entered. Back the key up separately from the database, and never only on the machine it protects.

Is self-hosting in the EU enough for GDPR?

Hosting in an EU member state removes the third-country transfer question, which is the part we control. What your workflows do with personal data — retention, minimisation, lawful basis — remains yours.

← All posts

Related services

Run this on NODED.CLOUD.

Keep reading

More from the NOC.

Like the way we run things? Spin up a server in 60 seconds.