RackDiff
Alle Guides

n8n selbst hosten: Docker Compose, PostgreSQL und Caddy auf dem VPS

n8n auf eigenem VPS installieren: Docker Compose mit PostgreSQL, Caddy als Reverse Proxy mit HTTPS, Firewall, Backup und Updates laut n8n-Doku.

Dirk Hesse
24. November 2025
13 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 VPS installierst, mit PostgreSQL als Datenbank betreibst und per Reverse Proxy mit HTTPS erreichbar machst. Aktuelle Serverpreise zeigen der n8n-Rechner und der VPS-Vergleich.

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. Abgerechnet wird dort nach Ausführungen; eine Ausführung ist ein vollständiger Lauf eines Workflows (laut n8n-Website, Stand: 08.11.2026). Prüfe vor deiner Entscheidung die aktuelle Preisseite, weil Plan-Namen und Preise sich ändern können.

Preise für VPS mit 2 bis 4 GB RAM zeigen der n8n-Rechner und der VPS-Vergleich. Auf dem eigenen Server begrenzen CPU, RAM und Datenbank, wie viel läuft. Du bestimmst selbst, wo deine Daten liegen.

Ohne Lizenzschlüssel läuft n8n als Community Edition ohne Lizenzgebühr; Business- und Enterprise-Funktionen brauchen einen kostenpflichtigen Lizenzschlüssel (laut n8n-Doku, Stand: 08.11.2026). n8n steht unter der Sustainable Use License, die die Nutzung auf eigene interne Geschäftszwecke sowie nicht kommerzielle oder private Nutzung beschränkt (laut n8n-Repo, Stand: 08.11.2026).

Kostenvergleich: Self-Hosting vs. n8n Cloud

n8n Cloudn8n Self-Hosted
Monatliche Kostenn8n-Preisseite (Stand: 08.11.2026)Serverpreise im n8n-Rechner
Ausführungenplanabhängig (laut n8n-Website, Stand: 08.11.2026)durch deine Serverressourcen begrenzt
DatenstandortEU, Server in Frankfurt (laut n8n-Website, Stand: 08.11.2026)du 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. Auf deinem eigenen Server liegen die Daten dort, wo du den Server bestellt hast. Wer Daten anderer verarbeitet, bleibt für die Einhaltung der DSGVO verantwortlich; in der Regel gehört ein Vertrag zur Auftragsverarbeitung mit dem Hoster dazu.

Ausführungen auf dem eigenen Server

Bei n8n Cloud zählt jeder vollständige Workflow-Lauf als Ausführung (laut n8n-Website, Stand: 08.11.2026). Ein Schedule Trigger alle 5 Minuten startet in 30 Tagen rechnerisch 8.640 Läufe. Auf dem eigenen Server begrenzen CPU, RAM und Datenbank die Zahl der Läufe.

Die Hardware-Anforderungen

Bevor du loslegst, solltest du wissen, welche Hardware du brauchst. Die Tabelle ist eine Orientierung von RackDiff, keine Herstellerangabe; die Werte orientieren sich am n8n-Rechner:

NutzungRAMCPUStorage
Einstieg2 GB1 vCPU20 GB
mehr als 2.000 Ausführungen im Monat oder komplexe Workflows2–4 GB2 vCPU20 GB
mit eigener PostgreSQL-Datenbankzusätzlich 1 GB–zusätzlich 10 GB

Eine allgemeine Mindestgröße nennt n8n nicht. Für OEM-Installationen gibt n8n als Richtwert 320 MB bis 2 GB Arbeitsspeicher an, abgeleitet aus n8n Cloud (laut n8n-Doku, Stand: 08.11.2026). Mehr Speicher brauchen große JSON- und Binärdaten, viele Nodes, Code-Nodes, manuelle Läufe und parallele Workflows; große Datenmengen verarbeitest du besser in kleineren Blöcken (laut n8n-Doku, Stand: 08.11.2026).

Welcher VPS für n8n? Vier Anbieter im Überblick

Du brauchst einen VPS, auf dem Docker läuft (z. B. mit KVM-Virtualisierung), und ein von Docker unterstütztes System, etwa Ubuntu 24.04 oder 22.04 LTS (laut Docker-Doku, Stand: 08.11.2026). Die folgenden vier Anbieter aus dem RackDiff-Katalog stehen alphabetisch; Preise zeigt der n8n-Rechner.

Contabo Cloud VPS

