n8n Self-Hosting
Workflow Automation auf deiner eigenen Infrastruktur. Volle Kontrolle, keine Cloud-Abhängigkeit.
Was ist n8n?
n8n (pronounced "n-eight-n") ist eine Open-Source Workflow Automation Plattform. Verbinde Apps, automatisiere Prozesse und baue komplexe Workflows - alles auf deinem eigenen Server.
- 400+ Integrationen (Slack, Telegram, Google, APIs, ...)
- Visual Workflow Builder - kein Code nötig
- Self-Hosted = Deine Daten bleiben bei dir
- Fair-Code Lizenz - kostenlos nutzbar
📋 Schritt 0: Voraussetzungen pruefen
Bevor du startest, stelle sicher dass du folgendes hast:
Server / VPS
- Mindestens 2 GB RAM
- 10 GB freier Speicher
- Docker & Docker Compose installiert
- Linux (Debian/Ubuntu empfohlen)
Netzwerk
- Domain oder Subdomain (z.B. n8n.deine-domain.de)
- Reverse Proxy (NPM, Traefik, Caddy)
- SSL-Zertifikat (Let's Encrypt)
- Port 5678 intern erreichbar
Proxmox LXC User
Falls du n8n in einem Proxmox LXC Container betreibst: Stelle sicher, dass der Container unprivileged läuft und Docker korrekt installiert ist. Alternativ: Eigene VM für Docker-Workloads.
Docker installiert?
docker --version && docker compose version
Falls Docker fehlt: Docker Installation Guide →
📁 Schritt 1: Projektverzeichnis anlegen
Erstelle ein Verzeichnis für deine n8n Installation:
mkdir -p /opt/n8n && cd /opt/n8n
/opt/n8n ist ein guter Standardpfad. Du kannst auch einen anderen Pfad wählen,
z.B. /home/user/docker/n8n.
🐳 Schritt 2: Docker Compose erstellen
Erstelle die docker-compose.yml Datei. Wir nutzen PostgreSQL als Datenbank für bessere Performance und Stabilität.
version: '3.8'
services:
n8n:
image: docker.n8n.io/n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
# Basis-Konfiguration
- N8N_HOST=n8n.deine-domain.de
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.deine-domain.de/
# Datenbank
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=SICHERES_PASSWORT_HIER
# Zeitzone
- GENERIC_TIMEZONE=Europe/Berlin
- TZ=Europe/Berlin
# Sicherheit
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=DEIN_ADMIN_PASSWORT
# Optional: Execution Data Limit (verhindert DB-Bloat)
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=168
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
networks:
- n8n-network
postgres:
image: postgres:15-alpine
container_name: n8n-postgres
restart: unless-stopped
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=SICHERES_PASSWORT_HIER
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n -d n8n"]
interval: 10s
timeout: 5s
retries: 5
networks:
- n8n-network
volumes:
n8n_data:
postgres_data:
networks:
n8n-network:
driver: bridge
Passwoerter aendern!
Ersetze SICHERES_PASSWORT_HIER und DEIN_ADMIN_PASSWORT durch
sichere, einzigartige Passwörter! Nutze z.B. openssl rand -base64 32 um sichere Passwörter zu generieren.
Sichere Passwoerter generieren:
# PostgreSQL Passwort
openssl rand -base64 32
# Admin Passwort
openssl rand -base64 24
⚙️ Schritt 3: Konfiguration anpassen
Passe folgende Werte in der docker-compose.yml an:
| Variable | Beschreibung | Beispiel |
|---|---|---|
| N8N_HOST | Deine Domain | n8n.firma.de |
| WEBHOOK_URL | Vollstaendige URL fuer Webhooks | https://n8n.firma.de/ |
| DB_POSTGRESDB_PASSWORD | PostgreSQL Passwort | (generiert) |
| N8N_BASIC_AUTH_USER | Admin Benutzername | admin |
| N8N_BASIC_AUTH_PASSWORD | Admin Passwort | (generiert) |
SQLite statt PostgreSQL?
Für kleine Installationen (<10 Workflows) kannst du auch SQLite nutzen.
Entferne dafür den postgres Service und die DB_* Umgebungsvariablen.
n8n nutzt dann automatisch SQLite.
🚀 Schritt 4: n8n starten
Starte n8n mit Docker Compose:
cd /opt/n8n
docker compose up -d
Pruefe ob die Container laufen:
docker compose ps
Erwartete Ausgabe:
NAME STATUS PORTS
n8n Up (healthy) 0.0.0.0:5678->5678/tcp
n8n-postgres Up (healthy) 5432/tcp
Beim ersten Start kann es 1-2 Minuten dauern bis PostgreSQL bereit ist und n8n startet.
Prüfe die Logs mit docker compose logs -f falls etwas nicht funktioniert.
🌐 Schritt 5: Reverse Proxy einrichten
n8n laeuft jetzt auf Port 5678. Um es ueber HTTPS erreichbar zu machen, brauchst du einen Reverse Proxy.
Option A: Nginx Proxy Manager (empfohlen)
- Öffne Nginx Proxy Manager
- Klicke auf "Proxy Hosts" → "Add Proxy Host"
-
Konfiguration:
- Domain:
n8n.deine-domain.de - Scheme:
http - Forward Hostname/IP:
n8noder Server-IP - Forward Port:
5678 - Websockets Support: aktivieren
- Domain:
- SSL Tab: "Request a new SSL Certificate" mit Let's Encrypt
- Speichern
Option B: Traefik (Labels in docker-compose.yml)
services:
n8n:
# ... bestehende config ...
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n.rule=Host(`n8n.deine-domain.de`)"
- "traefik.http.routers.n8n.entrypoints=websecure"
- "traefik.http.routers.n8n.tls.certresolver=letsencrypt"
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
networks:
- n8n-network
- traefik # Traefik Netzwerk hinzufügen
Websockets aktivieren!
n8n benötigt Websockets für den Editor. Stelle sicher, dass dein Reverse Proxy Websocket-Verbindungen weiterleitet, sonst funktioniert der Workflow-Editor nicht richtig.
🔐 Schritt 6: Erster Login
Oeffne n8n in deinem Browser:
https://n8n.deine-domain.de
Melde dich mit den Zugangsdaten an, die du in der docker-compose.yml festgelegt hast:
- Benutzername:
N8N_BASIC_AUTH_USER - Passwort:
N8N_BASIC_AUTH_PASSWORD
Geschafft!
Wenn du den n8n Workflow-Editor siehst, ist die Installation erfolgreich! Du kannst jetzt deinen ersten Workflow erstellen.
💾 Schritt 7: Backup einrichten
Fuer ein vollstaendiges Backup brauchst du:
- PostgreSQL Datenbank - enthält alle Workflows, Credentials, Execution History
- n8n Volume - enthält Encryption Key und weitere Konfiguration
Datenbank-Backup Script:
#!/bin/bash
# n8n Backup Script
# Speicherort: /opt/n8n/backup-n8n.sh
BACKUP_DIR="/opt/n8n/backups"
DATE=$(date +%Y-%m-%d_%H-%M)
mkdir -p $BACKUP_DIR
# PostgreSQL Backup
docker exec n8n-postgres pg_dump -U n8n n8n > "$BACKUP_DIR/n8n-db-$DATE.sql"
# n8n Volume Backup (Encryption Key!)
docker run --rm -v n8n_n8n_data:/data -v $BACKUP_DIR:/backup alpine \
tar czf /backup/n8n-data-$DATE.tar.gz -C /data .
# Alte Backups löschen (älter als 7 Tage)
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
echo "Backup erstellt: $DATE"
Cronjob einrichten (taeglich 3 Uhr):
chmod +x /opt/n8n/backup-n8n.sh
(crontab -l 2>/dev/null; echo "0 3 * * * /opt/n8n/backup-n8n.sh >> /var/log/n8n-backup.log 2>&1") | crontab -
Encryption Key sichern!
Der Encryption Key in /home/node/.n8n ist kritisch! Ohne ihn kannst du
gespeicherte Credentials (API-Keys, Passwörter) nicht wiederherstellen.
Sichere das n8n Volume unbedingt mit!
🔄 Schritt 8: Updates & Wartung
n8n wird regelmaessig aktualisiert. So updatest du sicher:
cd /opt/n8n
# 1. Backup erstellen!
./backup-n8n.sh
# 2. Neue Images ziehen
docker compose pull
# 3. Container neu starten
docker compose up -d
# 4. Prüfen ob alles läuft
docker compose ps
docker compose logs -f n8n
Update-Strategie
Wir empfehlen, n8n monatlich zu updaten. Bei kritischen Security-Updates sofort. Folge dem n8n Community Forum für Release Notes.
Nuetzliche Wartungsbefehle:
# Logs anzeigen
docker compose logs -f n8n
# In Container shell
docker exec -it n8n /bin/sh
# Container neustarten
docker compose restart n8n
# Alles stoppen
docker compose down
# Alles starten
docker compose up -d
Haeufige Fragen
n8n startet nicht - was tun?
Prüfe die Logs:
docker compose logs n8n
docker compose logs postgres
Häufige Ursachen:
- PostgreSQL noch nicht bereit → Warte 1-2 Minuten
- Falsches Passwort in Config → Beide Stellen prüfen
- Port bereits belegt →
lsof -i :5678
Wie exportiere ich Workflows?
Im n8n Editor: Workflow öffnen → Menu (drei Punkte) → "Download". Du erhältst eine JSON-Datei die du jederzeit wieder importieren kannst.
Webhooks funktionieren nicht
Prüfe diese Punkte:
WEBHOOK_URLkorrekt mit https:// und trailing slash?- Domain von außen erreichbar?
- SSL-Zertifikat gültig?
- Workflow aktiviert (nicht nur gespeichert)?
Kann ich n8n mit anderen Containern verbinden?
Ja! Füge die Container zum selben Docker-Netzwerk hinzu.
Dann kannst du sie über den Container-Namen ansprechen (z.B. http://nextcloud:80).
Wie viele Workflows kann ich erstellen?
Unbegrenzt! Die Self-Hosted Version hat keine Limits. Die Performance hängt von deiner Hardware ab - mit 2 GB RAM sind 50+ Workflows problemlos möglich.
Brauche ich die kostenpflichtige Version?
Für die meisten Anwendungsfälle: Nein. Die Open-Source Version enthält alle Workflow-Funktionen. Die kostenpflichtige Cloud/Enterprise Version bietet zusätzlich SSO, Audit Logs, und Support.
Naechste Schritte
Dein n8n ist jetzt einsatzbereit! Hier sind Ideen für den Einstieg:
Lieber machen lassen?
Wir richten n8n fuer dich ein - inklusive Backup, Monitoring und Integration mit deinen anderen Services.
Kontakt aufnehmen →