RackDiff
Alle Guides

n8n Self-Hosting: Der komplette Guide 2026

n8n auf eigenem VPS installieren. Docker Setup, Reverse Proxy, SSL - Schritt für Schritt erklärt.

Dirk Hesse
5. Februar 2026
12 Min. Lesezeit

Du willst n8n selbst hosten statt die Cloud-Version zu nutzen? In diesem Guide zeigen wir dir Schritt für Schritt, wie du n8n auf einem günstigen VPS installierst, mit PostgreSQL als Datenbank absicherst und per Reverse Proxy mit SSL erreichbar machst. Am Ende läuft deine eigene Automations-Plattform auf einem Server, dessen tagesaktuellen Bruttopreis du in den Angebotskarten unten findest.

Wichtig: Self-Hosting erfordert Grundkenntnisse in Linux, Docker und Netzwerkkonfiguration. Fehler können zu Datenverlust oder Sicherheitslücken führen.

Warum n8n selbst hosten?

n8n Cloud ist bequem, weil Hosting, Updates und Betrieb durch den Anbieter erledigt werden. Bei vielen Workflows, häufigen Triggern oder höheren Ausführungszahlen steigen die laufenden Kosten jedoch mit der Nutzung. Prüfe vor deiner Entscheidung die aktuelle n8n-Preisseite, weil Plan-Namen, Limits und Preise regelmäßig angepasst werden können.

Ein eigener VPS mit 2 bis 4 GB RAM liegt typischerweise im günstigen Einstiegssegment. Die genauen Bruttopreise inklusive 19 % MwSt. findest du in den RackDiff-Angebotskarten. Darauf laufen deine Workflows ohne Cloud-Execution-Limit, solange CPU, RAM und Datenbank mitkommen. Du bestimmst selbst, wo deine Daten liegen.

Kostenvergleich: Self-Hosting vs. n8n Cloud

n8n Cloudn8n Self-Hosted
Monatliche KostenAktuelle n8n-Preisseite prüfenTagesaktuelle VPS-Bruttopreise in den Angebotskarten
ExecutionsPlanabhängigDurch deine Serverressourcen begrenzt
WorkflowsPlanabhängigDurch deine Serverressourcen begrenzt
DatenstandortAnbieter- und PlanabhängigDu entscheidest
Setup-AufwandGeringGrundkenntnisse in Linux, Docker und DNS nötig

Datenschutz und DSGVO

Wenn du Kundendaten, E-Mail-Adressen oder Formulardaten in deinen Workflows verarbeitest, ist der Serverstandort relevant. Bei einem deutschen VPS-Anbieter liegen deine Daten in deutschen Rechenzentren. Du behältst die volle Kontrolle, kannst AV-Verträge direkt mit dem Hoster abschließen und musst dich nicht auf Datentransfers in Drittländer einlassen. Für Freelancer und kleine Unternehmen, die mit Kundendaten arbeiten, ist das ein echter Vorteil.

Keine Execution-Limits

In der Cloud-Version zählt jede Workflow-Ausführung. Polling-Trigger, die alle 5 Minuten laufen, verbrauchen allein 8.640 Executions pro Monat. Auf deinem eigenen Server spielt das keine Rolle. Du kannst so viele Trigger und Schedules einrichten, wie dein Server verarbeiten kann.

Die Hardware-Anforderungen

Bevor du loslegst, solltest du wissen, welche Hardware du brauchst. Das hängt von deiner Nutzung ab:

NutzungRAMCPUStorage
Hobby (weniger als 20 Workflows)2 GB1 vCPU20 GB
Standard (20 bis 50 Workflows)4 GB2 vCPU40 GB
Pro (50+ Workflows)8 GB4 vCPU80 GB

n8n selbst braucht etwa 300 bis 500 MB RAM. Der Rest geht an PostgreSQL, Caddy und das Betriebssystem. Für die meisten Einsteiger reicht ein VPS mit 2 GB RAM problemlos. Sobald du viele parallele Workflows mit großen Datenmengen hast (z.B. CSV-Imports mit 100.000 Zeilen), lohnt sich der Sprung auf 4 GB.

