Skip to content

Solutions · Automation

A VPS for n8n

n8n is the workflow automation tool you self-host to keep your data and your credentials on your own machine — free under its Sustainable Use License. Its official installer starts n8n, its code runners, a sandbox and a search service with docker compose, so give it a real machine: BD-8 at $12.90 a month is the cheapest that does. C2-4-80 at $36.90 arrives with n8n installed.

What it needs

Software from the docs, sizes labelled by source

The software and the security posture come from the project's own documentation. Where the project publishes no hardware figure, the sizes say whose they are.

From n8n's README, installer and docs

  • Docker with Compose v2. The official installer (curl -fsSL https://get.n8n.io | sh) refuses to run without it, then writes a compose stack with generated secrets.
  • Port 5678 is the editor and “the only port that should be internet-facing”; put HTTPS in front and tell n8n its address with N8N_HOST, N8N_PROTOCOL and WEBHOOK_URL.
  • Credentials are encrypted with N8N_ENCRYPTION_KEY; back up the .env the installer writes or the database is unreadable elsewhere.
  • Community edition is free to self-host under the Sustainable Use License; enterprise features need a licence.

Sizes (ours, from what the official stack starts)

Sizing by workload
WorkloadvCPURAM
n8n alone, a few workflows, SQLiteThe bare docker run from the README. Fine to learn on.12 GB
The official compose stack: n8n + runners + sandbox + SearXNGFive containers; the AI sandbox runs Docker-in-Docker.24 GB
Busy automations, Postgres, many concurrent executionsQueue mode and a real database when executions pile up.48 GB

The plans that fit

4 machines, priced live

Cheapest fitting machine first. Prices are today's, per month, read from the catalogue.

  • BD-8$12.90/mo

    4 vCPU · 8 GB · 100 GB disk · 32 TB

    Cheapest that runs the full official stack. 4 vCPU, 8 GB, 100 GB and 32 TB of transfer for less than the 2 GB machines elsewhere. Its supplier does not run start-up scripts: the install is the two lines in step 1, typed by you.

  • C2-4-80$36.90/mo

    2 vCPU · 4 GB · 80 GB disk · 3 TB

    Arrives with n8n installed. 2 vCPU / 4 GB, in over thirty cities, on suppliers that run our preset. Log in, tunnel to the editor, or add your domain.

  • C4-8-160$72.90/mo

    4 vCPU · 8 GB · 160 GB disk · 4 TB

    Arrives installed, with room. 4 vCPU / 8 GB with the preset: for many workflows, Postgres and the AI sandbox at once.

  • U2-4-40$13.90/mo

    2 vCPU · 4 GB · 40 GB disk · Unmetered

    2 vCPU / 4 GB, unmetered, Istanbul. For workflows that move files all day. Paste the install yourself.

“Deploy installed” opens the configurator with our n8n start-up script already in the start-up box, in full, before you buy. It runs once, as root, while the server is built, and only on suppliers whose platform runs start-up scripts; on the other rows the install is the same commands, pasted by you.

The install

Four steps, from n8n's own installer

With the preset, steps 1 and 2 are done when the server arrives.

  1. Docker, then n8n. curl -fsSL https://get.docker.com | sh curl -fsSL https://get.n8n.io | sh The installer creates ./n8n with a compose file and a .env of generated secrets, and starts everything.
  2. Keep 5678 off the internet. The preset firewalls it and installs Caddy. Until you have a domain, reach the editor over SSH: ssh -N -L 5678:127.0.0.1:5678 root@your-server then http://127.0.0.1:5678/ — the first visit creates the owner account.
  3. Give it a domain. Point an A record at the server; add N8N_HOST, N8N_PROTOCOL=https and WEBHOOK_URL=https://…/ to the .env and docker compose up -d; one Caddyfile block reverse_proxy 127.0.0.1:5678 gets the certificate for you.
  4. Back up the .env. It holds the encryption key. Upgrades are the installer again with --upgrade.

Honestly

What we would actually buy

The official stack is five containers, not one. Buy the 8 GB machine that costs less than the 4 GB ones.

For one n8n instance

BD-8 · $12.90/mo

4 vCPU, 8 GB, 100 GB of disk and 32 TB of transfer at $12.90: room for n8n, its runners, the sandbox, Postgres later, and every webhook you throw at it. The one thing it does not do is run our start-up preset, so the install is two pasted lines. If those two lines are the difference, C2-4-80 at $36.90 arrives with n8n running.

Questions

What people ask before they buy one.

How much RAM does n8n need?
n8n publishes no figure. A single n8n container from the README docker quick start idles in a few hundred megabytes and runs on 2 GB. The official installer (get.n8n.io) is a different thing: it starts n8n, a separate runners container for Code nodes, a sandbox service that runs Docker-in-Docker, and SearXNG for the AI assistant. For that stack 4 GB is the sensible floor and 8 GB is comfortable, which is why the cheapest machine on this page is an 8 GB one.
Is self-hosting n8n free?
Yes for the community edition, under n8n's Sustainable Use License: you can run it for your own business and modify it; you cannot sell it as a hosted service to others. Enterprise features such as SSO and environments need an enterprise licence. The installer and the Docker image are the same either way.
What does the start-up preset do?
It installs Docker with Docker's own script, runs n8n's official installer with N8N_DIR=/opt/n8n, installs Caddy, and firewalls everything except SSH and Caddy's 80/443 — n8n's compose publishes 5678 on every interface, which is fine behind a firewall and wrong on the open internet. It leaves /root/N8N-NEXT-STEPS.txt with the SSH tunnel command and the three lines that give n8n your domain. It does not create the owner account; the first visit to the editor does.
Do I need a domain?
For webhooks and OAuth credentials, yes: services call your n8n back at a public HTTPS address, and n8n needs WEBHOOK_URL to know what it is. For building and running workflows that only poll, you can work through the SSH tunnel indefinitely. The preset installs Caddy so the domain step is one DNS record and four lines of config.
SQLite or Postgres?
The installer starts n8n on SQLite, and for one person it is fine. Move to Postgres when executions pile up or you turn on queue mode with worker processes; n8n's docs describe the DB_TYPE variables. It is a configuration change, not a reinstall.
How do I keep it running and updated?
docker compose restarts the containers after a reboot on its own. Upgrades are the installer again with --upgrade, which bumps the version lines in .env and pulls the images. Back up /opt/n8n/.env somewhere safe first: without N8N_ENCRYPTION_KEY, saved credentials cannot be decrypted.