n8n Self-Hosted mit Docker Compose: Der ultimative Setup-Guide

Ihr wollt n8n self-hosted betreiben und maximale Kontrolle über eure Workflow-Automation haben? Mit n8n Docker Compose könnt ihr in wenigen Minuten eine produktionsreife Instanz aufsetzen. In diesem Guide zeige ich euch, wie ihr n8n professionell selbst hostet – mit allen wichtigen Konfigurationen, Sicherheits-Best-Practices und Tipps aus der Praxis.
Warum n8n Self-Hosted?
Bevor wir in die technische Umsetzung einsteigen, hier die wichtigsten Gründe für n8n self-hosted:
Volle Datenkontrolle
- Alle Workflow-Daten bleiben auf euren eigenen Servern
- DSGVO-konform ohne Drittanbieter-Abhängigkeiten
- Keine Limits bei sensiblen Daten
Kosteneffizienz
- Keine monatlichen SaaS-Gebühren
- Unbegrenzte Workflows und Executions
- Skalierbar nach Bedarf
Anpassbarkeit
- Custom Nodes und Extensions möglich
- Volle Kontrolle über Updates
- Integration in bestehende Infrastruktur
Voraussetzungen
Für die n8n Docker Compose Installation benötigt ihr:
- Docker (Version 20.10+)
- Docker Compose (Version 2.0+)
- Linux Server (Ubuntu 22.04 empfohlen) oder macOS
- Domain mit SSL-Zertifikat (für Produktiv-Umgebung)
- Mindestens 2GB RAM und 10GB Speicher
n8n installieren: Docker Compose ist nicht die einzige Option
Docker Compose ist der Weg für produktive Umgebungen, aber nicht der einzige, um n8n selbst zu hosten. Bevor Sie in Schritt für Schritt einsteigen, kurz zur Einordnung, welche Installationsart zu welchem Zweck passt – laut der n8n-Dokumentation zu den Installationsmethoden (öffnet in neuem Tab) stehen mehrere Varianten zur Wahl:
- One-Line-Setup: Ein automatisiertes Installationsskript für Linux- oder macOS-Systeme mit
curl, das Abhängigkeiten und Konfiguration selbst übernimmt. Geeignet für einen schnellen Einstieg mit minimalem Konfigurationsaufwand. - Docker Compose: der in diesem Guide beschriebene Weg – laut n8n am besten für produktive Deployments mit Datenbank und weiteren Diensten geeignet.
- npm/npx: Für lokale Tests reicht laut n8n-Dokumentation zur npm-Installation (öffnet in neuem Tab) bereits
npx n8nohne feste Installation, odernpm install n8n -gfür eine globale Installation. Vorausgesetzt wird Node.js in einer Version zwischen 20.19 und 24.x. Wichtig für die Planung: Der npm-Installationsweg gilt laut derselben Dokumentation ab n8n 3.0 als veraltet – für dauerhaften Betrieb rät n8n zu Docker Compose oder dem One-Line-Setup. - n8n Cloud: die von n8n selbst betriebene Variante ohne eigene Infrastruktur, sinnvoll, wenn Wartungsaufwand vermieden werden soll und volle Datenkontrolle keine Voraussetzung ist.
Wer produktiv und mit eigener Datenbank arbeiten will – etwa mit PostgreSQL wie im folgenden Setup –, ist mit Docker Compose weiterhin am besten bedient. Für einen schnellen lokalen Test vorab kann npx n8n aber Zeit sparen, bevor die produktive Umgebung aufgesetzt wird.
n8n Docker Compose Setup: Schritt für Schritt
1. Projektstruktur erstellen
Erstellt zunächst ein dediziertes Verzeichnis für eure n8n-Installation:
mkdir -p ~/n8n-docker
cd ~/n8n-docker
mkdir -p data
2. Docker Compose Datei erstellen
Erstellt eine docker-compose.yml mit folgender Konfiguration:
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
# Basis-Konfiguration
- N8N_HOST=${N8N_HOST}
- N8N_PORT=5678
- N8N_PROTOCOL=${N8N_PROTOCOL}
- NODE_ENV=production
# Datenbank (PostgreSQL empfohlen für Produktion)
- 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}
# Webhook-URL
- WEBHOOK_URL=${WEBHOOK_URL}
# Timezone
- GENERIC_TIMEZONE=Europe/Berlin
- TZ=Europe/Berlin
volumes:
- ./data:/home/node/.n8n
depends_on:
- postgres
networks:
- n8n-network
postgres:
image: postgres:15-alpine
container_name: n8n-postgres
restart: unless-stopped
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- postgres-data:/var/lib/postgresql/data
networks:
- n8n-network
volumes:
postgres-data:
networks:
n8n-network:
driver: bridge
3. Environment-Variablen konfigurieren
Erstellt eine .env Datei für eure Konfiguration:
# n8n Konfiguration
N8N_HOST=n8n.euredomain.de
N8N_PROTOCOL=https
WEBHOOK_URL=https://n8n.euredomain.de/
# PostgreSQL Datenbank
POSTGRES_DB=n8n
POSTGRES_USER=n8n
POSTGRES_PASSWORD=IhrDatenbankPasswort456!
⚠️ Wichtig: Ändert unbedingt das Datenbank-Passwort vor dem produktiven Einsatz!
Hinweis (Stand August 2026):
N8N_BASIC_AUTH_USERundN8N_BASIC_AUTH_PASSWORDfunktionieren in aktuellen n8n-Versionen nicht mehr. Laut der n8n-Dokumentation zur Nutzerverwaltung (öffnet in neuem Tab) wurde die Unterstützung für Basic Auth und JWT-Authentifizierung bereits mit n8n 1.0 entfernt – wörtlich: „No supported way to disable the login screen exists in recent versions of n8n". Wer heute eine frische Instanz startet, landet stattdessen automatisch beim eingebauten Setup-Bildschirm und legt dort E-Mail-Adresse und Passwort für das Owner-Konto fest. Mehr dazu, was sich mit n8n 2.0 an dieser Stelle sonst noch ändert, im neuen Abschnitt weiter unten.
4. n8n starten
Startet eure n8n self-hosted Instanz:
docker-compose up -d
Überprüft den Status:
docker-compose ps
docker-compose logs -f n8n
5. Zugriff auf n8n
Öffnet euren Browser und navigiert zu:
- Lokal:
http://localhost:5678 - Produktiv:
https://n8n.euredomain.de
Beim ersten Aufruf zeigt n8n den Setup-Bildschirm: Dort legen Sie E-Mail-Adresse und Passwort für das Owner-Konto fest (siehe Hinweis zu Schritt 3 oben).
Produktiv-Setup: SSL & Reverse Proxy
Für den produktiven Einsatz empfehle ich Traefik oder Nginx als Reverse Proxy mit automatischem SSL.
Traefik Integration
Erweitert eure docker-compose.yml:
services:
traefik:
image: traefik:v2.10
container_name: traefik
restart: unless-stopped
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.letsencrypt.acme.email=info@euredomain.de"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./letsencrypt:/letsencrypt
networks:
- n8n-network
n8n:
# ... bestehende Konfiguration
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n.rule=Host(`n8n.euredomain.de`)"
- "traefik.http.routers.n8n.entrypoints=websecure"
- "traefik.http.routers.n8n.tls.certresolver=letsencrypt"
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
Best Practices für n8n Self-Hosted
1. Regelmäßige Backups
Erstellt ein Backup-Script:
#!/bin/bash
# backup-n8n.sh
BACKUP_DIR="/backups/n8n"
DATE=$(date +%Y%m%d_%H%M%S)
# PostgreSQL Backup
docker exec n8n-postgres pg_dump -U n8n n8n > "$BACKUP_DIR/n8n_db_$DATE.sql"
# n8n Daten Backup
tar -czf "$BACKUP_DIR/n8n_data_$DATE.tar.gz" -C ~/n8n-docker data/
# Alte Backups löschen (älter als 30 Tage)
find $BACKUP_DIR -name "*.sql" -mtime +30 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete
Automatisiert mit Cron:
0 2 * * * /path/to/backup-n8n.sh
2. Monitoring & Logging
Integriert Monitoring mit Prometheus und Grafana:
services:
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
networks:
- n8n-network
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
networks:
- n8n-network
3. Ressourcen-Limits
Begrenzt CPU und RAM in der docker-compose.yml:
services:
n8n:
# ... bestehende Konfiguration
deploy:
resources:
limits:
cpus: "2"
memory: 2G
reservations:
cpus: "1"
memory: 1G
4. Updates durchführen
Regelmäßige Updates sind wichtig:
# Images aktualisieren
docker-compose pull
# Container neu starten
docker-compose up -d
# Alte Images aufräumen
docker image prune -a
Erweiterte Konfiguration
Custom Nodes installieren
Erstellt ein Dockerfile für Custom Nodes:
FROM n8nio/n8n:latest
USER root
# Custom Node installieren
RUN cd /usr/local/lib/node_modules/n8n && \
npm install n8n-nodes-custom-package
USER node
Aktualisiert die docker-compose.yml:
services:
n8n:
build: .
# statt: image: n8nio/n8n:latest
Mehrere n8n Instanzen (Queue Mode)
Für High-Availability Setup:
services:
n8n-main:
# Main Instance
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
n8n-worker:
# Worker Instance
command: worker
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
redis:
image: redis:7-alpine
Troubleshooting
Problem: Container startet nicht
# Logs prüfen
docker-compose logs n8n
# Container neu erstellen
docker-compose down
docker-compose up -d --force-recreate
Problem: Webhooks funktionieren nicht
Überprüft die WEBHOOK_URL in der .env:
WEBHOOK_URL=https://n8n.euredomain.de/
Problem: Datenbank-Verbindung fehlgeschlagen
# PostgreSQL Container prüfen
docker-compose logs postgres
# Datenbank-Verbindung testen
docker exec -it n8n-postgres psql -U n8n -d n8n
Performance-Optimierung
1. PostgreSQL Tuning
Erstellt postgres.conf:
# Für 2GB RAM Server
shared_buffers = 512MB
effective_cache_size = 1536MB
maintenance_work_mem = 128MB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 2621kB
min_wal_size = 1GB
max_wal_size = 4GB
2. n8n Execution Settings
In der .env:
# Execution Limits
EXECUTIONS_TIMEOUT=300
EXECUTIONS_TIMEOUT_MAX=600
EXECUTIONS_DATA_SAVE_ON_ERROR=all
EXECUTIONS_DATA_SAVE_ON_SUCCESS=all
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=true
Kosten-Vergleich: Self-Hosted vs. Cloud
| Aspekt | n8n Cloud | n8n Self-Hosted |
|---|---|---|
| Monatliche Kosten | ab 20€/Monat | Server: ~5-20€/Monat |
| Workflows | Limitiert | Unbegrenzt |
| Executions | Limitiert | Unbegrenzt |
| Datenkontrolle | Bei n8n | 100% bei euch |
| Wartungsaufwand | Keine | Gering (Updates, Backups) |
| Skalierung | Automatisch | Manuell |
Fazit: Ab ~5 Workflows lohnt sich n8n self-hosted finanziell.
Was sich mit n8n 2.0 ändert: Drei Punkte für dieses Setup
n8n hat 2.0 veröffentlicht und laut den offiziellen Breaking Changes (öffnet in neuem Tab) drei Punkte eingeführt, die für ein Setup wie das obige direkt relevant sind:
Task Runners sind jetzt Pflicht statt Empfehlung. Ab 2.0 laufen alle Code-Node-Ausführungen zwingend über Task Runners – die Umgebungsvariable N8N_RUNNERS_ENABLED, die dies bisher optional aktivierte, ist laut Dokumentation entfallen: „You no longer need to set it." Wer noch auf 1.x läuft und plant zu aktualisieren, sollte laut n8n vorher N8N_RUNNERS_ENABLED=true testweise setzen, um die Umstellung zu prüfen, bevor sie mit 2.0 verpflichtend wird.
Der version-Schlüssel in docker-compose.yml ist überflüssig. Das oben gezeigte version: "3.8" am Dateianfang wird laut der Docker-Dokumentation zum Compose-Format (öffnet in neuem Tab) von Compose ignoriert und nur aus Kompatibilitätsgründen akzeptiert – Compose validiert grundsätzlich gegen das neueste Schema, unabhängig vom angegebenen Wert. Neue Setups können die Zeile ersatzlos weglassen; an bestehenden ändert sie nichts, außer einer möglichen Warnmeldung.
Der Verschlüsselungsschlüssel verdient eigene Aufmerksamkeit beim Node-Wechsel. Wenn Sie – wie in den Best Practices oben beschrieben – die .n8n-Verzeichnisdaten sichern, sichern Sie damit auch den N8N_ENCRYPTION_KEY. Geht dieser Schlüssel verloren oder weicht er zwischen Backup und Wiederherstellung ab, werden laut n8n-Dokumentation zur Rotation von Verschlüsselungsschlüsseln (öffnet in neuem Tab) alle gespeicherten Zugangsdaten dauerhaft unlesbar – der einzige Weg zurück ist dann die Wiederherstellung aus einem Datenbank-Backup von vor der Änderung. Wer den Schlüssel per Umgebungsvariable statt über die .n8n-Datei verwaltet, sollte ihn deshalb zusätzlich außerhalb des Servers hinterlegen, etwa im Passwort-Manager des Teams.
n8n 3.0 ab Oktober 2026: Docker wird zur Pflicht
Docker Compose ist schon heute der von n8n empfohlene Weg für produktive Setups – mit n8n 3.0 wird er zur einzigen Option für Self-Hosting. Laut den offiziellen v3.0 Breaking Changes (öffnet in neuem Tab) von n8n, die den Umstieg für Oktober 2026 ankündigen, entfällt der npm- und npx-Installationsweg vollständig: „Self-hosted n8n will require a Docker-based deployment. n8n 3.0 will no longer support installations run using npm or npx n8n." Wer n8n bislang über npx n8n oder eine globale npm-Installation betreibt, muss vor dem Umstieg auf 3.0 auf Docker wechseln – für lokale Installationen empfiehlt n8n laut derselben Quelle Docker Compose als einfachsten Weg dorthin.
Wer wie in diesem Guide bereits auf Docker Compose setzt, ist von der Umstellung selbst nicht betroffen. Betroffen sind aber ältere Workflows: n8n 3.0 entfernt laut den Breaking Changes die veralteten Nodes Function, Function Item und Item Lists sowie Version 1 des AI Agent-Node mitsamt der Modi SQL Agent, Conversational Agent, OpenAI Functions Agent, Plan and Execute Agent und ReAct Agent. Wer solche Nodes in produktiven Workflows einsetzt, sollte sie vor dem Update auf die aktuellen Alternativen migrieren – etwa den Code-Node statt Function/Function Item oder eine aktuelle AI-Agent-Version im Tools Agent-Modus.
Neu seit August 2026: KI-Assistent auch für Self-Hosted-Instanzen
Seit n8n 2.35 lässt sich laut dem n8n-Changelog (öffnet in neuem Tab) der KI-Assistent auch auf selbstgehosteten Instanzen mit einem einzigen Befehl einrichten: curl -fsSL https://get.n8n.io | sh installiert n8n per Docker Compose und konfiguriert Sandbox sowie Websuche gleich mit. Für den produktiven Einsatz empfiehlt n8n laut demselben Changelog statt der mitgelieferten Sandbox eine verwaltete Lösung wie die von Daytona, da die eingebaute Sandbox laut n8n eher für lokale Entwicklung und Tests gedacht ist. Der Assistent selbst befindet sich laut n8n aktuell im Preview-Status – generierte Workflows sollten vor dem produktiven Einsatz geprüft werden.
Fazit: n8n Docker Compose lohnt sich
Mit n8n Docker Compose habt ihr in wenigen Minuten eine produktionsreife Workflow-Automation-Plattform am Laufen. Die Vorteile:
✅ Volle Kontrolle über Daten und Infrastruktur
✅ Kosteneffizient bei regelmäßiger Nutzung
✅ Skalierbar nach euren Anforderungen
✅ DSGVO-konform durch Self-Hosting
✅ Professionell mit PostgreSQL und SSL
Der initiale Setup-Aufwand von 1-2 Stunden zahlt sich schnell aus. Mit den Best Practices aus diesem Guide habt ihr eine stabile, sichere und wartbare n8n-Installation.
Nächste Schritte
Ihr wollt n8n self-hosted produktiv einsetzen, aber euch fehlt die Zeit oder Expertise für Setup und Wartung? Wir bei Vinspire helfen euch:
- Managed n8n Hosting auf eurer Infrastruktur
- Custom Workflow-Entwicklung für eure Prozesse
- Integration in bestehende Systeme (CRM, ERP, etc.)
- Training & Support für euer Team
Kostenloses Erstgespräch: Kontakt aufnehmen
Habt ihr Fragen zum n8n Self-Hosting? Schreibt uns oder hinterlasst einen Kommentar!
Weitere Artikel:
Das könnte Sie auch interessieren
Alle zu „n8n“
n8n-Sicherheitslücken August 2026: Was Self-Hosting-Teams jetzt prüfen müssen
n8n hat am 20. August 2026 neun Sicherheitslücken gemeldet, sechs davon mit hohem Schweregrad. Was betroffen ist, welche Version patcht und was Self-Hoster sofort tun sollten.

