n8n per Docker installieren und sicher starten¶
Veröffentlicht am 22. August 2026 · Geschätzte Lesezeit: 4 Minuten
n8n verbindet Dienste zu automatischen Abläufen: Ein Auslöser startet einen Workflow, der Daten verarbeitet und weitere Aktionen ausführt. In dieser Anleitung läuft n8n mit dauerhaftem Speicher im Heimnetz. Plane etwa 20 Minuten für Installation und ersten Test ein.
Voraussetzungen
- Ein Linux-Server mit Docker und Docker Compose
- Ein Benutzer mit Berechtigung für Docker
- Der Port 5678 ist im Heimnetz frei
- OpenSSL zum Erzeugen eines zufälligen Schlüssels
1. Arbeitsordner anlegen¶
Führe den Befehl auf dem Docker-Server aus. Er legt den Projektordner an und wechselt hinein:
2. Verschlüsselungsschlüssel erzeugen¶
n8n verschlüsselt gespeicherte Zugangsdaten. Dieser Befehl erzeugt den Schlüssel und schreibt
ihn in die Datei .env:
Nur dein Benutzer soll die Datei lesen dürfen:
Schlüssel mit sichern
Ohne N8N_ENCRYPTION_KEY lassen sich gesicherte Zugangsdaten später nicht mehr
entschlüsseln. Zeige die Datei nicht im Chat und lege sie nicht in ein öffentliches
Git-Repository.
3. Compose-Datei anlegen¶
Lege im Ordner ~/docker/n8n eine Datei compose.yaml mit diesem Inhalt an:
services:
n8n:
image: docker.n8n.io/n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
TZ: Europe/Berlin
GENERIC_TIMEZONE: Europe/Berlin
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
N8N_RUNNERS_ENABLED: "true"
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
volumes:
- n8n-data:/home/node/.n8n
volumes:
n8n-data:
name: n8n-data
Das Volume n8n-data hält Benutzer, Workflows und Einstellungen über Neustarts hinweg.
N8N_ENCRYPTION_KEY wird aus der geschützten .env-Datei gelesen.
4. Konfiguration prüfen und starten¶
Prüfe im Projektordner zuerst, ob Docker Compose die Datei fehlerfrei lesen kann:
Starte danach n8n im Hintergrund:
Kontrolliere den Zustand des Containers:
Falls n8n nicht startet, zeigen die letzten Protokollzeilen meist die Ursache:
5. Besitzer anlegen und Zugriff absichern¶
Öffne im Heimnetz http://<server-ip>:5678. Ersetze <server-ip> durch die feste
IP-Adresse deines Docker-Servers. Lege im Assistenten das erste Besitzerkonto mit einem
langen, nur hier verwendeten Passwort an.
Kein ungeschützter Internetzugriff
Leite Port 5678 nicht im Router weiter. Für Zugriff von außen brauchst du HTTPS über einen Reverse Proxy oder ein privates VPN. Webhooks und OAuth-Anmeldungen benötigen außerdem eine dauerhaft passende öffentliche Basis-URL.
6. Ersten Workflow testen¶
Erstelle in n8n einen neuen Workflow. Füge den Knoten Manual Trigger und dahinter
Edit Fields (Set) ein. Lege im zweiten Knoten das Textfeld meldung mit dem Wert
n8n funktioniert an. Klicke anschließend auf Execute Workflow.
Im Ausgabefeld des zweiten Knotens muss meldung: n8n funktioniert erscheinen. Der
Workflow kann danach unter einem eindeutigen Namen gespeichert werden.
7. Backup anlegen¶
Stoppe n8n kurz, damit während der Sicherung keine Daten verändert werden:
Lege den Backup-Ordner an:
Dieser Befehl sichert den Inhalt des Volumes in ein datiertes Archiv im aktuellen Ordner:
docker run --rm -v n8n-data:/data:ro -v "$PWD/backup:/backup" alpine sh -c 'tar czf /backup/n8n-data-$(date +%F).tar.gz -C /data .'
Starte n8n danach wieder:
Sichere zusätzlich die Datei .env an einem geschützten Ort. Prüfe das Archiv mit:
Ersetze <datum> durch das Datum im Dateinamen, zum Beispiel 2026-08-13.
8. Aktualisieren und zurückkehren¶
Erstelle vor jedem Update ein Backup. Lade danach das neue freigegebene Image und starte den Container neu:
Falls ein Update Probleme macht, trage statt latest vorübergehend den zuvor verwendeten
Versions-Tag aus den offiziellen Veröffentlichungen ein und starte erneut. Lösche weder
das Volume noch die .env-Datei.
9. Typische Fehler¶
- Seite nicht erreichbar: Prüfe
docker compose ps, die Server-IP und eine lokale Firewall. - Port bereits belegt: Finde den Dienst mit
sudo ss -ltnp | grep ':5678'oder ändere nur die linke Portnummer, zum Beispiel auf5679:5678. - Zugangsdaten nach Wiederherstellung unlesbar: Es wurde nicht derselbe
N8N_ENCRYPTION_KEYverwendet. - Webhook funktioniert nicht: Die von außen erreichbare HTTPS-Adresse und die n8n-Basis-URL passen nicht zusammen.
10. Quellen und Videos¶
- Offizielle n8n-Anleitung für Docker
- Offizielle n8n-Umgebungsvariablen
- Offizielle Hinweise zum Verschlüsselungsschlüssel
- Video: n8n lokal mit Docker installieren
- Video: n8n mit dauerhaftem Docker-Speicher
Fertig¶
n8n läuft nun mit dauerhaftem Speicher im Heimnetz. Öffne http://<server-ip>:5678,
starte den Test-Workflow erneut und prüfe, ob die Meldung n8n funktioniert ausgegeben
wird. Danach kannst du den manuellen Auslöser schrittweise durch echte Trigger ersetzen.