Welcher VPS für n8n? Unsere Empfehlungen

Für n8n brauchst du einen VPS mit KVM-Virtualisierung, mindestens 2 GB RAM und Ubuntu 22.04 oder Debian 12. Hier sind vier Anbieter, die wir für n8n empfehlen.

IONOS VPS: Einsteigerfreundlich mit deutschem Support

IONOS ist eine gute Wahl, wenn du nicht viel Linux-Erfahrung mitbringst. Das Control Panel ist übersichtlich, der Support ist auf Deutsch erreichbar, und die VPS-Pakete starten günstig. Die Server laufen in deutschen Rechenzentren (Frankfurt, Berlin, Karlsruhe). Für n8n eignet sich der VPS Linux M mit 2 GB RAM und 80 GB SSD. Mehr Details im IONOS Erfahrungen 2026 Test.

IONOS Logo

IONOS VPS Linux S+

Günstigstes Angebot

2.50

mtl.

2 vCPU
2 GB
80 GB
4.4 (21.8k)
Angebot →

Strato Linux V-Server: Deutsche Telekom-Tochter für KMU

Strato gehört zur Telekom-Gruppe und richtet sich an kleine und mittlere Unternehmen. Die Preise sind konkurrenzfähig, der Support ist telefonisch auf Deutsch erreichbar, und die Rechenzentren stehen in Berlin und Karlsruhe. Für n8n reicht der kleinste Linux V-Server. Strato bietet zudem eine einfache Serververwaltung im Kundencenter, was den Einstieg erleichtert. Mehr Details im Strato Erfahrungen 2026 Test.

Strato Logo

VC 1-1

Günstigstes Angebot

1.90

mtl.

1 vCPU
1 GB
10 GB
4.2 (10.1k)
Angebot →

Hetzner Cloud: Entwickler-Favorit mit bester Performance

Hetzner ist bei Entwicklern der beliebteste deutsche Anbieter. Die Cloud-Server nutzen AMD EPYC Prozessoren und NVMe SSDs, was sich bei datenbankintensiven n8n-Workflows bemerkbar macht. Die API ist hervorragend, stündliche Abrechnung möglich, und der CX22 mit 2 vCPU, 4 GB RAM und 40 GB NVMe bietet genug Reserven für viele n8n-Setups. Mehr Details im Hetzner Erfahrungen 2026 Test.

Hetzner Logo

CPX42

Günstigstes Angebot

30.33

mtl.

8 vCPU
16 GB
240 GB
3.3 (2.8k)
Angebot →

Contabo VPS: Maximale Ressourcen fürs Budget

Contabo liefert traditionell viele Ressourcen pro Euro. Das ist relevant, wenn du viele parallele Workflows oder speicherintensive Operationen planst. Weil die Contabo-Tarifdaten regelmäßig wechseln, solltest du die konkrete Ausstattung über die Angebotskarte oder die Vergleichsseite prüfen. Die Performance ist solide, liegt bei CPU-intensiven Aufgaben aber häufig hinter Hetzner. Mehr Details im Contabo Erfahrungen 2026 Test.

Contabo Logo

AMD Ryzen 12 Cores

Günstigstes Angebot

102.82

mtl.

12 vCPU
64 GB
1000 GB
4.5 (9.5k)
Angebot →

Kurzübersicht

AnbieterStärkeFür wen?
IONOSEinfaches Interface, deutscher SupportEinsteiger, die schnell starten wollen
StratoTelekom-Tochter, KMU-Fokus, Telefon-SupportUnternehmen mit Bedarf an deutschem Ansprechpartner
HetznerBeste Performance, NVMe, APIEntwickler und DevOps-Teams
ContaboMeiste RAM und Storage pro EuroBudget-Projekte mit vielen Workflows

Schritt 1: VPS einrichten

Nach dem Kauf deines VPS bekommst du eine IP-Adresse und (bei den meisten Anbietern) ein Root-Passwort per E-Mail. Verbinde dich per SSH:

ssh root@deine-server-ip