n8n 1 auf 2 migrieren: Breaking Changes & Checkliste
n8n 2.0 bringt laut n8n zahlreiche Breaking Changes: MySQL/MariaDB als Speicher entfällt, Task Runner sind Standard, der Start-Node ist weg. Was Self-Hosting-Teams vor dem Upgrade prüfen müssen.

Windmill: Workflow-Automatisierung selbst hosten – ein Praxiseinstieg
Windmill macht aus Skripten in Python, TypeScript oder Bash Webhooks, Workflows und UIs – Open Source und in Minuten per Docker Compose selbst gehostet. Was das Werkzeug leistet und wie der Einstieg gelingt.

KI-Tools: SaaS vs. Self-Hosting – Kosten und DSGVO im Vergleich
SaaS-KI-Tools oder Self-Hosting: Was kostet welcher Weg, und was verlangt die DSGVO? Ein Vergleich mit Zahlen von Bitkom, OpenAI und einer aktuellen Kostenanalyse.

Hermes Agent auf einem VPS installieren: Schritt für Schritt
Anleitung zur Installation von Hermes Agent auf einem eigenen Linux-Server: Installer, Non-Root-Setup als Systemdienst und Messaging-Anbindung – Schritt für Schritt nach der offiziellen Dokumentation.
n8n Error Handling: Workflows sicher abfangen & melden
So richten Sie in n8n robustes Error Handling ein: Fehler abfangen, sauber loggen und automatisch benachrichtigen. Mit Best Practices für stabile Workflows.
Themen dieses Beitrags
Lasst uns über eure Zukunft sprechen
Habt ihr eine Idee, ein Projekt oder einfach eine Frage? Wir freuen uns auf eure Nachricht und melden uns innerhalb von 24 Stunden bei euch.