Contabo nutzt KVM-Virtualisierung; die Cloud-VPS-Tarife beginnen bei 4 vCPU und 8 GB RAM, Standorte gibt es in Europa, Großbritannien, Amerika, Asien und Australien (laut Contabo-Website, Stand: 08.11.2026). Mehr zu Contabo.

Hetzner Cloud

Hetzner Cloud bietet eine REST-API und ein CLI sowie Integrationen für Ansible, Terraform und Kubernetes (laut Hetzner-Website, Stand: 08.11.2026). Die n8n-Anleitung für Hetzner schlägt den Servertyp CPX11 vor, mit dem n8n Assistant mindestens 4 GB RAM und 2 vCPU (laut n8n-Doku, Stand: 08.11.2026). Mehr zu Hetzner.

IONOS VPS

IONOS bietet Support per Telefon, Chat oder E-Mail rund um die Uhr; den Serverstandort wählst du bei der Bestellung (EU, USA, Großbritannien). Der Tarif VPS S+ hat 1 vCore, 2 GB RAM und 60 GB NVMe (laut IONOS-Website, Stand: 08.11.2026). Mehr zu IONOS.

Strato Linux V-Server

STRATO gehört zur IONOS Group SE (laut Strato-Website, Stand: 08.11.2026). Eine 24/7-Hotline ist kostenpflichtig zubuchbar; Neuinstallation des Betriebssystems, eine vorgelagerte Firewall, VNC-Konsole und Rescue-System stehen im Kunden-Login; Strato nennt zwei Rechenzentren in Europa und Datenhaltung nur in der EU (laut Strato-Website, Stand: 08.11.2026). Mehr zu Strato.

Direktvergleiche

Zwei der Anbieter im direkten Vergleich: Contabo vs. Hetzner und IONOS vs. Strato.

Schritt 1: VPS einrichten

Nach der Bestellung bekommst du eine IP-Adresse und je nach Anbieter ein Root-Passwort oder Zugang per hinterlegtem SSH-Schlüssel. 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

Für den Produktivbetrieb mit Datenbank nennt n8n Docker Compose (laut n8n-Doku, Stand: 08.11.2026). Installiere Docker Engine über das apt-Repository; das Convenience-Script empfiehlt Docker nicht für Produktivumgebungen (laut Docker-Doku, Stand: 08.11.2026).

Wenn du Docker ohne sudo nutzen willst, fügst du deinen Benutzer zur Gruppe docker hinzu. Die Gruppe gewährt Rechte auf Root-Niveau (laut Docker-Doku, Stand: 08.11.2026):

sudo usermod -aG docker $USER
newgrp docker

Prüfe, ob Docker und Docker Compose funktionieren:

docker --version
docker compose version

Ohne Docker lässt sich n8n auch mit npm und Node.js 20.19 bis 24.x installieren; die npm-Installation ist ab n8n 3.0 als veraltet markiert (laut n8n-Doku, Stand: 08.11.2026).

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

Standardmäßig nutzt n8n SQLite; für eine Produktivinstanz empfiehlt n8n PostgreSQL (laut n8n-Doku, Stand: 08.11.2026). Unterstützt sind PostgreSQL 17 und 18, Version 16 zur Kompatibilität (laut n8n-Doku, Stand: 08.11.2026).

Als Grundlage dient das offizielle Beispiel mit PostgreSQL aus dem Repository n8n-hosting (laut n8n-Repo, Stand: 08.11.2026):

git clone https://github.com/n8n-io/n8n-hosting.git
cp -r n8n-hosting/docker-compose/withPostgres ~/n8n && cd ~/n8n

Ändere in der .env die vorgegebenen Passwörter. Dann passt du drei Dinge an:

  1. Port nur lokal: Ports, die Docker veröffentlicht, umgehen ufw (laut Docker-Doku, Stand: 08.11.2026). Ersetze beim Dienst n8n die Port-Zeile 5678:5678 durch 127.0.0.1:5678:5678, wie im Compose-Beispiel der n8n-Doku (laut n8n-Doku, Stand: 08.11.2026).
  2. Domain und Webhooks: N8N_HOST, N8N_PROTOCOL=https und N8N_WEBHOOK_URL setzen. N8N_WEBHOOK_URL ist die Basis-URL für Webhooks hinter einem Reverse Proxy; WEBHOOK_URL ist seit 2.35.0 veraltet (laut n8n-Doku, Stand: 08.11.2026).
  3. Eigener Schlüssel: N8N_ENCRYPTION_KEY setzen. Er verschlüsselt die Zugangsdaten vor dem Speichern (laut n8n-Doku, Stand: 08.11.2026).

