Ehrlich-Hinweis (Affiliate-Transparenz): An n8n self-hosted verdienen wir nichts — kein Affiliate-Programm, keine Provision, keine versteckten Links. Wir empfehlen es trotzdem, weil es DSGVO-technisch und preislich kaum zu schlagen ist: Deine Daten bleiben auf deinem Server in der EU, und ein kleiner VPS kostet weniger als ein Netflix-Abo. Die einzige Stelle, an der wir potenziell mitverdienen würden, ist die bequeme Cloud-Alternative ganz unten — die ist klar mit (Affiliate) gekennzeichnet. Du entscheidest.
n8n ist das Open-Source-Schwergewicht unter den Automatisierungs-Tools — die ehrliche Alternative zu Zapier und Make, bei der du deine Workflows selbst kontrollierst. Der größte Vorteil: Du kannst es auf deinem eigenen Server laufen lassen. Kein monatliches Task-Limit, keine Daten, die durch fremde US-Clouds wandern, volle Kontrolle.
Diese Anleitung führt dich von „leerer VPS" bis „n8n läuft sicher über HTTPS" — mit Docker, Docker-Compose und Caddy. Wir reden hier nicht um den heißen Brei herum: Du brauchst dafür ein bisschen Server-Grundwissen. Wenn du noch nie eine SSH-Verbindung aufgebaut hast, ist das machbar, aber rechne mit Lesen und gelegentlichem Fluchen.
Warum n8n selbst hosten?
Drei nüchterne Gründe:
- Kosten. Self-hosted zahlst du nur den Server. Ein kleiner EU-VPS reicht für die meisten privaten und kleingewerblichen Workflows locker aus — Stand Juni 2026, bitte prüfen liegen die Einstiegspreise im einstelligen Euro-Bereich pro Monat. n8n selbst ist in der Community Edition kostenlos. Im Vergleich zu nutzungsbasierten Cloud-Tools, die pro Task abrechnen, sparst du bei vielen Automationen massiv.
- DSGVO & Datenschutz. Deine Daten liegen physisch auf deinem Server, idealerweise in einem EU-Rechenzentrum. Keine Drittland-Übermittlung, kein „Wir haben da mal eben deine Kundendaten durch eine US-API geschickt". Du bist Verantwortlicher im Sinne der DSGVO — das ist Pflicht und Vorteil zugleich.
- Kontrolle. Eigene Node-Pakete, eigene Umgebungsvariablen, kein Vendor-Lock-in. Was du baust, gehört dir.
Ehrliche Voraussetzung: Self-Hosting heißt, du bist der Admin. Updates, Backups, Sicherheit — das liegt jetzt bei dir. Wenn dir das zu viel ist, lies direkt den Abschnitt „Wann sich Self-Hosting nicht lohnt". Keine Schande, ehrlich.
Wie n8n grundsätzlich gegen die Konkurrenz dasteht, haben wir hier verglichen: n8n vs. Zapier und Make.com vs. n8n.
Was du brauchst
- Einen VPS in der EU. Wir nehmen in dieser Anleitung Hetzner Cloud (deutsches Rechenzentrum, DSGVO-freundlich). 2 vCPU und 4 GB RAM sind ein solider Startpunkt — Stand Juni 2026, bitte prüfen entspricht das z. B. dem Tarif CX22. Für reines Ausprobieren reichen 2 GB, für ernsthaften Produktivbetrieb plane lieber 4 GB oder mehr ein.
- Eine Domain oder Subdomain. Etwas wie
n8n.deinedomain.de. Du musst einen A-Record auf die IP deines Servers setzen können. - Ungefähr eine Stunde Zeit. Beim ersten Mal vielleicht etwas mehr. Kaffee hilft.
- Einen SSH-Client. Auf Mac/Linux ist der im Terminal dabei, auf Windows nutzt du PowerShell oder das eingebaute OpenSSH.
[Screenshot: Hetzner Cloud Console mit Übersicht der Server-Tarife]
Schritt 1: VPS bestellen
Stand Juni 2026, bitte prüfen. Empfohlene Methode für n8n im Self-Hosting ist Docker bzw. Docker-Compose — das ist heute der De-facto-Standard und macht spätere Updates schmerzfrei.
- Account bei Hetzner Cloud anlegen, neues Projekt erstellen.
- Standort: ein EU-Rechenzentrum wählen (z. B. Nürnberg, Falkenstein oder Helsinki). Für DSGVO-Sauberkeit empfehlen wir Deutschland.
- Image: Ubuntu (aktuelle LTS-Version, z. B. 24.04).
- Typ: ein Tarif mit ~2 vCPU / 4 GB RAM. Stand Juni 2026, bitte prüfen ist das der CX22-Tarif, preislich im niedrigen einstelligen Euro-Bereich pro Monat. Exakte Zahlen ändern sich — schau im Hetzner-Preisrechner nach.
- SSH-Key: Lade hier direkt deinen öffentlichen SSH-Key hoch (siehe Schritt 2). Mach das jetzt — dann kannst du dir das Root-Passwort-Theater sparen.
- Server erstellen, IP-Adresse notieren.
[Screenshot: Hetzner Server-Konfiguration mit ausgewähltem EU-Standort und CX22-Tarif]
Schritt 2: Server absichern
Das Wichtigste zuerst — ein frisch aufgesetzter Server, der offen im Netz hängt, wird innerhalb von Minuten von Bots abgeklopft. Sicherheit ist keine Kür.
SSH-Key statt Passwort
Falls du noch keinen SSH-Key hast, erzeuge ihn lokal:
ssh-keygen -t ed25519 -C "deine@email.de"
Den öffentlichen Schlüssel (~/.ssh/id_ed25519.pub) hinterlegst du bei Hetzner. Dann einloggen:
ssh root@DEINE_SERVER_IP
System aktualisieren & Nutzer anlegen
apt update && apt upgrade -y
adduser deinname
usermod -aG sudo deinname
Ab jetzt arbeitest du mit deinname statt root. Kopiere deinen SSH-Key in den neuen Account und deaktiviere danach den Root-Login sowie Passwort-Logins in /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
Danach: sudo systemctl restart ssh
Achtung: Teste den Login mit dem neuen Nutzer in einem zweiten Terminal, bevor du die erste Session schließt. Sonst sperrst du dich aus.
Firewall
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Nur SSH, HTTP und HTTPS sind offen. Port 5678 (n8n) bleibt zu — der läuft gleich nur intern.
fail2ban (kurz)
fail2ban sperrt IPs, die zu oft falsche Logins versuchen:
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
Die Standardkonfiguration schützt bereits SSH. Mehr brauchst du fürs Erste nicht.
[Screenshot: Terminal mit erfolgreichem ufw status-Output]
Schritt 3: Docker & Docker-Compose installieren
Offizielle, saubere Methode:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
Danach einmal aus- und wieder einloggen, damit die Gruppenrechte greifen. Docker Compose ist in modernen Docker-Versionen als Plugin dabei. Prüfen:
docker --version
docker compose version
Wenn beide eine Version ausgeben, bist du startklar.
Schritt 4: n8n via Docker-Compose starten
Für den Produktivbetrieb empfehlen wir PostgreSQL statt der Standard-SQLite-Datenbank — Stand Juni 2026, bitte prüfen ist das die gängige Empfehlung für bessere Performance und einfachere Backups.
Lege ein Projektverzeichnis an:
mkdir ~/n8n && cd ~/n8n
Erzeuge einen Encryption-Key und merke ihn dir gut:
openssl rand -hex 32
Kritisch: Der
N8N_ENCRYPTION_KEYverschlüsselt alle gespeicherten Zugangsdaten. Verlierst du ihn, sind sämtliche Credentials unwiederbringlich futsch — es gibt keinen Master-Key, keinen Reset, keinen Support, der das rettet. Sichere ihn in deinem Passwortmanager. Sofort.
Jetzt die docker-compose.yml (Platzhalter wie DEIN_KEY, n8n.deinedomain.de und die Passwörter ersetzen):
services:
postgres:
image: postgres:16
restart: unless-stopped
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=EIN_STARKES_PASSWORT
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
n8n:
image: docker.n8n.io/n8nio/n8n:latest
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=EIN_STARKES_PASSWORT
- N8N_ENCRYPTION_KEY=DEIN_KEY
- N8N_HOST=n8n.deinedomain.de
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.deinedomain.de/
- GENERIC_TIMEZONE=Europe/Berlin
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
volumes:
postgres_data:
n8n_data:
Beachte: n8n lauscht hier auf 127.0.0.1:5678 — also nur lokal. Von außen erreichbar wird es erst über den Reverse Proxy in Schritt 5. So gehört es sich.
Starten:
docker compose up -d
Logs prüfen:
docker compose logs -f n8n
[Screenshot: Terminal mit laufenden n8n- und postgres-Containern via docker compose ps]
Schritt 5: HTTPS & Domain via Reverse Proxy (Caddy)
HTTPS ist Pflicht, nicht optional. n8n verwaltet Zugangsdaten zu deinen ganzen Diensten — das unverschlüsselt über HTTP laufen zu lassen wäre grob fahrlässig.
Caddy ist der einfachste Weg: Es holt und erneuert Let's-Encrypt-Zertifikate vollautomatisch, und die Konfiguration ist quasi zwei Zeilen lang. Stand Juni 2026, bitte prüfen ist das die unkomplizierteste Variante für Einsteiger.
Vorbereitung: Setze einen A-Record für n8n.deinedomain.de auf die IP deines Servers. Warte, bis die DNS-Auflösung greift (kann ein paar Minuten dauern).
Ergänze deine docker-compose.yml um einen Caddy-Service:
caddy:
image: caddy:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
depends_on:
- n8n
Und ergänze unten die Volumes:
caddy_data:
caddy_config:
Lege im selben Ordner ein Caddyfile an:
n8n.deinedomain.de {
reverse_proxy n8n:5678
}
Das war's. Caddy übernimmt Ports 80/443, beantwortet die ACME-Challenge und reicht alles intern an n8n weiter. Neu starten:
docker compose up -d
Beim ersten Aufruf von https://n8n.deinedomain.de holt Caddy automatisch ein gültiges Zertifikat. Grünes Schloss, fertig.
Alternative Traefik: Wer mehrere Dienste auf einem Server betreibt oder dynamisches Routing braucht, ist mit Traefik besser bedient — flexibler, aber deutlich steilere Lernkurve. Für einen einzelnen n8n-Dienst ist Caddy schlicht angenehmer. Bleib bei Caddy, wenn du nicht weißt, dass du Traefik brauchst.
[Screenshot: Browser mit aufgerufener n8n-URL, grünem Schloss und gültigem HTTPS-Zertifikat]
Schritt 6: Ersteinrichtung im Browser
Ruf https://n8n.deinedomain.de auf. Beim ersten Start legst du den Owner-Account an:
- E-Mail und ein starkes, einzigartiges Passwort vergeben. Nimm den Passwortmanager — das ist der Generalschlüssel zu allem.
- Optionalen Lizenz-Key überspringen (Community Edition reicht).
- Fertig — du landest im Workflow-Editor.
[Screenshot: n8n Owner-Account-Setup-Maske im Browser]
Lege jetzt direkt einen ersten Test-Workflow an (z. B. einen manuellen Trigger plus „No-Op"-Node) und führe ihn aus, um zu sehen, dass alles läuft. Wie das Bauen genau geht, zeigen wir am Make-Beispiel in unserer Workflow-Anleitung — das Prinzip ist bei n8n dasselbe.
Schritt 7: Backups einrichten
Self-Hosting ohne Backup ist eine Zeitbombe. Drei Dinge musst du sichern — Stand Juni 2026, bitte prüfen:
- Die PostgreSQL-Datenbank (Workflows, Credentials, Execution-Logs).
- Das n8n-Datenverzeichnis (
/home/node/.n8nim Container — Konfiguration, ggf. eigene Nodes). - Den Encryption-Key (steht in deiner Compose-Datei — gehört zusätzlich in den Passwortmanager).
Datenbank-Dump
pg_dump erstellt einen konsistenten Snapshot, während n8n weiterläuft:
docker compose exec -T postgres pg_dump -U n8n n8n > ~/n8n-backups/db-$(date +%F).sql
Datenvolume sichern
docker run --rm -v n8n_n8n_data:/data -v ~/n8n-backups:/backup \
alpine tar czf /backup/n8n-data-$(date +%F).tar.gz -C /data .
(Der Volume-Name ist meist <ordnername>_n8n_data — prüfe mit docker volume ls.)
Automatisieren per Cron
Pack beide Befehle in ein Skript backup.sh, mach es ausführbar und richte einen täglichen Cronjob ein:
crontab -e
0 3 * * * /home/deinname/n8n/backup.sh
Damit läuft das Backup jede Nacht um 3 Uhr. Wichtig: Kopiere die Backups regelmäßig weg vom Server (z. B. in einen verschlüsselten Object-Storage oder lokal). Ein Backup, das mit dem Server stirbt, ist kein Backup.
Updates einspielen
Dank Docker ist das angenehm kurz. Im Projektverzeichnis:
docker compose pull
docker compose up -d
Damit ziehst du das neueste Image und startest die Container neu — deine Daten in den Volumes bleiben erhalten. Tipp: Mach vorher ein Backup, und überleg dir, ob du im Compose-File statt latest eine feste Versionsnummer pinnen willst. Dann updatest du bewusst und nicht versehentlich auf einen Breaking Change. Stand Juni 2026, bitte prüfen — bei größeren Versionssprüngen lohnt ein Blick ins n8n-Changelog.
Wann sich Self-Hosting nicht lohnt
Ehrlich bleibt ehrlich: Self-Hosting ist nicht für jeden. Lass es lieber, wenn …
- … du keine Lust auf Server-Wartung, Updates und Backup-Routinen hast.
- … ein Ausfall deiner Automationen geschäftskritisch wäre und du keine Zeit fürs Troubleshooting um 23 Uhr hast.
- … du SSH, DNS und Docker eher als Stresswörter empfindest.
In diesen Fällen ist die gehostete Variante n8n Cloud die ehrlichere Wahl — inklusive EU-Region für DSGVO-Konformität, ohne dass du den Server selbst betreibst. Sie kostet mehr als ein VPS, nimmt dir aber die komplette Infrastruktur ab. Welche DSGVO-konformen Optionen es sonst noch gibt, findest du in unserem Überblick: Zapier-Alternative mit DSGVO.
FAQ
Wie viel kostet n8n self-hosted im Monat? Nur den Server. Stand Juni 2026, bitte prüfen startet ein passender EU-VPS (z. B. Hetzner CX22 mit 2 vCPU / 4 GB RAM) im niedrigen einstelligen Euro-Bereich pro Monat. Die n8n Community Edition selbst ist kostenlos. Exakte Preise bitte beim Anbieter prüfen.
Brauche ich zwingend PostgreSQL, oder reicht SQLite?
Für reines Ausprobieren reicht die Standard-SQLite. Für Produktivbetrieb empfehlen wir PostgreSQL — Stand Juni 2026, bitte prüfen ist das die gängige Empfehlung wegen besserer Performance bei parallelen Zugriffen und einfacheren, konsistenten Backups via pg_dump.
Ist Self-Hosting DSGVO-konform? Es kann es sein — wenn dein Server in der EU steht und du die üblichen Pflichten erfüllst (Verschlüsselung, Zugriffskontrolle, Backups, Verarbeitungsverzeichnis). Wichtig: Mit Self-Hosting bist du der Verantwortliche im Sinne der DSGVO. Diese Anleitung ist keine Rechtsberatung — im Zweifel mit einem Datenschutzbeauftragten klären.
Was passiert, wenn ich meinen Encryption-Key verliere? Dann sind alle in n8n gespeicherten Zugangsdaten dauerhaft nicht mehr entschlüsselbar. Es gibt keinen Reset und keine Wiederherstellung. Deshalb: Key sofort in den Passwortmanager und in dein Backup.
Caddy oder Traefik — was soll ich nehmen? Für einen einzelnen n8n-Dienst nimm Caddy: minimaler Aufwand, automatisches HTTPS, zweizeilige Konfiguration. Traefik lohnt sich erst, wenn du mehrere Dienste mit dynamischem Routing auf demselben Server betreibst — dafür mit deutlich steilerer Lernkurve.
Zuletzt geprüft: Juni 2026.