n8n selbst hosten mit Docker Compose: Komplettanleitung für deutsche Server
So installieren Sie n8n mit Docker Compose: Postgres statt SQLite, .env, Volumes und Updates Schritt für Schritt.
n8n lässt sich mit Docker Compose in wenigen Schritten auf einem eigenen Server installieren: Sie legen eine Compose-Datei und eine .env-Datei mit den Zugangsdaten an, definieren ein Volume für die persistenten Daten und starten den Stack mit einem einzigen Befehl. Für den produktiven Einsatz wechseln die meisten Betreiber von der mitgelieferten SQLite-Datenbank zu PostgreSQL, weil mehrere gleichzeitig laufende Workflows und regelmäßige Backups damit zuverlässiger funktionieren. Dieser Artikel zeigt den Aufbau der Compose-Datei, die nötigen Umgebungsvariablen, die Volumes und den Ablauf für Updates. Stand: Juli 2026.
Wie installiert man n8n mit Docker Compose?
Die Installation läuft über eine compose.yaml-Datei, die den n8n-Container startet, kombiniert mit einer .env-Datei für die serverspezifischen Werte. Auf einem Linux-Server prüfen Sie zunächst, ob Docker und Docker Compose installiert sind, etwa mit den Befehlen docker --version und docker compose version. Danach legen Sie ein Projektverzeichnis mit der compose.yaml, der .env-Datei und einem Unterordner local-files für den Dateiaustausch zwischen n8n und dem Host an. Der Start erfolgt mit dem Befehl docker compose up -d, danach ist n8n über die konfigurierte Domain oder, bei einer einfachen Einzelcontainer-Installation ohne Reverse Proxy, unter http://localhost:5678 erreichbar. Die offizielle n8n-Dokumentation liefert dafür ein fertiges Setup mit Docker Compose, das zusätzlich Traefik als Reverse Proxy für TLS-Zertifikate mitbringt.
SQLite oder PostgreSQL: Welche Datenbank ist sinnvoll?
n8n nutzt standardmäßig SQLite und speichert Zugangsdaten, Workflows und die Ausführungshistorie ohne zusätzliche Konfiguration in der Datei database.sqlite im Verzeichnis .n8n. Für den Wechsel zu PostgreSQL setzen Sie in der Compose-Datei die passenden Umgebungsvariablen, wie in der Dokumentation zur Datenbankauswahl beschrieben.
- DB_TYPE: auf postgresdb setzen, um SQLite zu ersetzen
- DB_POSTGRESDB_HOST und DB_POSTGRESDB_PORT: Adresse und Port des Postgres-Servers
- DB_POSTGRESDB_DATABASE: Name der Datenbank, Standardwert ist n8n
- DB_POSTGRESDB_USER und DB_POSTGRESDB_PASSWORD: Zugangsdaten für die Datenbank
- DB_POSTGRESDB_SCHEMA: Schema innerhalb der Datenbank, Standardwert ist public
Wichtig: Selbst mit PostgreSQL bleibt das Volume für das Verzeichnis /home/node/.n8n notwendig, weil dort weiterhin der Verschlüsselungscode für Zugangsdaten liegt.
Was gehört in die .env-Datei?
Die .env-Datei bündelt alle Werte, die sich von Server zu Server unterscheiden, damit die compose.yaml selbst unverändert bleibt. Laut offizieller Anleitung zur Docker-Installation gehören dazu mindestens folgende Variablen.
- DOMAIN_NAME und SUBDOMAIN: legen zusammen fest, unter welcher Adresse n8n erreichbar ist, etwa n8n.beispiel.de
- GENERIC_TIMEZONE und TZ: steuern die Zeitzone für Zeitplan-Nodes und Systembefehle
- SSL_EMAIL: Kontaktadresse für die automatische Zertifikatsausstellung über Traefik
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: sollte auf true stehen, um die Rechte der Konfigurationsdateien abzusichern
Da diese Datei Passwörter und Zugangsdaten enthält, gehört sie nicht in ein öffentliches Git-Repository.
Welche Volumes und Verzeichnisse benötigt n8n?
Für einen dauerhaften Betrieb sind mehrere Speicherorte relevant, die bei jedem Neustart erhalten bleiben müssen.
- n8n_data: gemountet auf /home/node/.n8n, enthält die SQLite-Datenbank, sofern genutzt, sowie den Verschlüsselungscode
- traefik_data: speichert die TLS-Zertifikate, wenn Sie den mitgelieferten Reverse Proxy verwenden
- local-files: lokales Verzeichnis auf dem Host für den Dateiaustausch, eingebunden über die Variable N8N_RESTRICT_FILE_ACCESS_TO
Ohne diese Volumes gehen Workflows, Zugangsdaten und Zertifikate bei jedem Neuaufbau des Containers verloren.
Wie aktualisiert man n8n mit Docker Compose?
Ein Update läuft über drei Befehle im Verzeichnis der Compose-Datei: docker compose pull lädt die neue Image-Version, docker compose down stoppt den laufenden Stack und docker compose up -d startet ihn mit dem aktuellen Image neu. Die Volumes bleiben davon unberührt, sodass Workflows und Zugangsdaten erhalten bleiben. Wer eine bestimmte Version fixieren möchte statt automatisch auf die neueste stabile Version zu aktualisieren, kann in der compose.yaml einen konkreten Versions-Tag angeben, laut Dokumentation etwa docker.n8n.io/n8nio/n8n:1.81.0, statt des Tags next für unstable Beta-Versionen. Wer eine saubere Konfiguration von Anfang an will, plant besser einmal gründlich statt später Server-Probleme zu reparieren. Genau das übernimmt NordFlux im Rahmen der n8n-Einrichtung zum Festpreis, inklusive Entscheidung zwischen SQLite und PostgreSQL passend zur tatsächlichen Nutzung.
Häufige Fragen zu n8n Docker Compose
Brauche ich eine eigene Domain, um n8n mit Docker Compose zu betreiben?
Nein, zwingend ist das nicht. Für eine einfache Einzelcontainer-Installation reicht ein gemapptes Volume und der Port 5678, n8n ist dann lokal über http://localhost:5678 erreichbar. Eine Domain wird erst nötig, wenn Sie den in der offiziellen Anleitung beschriebenen Aufbau mit Traefik als Reverse Proxy und automatischem TLS-Zertifikat nutzen wollen.
Wo speichert n8n meine Zugangsdaten und Workflows?
Alles liegt im gemounteten Volume, das auf das Verzeichnis /home/node/.n8n im Container zeigt. Dort befindet sich bei SQLite-Nutzung die Datenbankdatei, und unabhängig von der Datenbankwahl auch der Verschlüsselungscode für gespeicherte Zugangsdaten. Ohne dieses Volume gehen alle Daten beim nächsten Container-Neustart verloren.
Wie aktualisiere ich n8n ohne Datenverlust?
Die Reihenfolge docker compose pull, docker compose down und docker compose up -d aktualisiert das Image, ohne die Volumes anzurühren. Da Workflows, Zugangsdaten und die Datenbank in den Volumes liegen, bleiben sie beim Update erhalten. Vor größeren Versionssprüngen lohnt sich trotzdem ein Blick in die Release-Hinweise, weil sich Umgebungsvariablen zwischen Versionen ändern können.
Kann ich zwischen einer festen n8n-Version und der Beta-Version wählen?
Ja, die Docker-Images werden mit unterschiedlichen Tags veröffentlicht. Ein konkreter Versions-Tag wie 1.81.0 fixiert eine stabile Version, der Tag next liefert dagegen die unstable Beta-Version für alle, die neue Funktionen vorab testen möchten. Für produktive Server ist ein fixierter Versions-Tag die verlässlichere Wahl.
NordFlux UG (haftungsbeschränkt)
NordFlux baut Organisationen digitale Mitarbeiter: Automatisierungen und KI-Agenten, die wiederkehrende Arbeit abnehmen. Sie behalten die Kontrolle.
Konkrete Fragen zu Automatisierung oder KI?
In der kostenlosen Erstanalyse besprechen wir Ihren Fall direkt. Unverbindlich.