Dann aktualisierst du das System und installierst grundlegende Pakete:

apt update && apt upgrade -y
apt install -y curl wget git ufw

Richte als erstes einen eigenen Benutzer ein. Als Root zu arbeiten ist unsicher:

adduser n8nuser
usermod -aG sudo n8nuser

Wechsle danach auf den neuen Benutzer:

su - n8nuser

Schritt 2: Docker installieren

n8n läuft am besten in Docker. Die Installation funktioniert mit dem offiziellen Script:

curl -fsSL https://get.docker.com | sh

Damit du Docker ohne sudo nutzen kannst, füge deinen Benutzer zur Docker-Gruppe hinzu:

sudo usermod -aG docker $USER
newgrp docker

Prüfe, ob Docker und Docker Compose funktionieren:

docker --version
docker compose version

Schritt 3: n8n mit Docker Compose starten (Produktions-Setup)

Erstelle einen Ordner für die n8n-Installation:

mkdir -p ~/n8n && cd ~/n8n

Für den produktiven Betrieb empfehlen wir PostgreSQL als Datenbank. n8n nutzt standardmäßig SQLite, aber PostgreSQL ist stabiler bei vielen gleichzeitigen Workflows und einfacher zu sichern.

Erstelle eine .env-Datei mit deinen Einstellungen:

# .env
N8N_HOST=n8n.deine-domain.de
N8N_PORT=5678
N8N_PROTOCOL=https
WEBHOOK_URL=https://n8n.deine-domain.de/
N8N_ENCRYPTION_KEY=dein-geheimer-schluessel-hier
POSTGRES_USER=n8n
POSTGRES_PASSWORD=ein-sicheres-passwort
POSTGRES_DB=n8n

Der N8N_ENCRYPTION_KEY verschlüsselt die Credentials in deinen Workflows. Generiere ihn mit openssl rand -hex 32 und bewahre ihn sicher auf. Ohne diesen Key kannst du deine gespeicherten Zugangsdaten nicht wiederherstellen.

Erstelle jetzt die docker-compose.yml:

version: "3.8"
services:
  postgres:
    image: postgres:16
    restart: always
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
      interval: 10s
      timeout: 5s
      retries: 5

  n8n:
    image: docker.n8n.io/n8nio/n8n:stable
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=${N8N_HOST}
      - N8N_PORT=${N8N_PORT}
      - N8N_PROTOCOL=${N8N_PROTOCOL}
      - WEBHOOK_URL=${WEBHOOK_URL}
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_USER=${POSTGRES_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      postgres:
        condition: service_healthy

volumes:
  postgres_data:
  n8n_data:

Starte das Setup:

docker compose up -d

Prüfe, ob beide Container laufen:

docker compose ps

Du solltest zwei Container sehen, beide mit Status "running". n8n ist jetzt unter http://deine-server-ip:5678 erreichbar. Beim ersten Aufruf erstellst du deinen Admin-Account.

Schritt 4: Reverse Proxy mit Caddy

n8n sollte nicht direkt über Port 5678 erreichbar sein. Dieses Setup nutzt Caddy als Reverse Proxy. Die offizielle n8n-Dokumentation zeigt alternativ Traefik-Beispiele. Caddy ist für kleine Setups praktisch, weil er SSL-Zertifikate automatisch über Let's Encrypt bezieht und erneuert.

Installiere Caddy:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Bearbeite die Caddy-Konfiguration unter /etc/caddy/Caddyfile:

n8n.deine-domain.de {
    reverse_proxy localhost:5678 {
        flush_interval -1
    }
}

Die Option flush_interval -1 sorgt dafür, dass Server-Sent Events (z.B. für die Echtzeit-Anzeige von Workflow-Ausführungen) korrekt weitergeleitet werden.

Stelle sicher, dass dein DNS-A-Record auf die IP-Adresse deines Servers zeigt. Dann starte Caddy neu:

sudo systemctl reload caddy

Caddy bezieht automatisch ein SSL-Zertifikat. Nach wenigen Sekunden ist n8n unter https://n8n.deine-domain.de erreichbar.

Troubleshooting: Falls Caddy kein Zertifikat bekommt, prüfe ob Port 80 und 443 in der Firewall offen sind und ob der DNS-Eintrag korrekt auf deine Server-IP zeigt.

Sicherheit

Ein öffentlich erreichbarer Server braucht grundlegende Absicherung. Diese drei Maßnahmen sind das Minimum.

Firewall mit ufw

ufw (Uncomplicated Firewall) ist auf Ubuntu vorinstalliert und einfach zu konfigurieren:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

Damit sind nur SSH (Port 22), HTTP (Port 80) und HTTPS (Port 443) von außen erreichbar. Port 5678 ist bewusst nicht freigegeben, weil Caddy den Traffic bereits weiterleitet.

Fail2ban gegen Brute-Force

fail2ban sperrt IP-Adressen, die zu viele fehlgeschlagene Login-Versuche starten:

sudo apt install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Die Standardkonfiguration schützt SSH. Für zusätzliche Absicherung kannst du eigene Jails für Caddy-Logs einrichten.

System aktuell halten

Sicherheitsupdates solltest du regelmäßig einspielen. Am einfachsten mit automatischen Updates:

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Damit werden Sicherheitsupdates automatisch installiert. Für Docker-Images (n8n, PostgreSQL) musst du manuell aktualisieren (siehe nächster Abschnitt).

Backup und Updates

n8n-Daten sichern

Bei unserem Setup liegen die Daten in Docker Volumes. Ein Backup erstellst du so:

# n8n stoppen
cd ~/n8n
docker compose stop

# Volumes sichern
docker run --rm \
  -v n8n_n8n_data:/data \
  -v $(pwd)/backups:/backup \
  alpine tar czf /backup/n8n-data-$(date +%Y%m%d).tar.gz -C /data .

docker run --rm \
  -v n8n_postgres_data:/data \
  -v $(pwd)/backups:/backup \
  alpine tar czf /backup/postgres-data-$(date +%Y%m%d).tar.gz -C /data .

# n8n wieder starten
docker compose start

Alternativ kannst du die PostgreSQL-Datenbank im laufenden Betrieb sichern:

docker compose exec postgres pg_dump -U n8n n8n > backups/n8n-db-$(date +%Y%m%d).sql

Richte dir am besten einen Cronjob ein, der das Backup täglich ausführt und alte Backups nach 30 Tagen löscht.

n8n aktualisieren

Docker macht Updates einfach. Du ziehst das neue Image und startest den Container neu:

cd ~/n8n
docker compose pull
docker compose up -d

Prüfe nach dem Update, ob alles funktioniert:

docker compose logs -f n8n --tail 50

Die Daten bleiben in den Docker Volumes erhalten. Trotzdem empfiehlt es sich, vor einem Update ein Backup zu machen.

Tipp: Nutze für planbare Updates bewusst einen stabilen Image-Tag und lies vor größeren Versionssprüngen die Release Notes. Das Beispiel oben verwendet docker.n8n.io/n8nio/n8n:stable.

Fazit

Mit diesem Setup hast du eine vollwertige n8n-Installation, die:

  • PostgreSQL als stabiles Datenbank-Backend nutzt
  • Automatisch SSL-Zertifikate erneuert
  • Bei Neustarts automatisch hochfährt
  • Per Firewall und fail2ban abgesichert ist
  • Deine Daten persistent und sicherbar speichert

Gesamtkosten: Die Serverkosten hängen vom gewählten VPS ab. Die Angebotskarten zeigen dir die tagesaktuellen Bruttopreise inklusive MwSt. Dafür bekommst du volle Datenkontrolle und einen Automatisierungsserver, den du nach Belieben erweitern kannst.


Häufig gestellte Fragen

Passenden Server finden

Nutze unseren Rechner um den optimalen VPS für deine n8n-Installation zu finden.

Zum n8n Rechner

Passender VPS-Rechner

n8n Self-Hosting: Die besten VPS 2026

Finde den perfekten Server für deine n8n Automation

Zum VPS-Rechner

Verwandte Artikel