Beim Dienst n8n sieht das so aus (Port-Zeile ersetzt, environment-Einträge ergänzt):

    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - N8N_HOST=n8n.deine-domain.de
      - N8N_PROTOCOL=https
      - N8N_WEBHOOK_URL=https://n8n.deine-domain.de/
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
      - GENERIC_TIMEZONE=Europe/Berlin

Den Schlüssel erzeugst du mit openssl rand -hex 32 und trägst ihn als N8N_ENCRYPTION_KEY=… in die .env ein. Bewahre ihn sicher auf: Ohne diesen Schlüssel lassen sich gesicherte Zugangsdaten nicht entschlüsseln (laut n8n-Doku, Stand: 08.11.2026).

Starte das Setup und prüfe, ob beide Container laufen:

docker compose up -d
docker compose ps

Erreichbar ist n8n nach Schritt 4 unter https://n8n.deine-domain.de. Beim ersten Aufruf legst du das Owner-Konto an (laut n8n-Doku, Stand: 08.11.2026).

Schritt 4: Reverse Proxy mit Caddy

n8n sollte nicht direkt über Port 5678 erreichbar sein. Die n8n-Doku zeigt Traefik im Compose-Beispiel und Caddy in der Hetzner-Anleitung (laut n8n-Doku, Stand: 08.11.2026). Dieses Setup nutzt Caddy; Caddy holt Zertifikate standardmäßig bei Let's Encrypt oder ZeroSSL und erneuert sie (laut Caddy-Doku, Stand: 08.11.2026).

Installiere Caddy über das Paket-Repository für Debian und Ubuntu (laut Caddy-Doku, Stand: 08.11.2026).

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

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

flush_interval -1 stammt aus dem Caddy-Beispiel der n8n-Doku und schaltet die Pufferung der Antworten ab (laut Caddy-Doku, Stand: 08.11.2026).

Stelle sicher, dass dein DNS-A-Record auf die IP-Adresse deines Servers zeigt. Dann lädst du die Konfiguration neu:

sudo systemctl reload caddy

Troubleshooting: Falls Caddy kein Zertifikat bekommt, prüfe, ob Port 80 und 443 von außen erreichbar sind und ob der DNS-Eintrag auf deine Server-IP zeigt (laut Caddy-Doku, Stand: 08.11.2026).

Sicherheit

Ein öffentlich erreichbarer Server braucht grundlegende Absicherung. Hier drei grundlegende Maßnahmen auf Systemebene; n8n nennt weitere, etwa Sicherheitsaudit, Zwei-Faktor-Anmeldung und Einschränkung der Public API (laut n8n-Doku, Stand: 08.11.2026).

Firewall mit ufw

ufw ist das Standardwerkzeug für die Firewall-Konfiguration unter Ubuntu und anfangs deaktiviert (laut Ubuntu-Server-Doku, Stand: 08.11.2026). Installiert hast du es in Schritt 1:

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 SSH (Port 22), HTTP (Port 80) und HTTPS (Port 443) von außen erreichbar. Port 5678 ist nur lokal gebunden (127.0.0.1); das ist nötig, weil Ports, die Docker veröffentlicht, ufw umgehen (laut Docker-Doku, Stand: 08.11.2026).

Fail2ban gegen Brute-Force

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

sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status

Der letzte Befehl zeigt, welche Jails aktiv sind. Anmeldungen an n8n selbst deckt fail2ban ohne eigene Jail nicht ab; dafür gibt es die Zwei-Faktor-Anmeldung in n8n.

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. Die Docker-Images (n8n, PostgreSQL) aktualisierst du selbst (siehe nächster Abschnitt).

Backup und Updates

n8n-Daten sichern

Zu einem vollständigen Backup gehören der Ordner .n8n und die externe Datenbank, gesichert mit deren eigenen Werkzeugen (laut n8n-Doku, Stand: 08.11.2026). Sichere die .env mit dem N8N_ENCRYPTION_KEY mit.

cd ~/n8n
mkdir -p backups

# Datenbank im laufenden Betrieb (Benutzer und Datenbank aus deiner .env)
docker compose exec -T postgres pg_dump -U <POSTGRES_USER> <POSTGRES_DB> > backups/n8n-db-$(date +%Y%m%d).sql

# n8n-Daten (Volume-Name aus deiner Compose-Datei, im Ordner ~/n8n z. B. n8n_n8n_storage)
docker run --rm \
  -v n8n_n8n_storage:/data \
  -v $(pwd)/backups:/backup \
  alpine tar czf /backup/n8n-data-$(date +%Y%m%d).tar.gz -C /data .

