nodevstack

How to self-host n8n on Contabo

n8n Cloud starts around $24/mo and bills by executions. The open-source version is free and, on a ~$5/mo Contabo VPS, gives you unlimited executions and full control of your data. Here's how to do it — the easy 1-click way and the flexible Docker way — plus the gotchas that trip people up.

Prices checked Aug 2026. This site runs on a Contabo VPS.

The quick math

n8n's community edition is free to self-host for your own business under its Sustainable Use License — unlimited workflows, no per-user fee. The only cost is the server. Contabo's base Cloud VPS is about $5/mofor 4 vCPU, 8 GB RAM and NVMe — which happens to be n8n's recommended production spec, not just its minimum. So the whole setup is roughly a tenth of an entry n8n Cloud plan, with no execution caps.

What you need

Get a Contabo VPS →

Path A — Contabo's free 1-click n8n image (easiest)

Contabo runs a free 1-Click Apps program that includes n8n. The image is Ubuntu 24.04 with Docker, a Caddy reverse proxy and automatic Let's Encrypt SSL already wired together — so you skip installing any of that by hand. It's the fastest route if you just want a working, HTTPS-secured n8n.

  1. 1. When ordering the VPS (or later, from the Contabo control panel), choose n8n under 1-Click Apps.
  2. 2. Pick a location and set your admin password.
  3. 3. Wait ~30 minutes — Contabo emails you the access details. Caddy has already issued the SSL certificate.
  4. 4. Open the URL, log in, and you're in the n8n editor.

The catch: you get Contabo's chosen stack (likely SQLite-backed by default, which is fine for light use but not ideal at volume). If you want PostgreSQL and full control of the compose file, use Path B instead.

Path B — plain VPS + Docker (more control)

Install n8n yourself with Docker Compose and PostgreSQL, behind a reverse proxy for HTTPS. More steps, but you own the whole stack and get a production database.

  1. 1. Point your domain — add an A record for e.g. n8n.example.com to the VPS IP.
  2. 2. Install Docker and the Compose plugin on the server.
  3. 3. Create a docker-compose.yml — n8n + PostgreSQL, with the data volumes persisted so upgrades don't wipe your workflows:
services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - N8N_HOST=n8n.example.com
      - N8N_WEBHOOK_URL=https://n8n.example.com
      - N8N_PROXY_HOPS=1
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=db
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=change-me
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    restart: always
    environment:
      - POSTGRES_USER=n8n
      - POSTGRES_PASSWORD=change-me
      - POSTGRES_DB=n8n
    volumes:
      - pg_data:/var/lib/postgresql/data

volumes:
  n8n_data:
  pg_data:
  1. 4. Put a reverse proxy in front for HTTPS — nginx, Caddy or Traefik terminates TLS on port 443 and proxies to n8n on 127.0.0.1:5678. Caddy is the least effort (automatic Let's Encrypt); nginx + certbot works too.
  2. 5. Bring it up with docker compose up -d, then open https://n8n.example.com and create the owner account.

Gotchas worth knowing before you start

Set the public webhook URL

Behind a reverse proxy, n8n otherwise shows internal :5678 addresses in webhooks and the UI. Set N8N_WEBHOOK_URL to your public https:// domain (this replaces the older WEBHOOK_URL, which now logs a deprecation warning), and N8N_PROXY_HOPS=1 when you're behind one proxy.

HTTPS isn't optional if you use OAuth

Google and other providers reject non-HTTPS callback URLs, so the domain + TLS step is required the moment you add an OAuth credential — not just a nice-to-have.

Use PostgreSQL for anything real

n8n defaults to SQLite; PostgreSQL is the production choice for reliability and concurrency (MySQL/MariaDB have been deprecated since v1.0). Persist the Postgres volume in compose.

What about local AI?

For most people, n8n on a cheap CPU VPS orchestrating external LLM APIs (OpenAI, Claude, etc.) is the practical "AI automation" setup. Running models locally needs a GPU — Contabo has a GPU Cloud line (from around €690/mo), but that's a different, far pricier product, and there's no pre-built local-LLM image.

Is it really free? (licensing)

The software is free to self-host for your own internal business or personal use under n8n's Sustainable Use License — unlimited workflows, no per-seat charge. You'd only need a commercial license if you white-label n8n as a paid product, offer it as a hosted service to your customers, or let end-users connect their own accounts to build workflows (multi-tenant SaaS). Building your own internal automations — even for clients — is fine.

Self-hosted vs n8n Cloud

Self-hosted (Contabo)n8n Cloud
Cost~$5/mo flat VPS, unlimited executionsFrom ~$24/mo, tiered by executions/active workflows
OpsYou own updates, backups, TLS, uptimeManaged for you
DataEntirely on your serverOn n8n's infrastructure
Best forCost control, data ownership, high volume, tinkeringNon-technical users, fastest start

One line: Cloud buys convenience and managed reliability; self-hosting buys flat cost, unlimited executions and data ownership at the price of doing your own ops. If you're comfortable on a Linux box, self-hosting on Contabo is the value pick.

Frequently asked

Is self-hosting n8n free?

The software is. n8n's community edition ships under the Sustainable Use License (fair-code): self-hosting it for your own internal business or personal use is free — unlimited workflows, no per-user fee. You only pay for the server it runs on (about $5/mo on Contabo). You'd only need a paid license to resell n8n, offer it as a hosted service to your customers, or let end-users connect their own accounts (multi-tenant SaaS).

What are the minimum server requirements for n8n?

For testing, roughly 1–2 vCPU and 2 GB RAM will do. For production you want 2–4 vCPU, 8 GB RAM, NVMe storage and PostgreSQL — 2 GB starts swapping once Postgres and heavy JSON payloads run together. Contabo's cheapest Cloud VPS (4 vCPU / 8 GB / NVMe, ~$5/mo) already meets the recommended production tier, so you don't need to upsize for a normal single-tenant setup.

n8n Cloud or self-hosted — which is cheaper?

Self-hosted is far cheaper at volume: a flat ~$5/mo VPS with unlimited executions versus n8n Cloud's subscription tiered by executions and active workflows (from around $24/mo). The trade-off is ops: with self-hosting you own updates, backups, TLS and uptime. Cloud buys convenience; self-hosting buys flat cost and data ownership.

Does Contabo have a one-click n8n install?

Yes. Contabo offers a free 1-Click Apps program that includes n8n — an Ubuntu 24.04 image with Docker, a Caddy reverse proxy and automatic Let's Encrypt SSL already wired up. You select it during checkout (or add it later from the control panel), set a password, and it's live in about 30 minutes. Installing on a plain VPS yourself is still an option if you want more control over the stack.

Related

Some links here are affiliate links — we earn a commission on Contabo and n8n, at no extra cost to you, and it never changes the recommendation. See our Affiliate Disclosure.