Short version: a 1–2 GB VPS runs n8n comfortably for personal workflows; go to 2 GB or 4 GB if you're running queues, longer workflows, or heavy integrations alongside it. Pick a provider that gives you honest RAM and CPU — not the cheapest sticker price on an oversold node.
What n8n actually needs
n8n is a Node.js app running inside Docker. A single worker doing a few hundred executions a day is light. What eats RAM is the workflow runtime, the database (SQLite by default, Postgres for production), and any heavy community nodes. Rule of thumb:
| Use case | RAM | CPU |
|---|---|---|
| Personal automation, a few workflows | 1–2 GB | 1 vCPU |
| Scheduled jobs + webhooks + a few integrations | 2 GB | 2 vCPU |
| Queue mode, many workflows, production uptime | 4 GB | 2 vCPU |
Most self-hosters in r/n8n run comfortably on 2 GB. Don't over-buy: n8n scales down, and a 1 GB box is genuinely enough to start.
What matters in a host (for n8n)
- Honest RAM, not oversold nodes. The #1 pain on budget VPSes is a neighbor hogging your CPU. A host that guarantees resources beats a cheaper one that shares them.
- NVMe storage. The workflow DB and logs are small, but slow disk shows up as slow webhook responses.
- Good uptime + fast restore. You'll snapshot before every n8n upgrade. A provider with quick snapshot restore is worth paying for.
- Signup that doesn't fight you. Some budget hosts make new accounts painful. If the signup is a wall, the support will be too.
Best providers for n8n in 2026
Check Hetzner pricing →
Deploy n8n on Vultr →
Affiliate disclosure: if you sign up through this link we may earn a commission. It doesn't change our recommendation.
Get $25 credit on DigitalOcean →
Affiliate disclosure: if you sign up through this link we may earn a commission. It doesn't change our recommendation.
Affiliate disclosure: if you sign up through this link we may earn a commission. It doesn't change our ranking.
Docker Compose setup that just works
This is the setup I run — Caddy in front for automatic HTTPS, n8n bound to localhost only, and SQLite. Expose nothing to the internet directly except port 80/443 through the proxy.
services:
n8n:
image: n8nio/n8n
restart: unless-stopped
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=CHANGE_ME
- N8N_HOST=n8n.yourdomain.com
- N8N_PROTOCOL=https
- N8N_PORT=5678
ports:
- "127.0.0.1:5678:5678"
volumes:
- ./n8n:/home/node/.n8n
caddy:
image: caddy:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
depends_on:
- n8n
Caddyfile:
n8n.yourdomain.com {
reverse_proxy n8n:5678
}
That's it — Caddy issues the TLS cert automatically on first boot, and n8n is reachable only at your domain over HTTPS.
The setup steps in one pass
- Create the VPS (2 GB recommended) with Docker preinstalled or install it.
- Put the
compose.yamlabove in a folder, set your domain + password. docker compose up -d, point your DNS A record at the box.- Enable backups: snapshot daily via your provider's API, or
rsync ./n8noff-box nightly.
Your ./n8n folder holds all your workflows and credentials. Back it up daily — restore-from-snapshot is your recovery plan. n8n has no cloud lock-in; the whole point of self-hosting is that the data and the workflows are yours.
Don't overthink the box
n8n self-hosting is the single best value in the automation space right now. The pitfall most people hit isn't the software — it's signing up with a host that oversells RAM and then wondering why the workflow runner crawls. A straight-spec cheap VPS avoids that entirely.
See the full cheap VPS comparison →
If you buy through a sponsored link on this page, we may earn a commission. It never changes what we recommend.