cp .env backups/env-$(date +%Y%m%d)

-T ist nötig, weil docker compose exec sonst ein Terminal anlegt (laut Docker-Doku, Stand: 08.11.2026). Richte einen Cronjob ein, der das Backup täglich ausführt und Backups nach 30 Tagen löscht.

Einzelne Workflows lädst du im Workflow-Menü als JSON-Datei herunter. Die Datei enthält nur Namen und IDs der Zugangsdaten, keine Geheimnisse (laut n8n-Doku, Stand: 08.11.2026).

n8n aktualisieren

n8n veröffentlicht fast jede Woche eine neue Minor-Version (laut n8n-Doku, Stand: 08.11.2026). Aktualisiere mindestens monatlich und prüfe vorher die Release Notes auf Breaking Changes (laut n8n-Doku, Stand: 08.11.2026).

Der Ablauf: Backup anlegen, die n8n-Version in der Compose-Datei bzw. .env anheben, dann:

cd ~/n8n
docker compose pull
docker compose down
docker compose up -d
docker compose logs -f n8n --tail 50

Die Befehlsfolge entspricht der Docker-Anleitung der n8n-Doku (laut n8n-Doku, Stand: 08.11.2026). Die Daten bleiben in den Docker-Volumes erhalten.

Fazit

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

  • PostgreSQL als Datenbank nutzt
  • Zertifikate über Caddy automatisch erneuert
  • bei Neustarts automatisch hochfährt
  • per Firewall, lokal gebundenem Port und fail2ban abgesichert ist
  • deine Daten in Volumes speichert, die du sichern kannst

Die Serverkosten hängen vom gewählten VPS ab; aktuelle Preise zeigen der n8n-Rechner und der VPS-Vergleich.


Häufig gestellte Fragen

Wie viel RAM braucht n8n?
n8n nennt keine allgemeine Mindestgröße. Als Orientierung von RackDiff reichen 2 GB RAM für den Einstieg, mit PostgreSQL mehr. Große Datenmengen, Code-Nodes und parallele Workflows brauchen laut n8n mehr Speicher. Der n8n-Rechner schätzt deinen Bedarf.
Kann ich n8n auch ohne Docker installieren?
Ja, mit npm und Node.js 20.19 bis 24.x; die npm-Installation ist ab n8n 3.0 als veraltet markiert. Für Produktivinstallationen mit Datenbank nennt n8n Docker Compose.
Fallen für n8n Self-Hosting Lizenzgebühren an?
Ohne Lizenzschlüssel läuft n8n als Community Edition ohne Lizenzgebühr; Business- und Enterprise-Funktionen brauchen einen kostenpflichtigen Lizenzschlüssel. n8n steht unter der Sustainable Use License, die die Nutzung auf eigene interne Geschäftszwecke sowie nicht kommerzielle oder private Nutzung beschränkt. Kosten entstehen für den Server.
Welcher VPS-Anbieter passt zu n8n?
Das hängt von Standort, Support und benötigtem RAM ab. Der n8n-Rechner schätzt den Bedarf und zeigt passende Server; wie die Liste gewichtet ist, steht auf der Methodik-Seite.
Brauche ich eine Domain für n8n?
Für Webhooks und HTTPS brauchst du eine Domain oder Subdomain. Ohne Domain funktioniert n8n zwar lokal, aber Webhooks von externen Diensten (z. B. Stripe, GitHub) können deinen Server nicht erreichen.
Kann ich n8n und andere Anwendungen auf demselben VPS betreiben?
Ja, wenn genug RAM für alle Container bleibt, z. B. für Uptime Kuma, Vaultwarden oder eine kleine Website; den Bedarf rechnest du je Anwendung zusammen.
Wie sichere ich n8n gegen unbefugten Zugriff?
n8n hat eine eingebaute Benutzerverwaltung mit Owner-Konto und unterstützt Zwei-Faktor-Anmeldung. Zusätzlich solltest du eine Firewall (ufw) einrichten, den n8n-Port nur lokal binden, fail2ban installieren und n8n nur über HTTPS erreichbar machen. Nutze SSH-Schlüssel statt Passwörter.
Wie migriere ich von n8n Cloud zum Self-Hosting?
Workflows lädst du im Workflow-Menü als JSON-Datei herunter und importierst sie in der eigenen Instanz. Die Datei enthält nur Namen und IDs der Zugangsdaten, keine Geheimnisse; Zugangsdaten legst du neu an.

Passenden Server finden

Der Rechner schätzt den Bedarf deiner n8n-Installation und zeigt passende Server.

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