n8n Self-Hosting
Was dieser Artikel über n8n Self-Hosting behandelt
- Wie Du n8n für Produktion einrichtest.
- Wie Du HTTPS, Reverse Proxy und Datenbank konfigurierst.
- Wie Du Backup, Monitoring und Updates einrichtest.
- Wie Du n8n für mehrere Benutzer und Teams vorbereitest.
- Best Practices für Sicherheit, Verfügbarkeit und Wartung.
Einleitung: n8n Self-Hosting verständlich erklärt
n8n zu installieren ist einfach. n8n für Produktion einzurichten ist mehr: HTTPS, Reverse Proxy, Datenbank, Backup, Monitoring, Benutzerverwaltung. Dieser Artikel zeigt, wie Du n8n nicht nur zum Laufen bringst, sondern zuverlässig betreibst.
Dieser Artikel richtet sich an Anwender, die n8n in Produktion betreiben wollen. Du solltest n8n bereits installiert haben. Siehe n8n installieren für die Basis-Installation.
Warum brauche ich n8n Self-Hosting?
Stell Dir vor, Du hast n8n lokal installiert und ein paar Workflows gebaut. Jetzt willst Du es für Dein Team nutzen, mit HTTPS, mehreren Benutzern, Backups und Monitoring. Die lokale Installation reicht nicht: Du brauchst ein Production-Setup.
n8n Self-Hosting kurz erklärt
n8n Self-Hosting bedeutet, n8n auf Deinem Server zu betreiben: mit HTTPS, Reverse Proxy, Datenbank, Backup und Monitoring. Nicht nur zum Ausprobieren, sondern für den täglichen Betrieb.
Der Kerngedanke lautet: n8n nicht nur installieren, sondern zuverlässig betreiben.
Für wen ist dieser Artikel gedacht?
- Systemadministratoren, die n8n produktiv betreiben.
- Teams, die n8n für mehrere Benutzer einrichten.
- Self-Hoster, die n8n professionell betreiben.
- Entscheiderinnen und Entscheider, die n8n für ihr Unternehmen evaluieren.
Vorkenntnisse in Docker, n8n und Linux sind erforderlich.
Wichtige Begriffe
- n8n - Workflow-Automatisierung. Wann nützlich: das Tool selbst.
- Reverse Proxy - Vermittler vor n8n. Wann nützlich: für HTTPS und Routing.
- Docker - Container-Plattform. Wann nützlich: für Betrieb.
- Docker Compose - Multi-Container. Wann nützlich: für komplexe Setups.
- PostgreSQL - Datenbank. Wann nützlich: statt SQLite für Produktion.
- Backup - Datensicherung. Wann nützlich: für Workflows und Credentials.
- Monitoring - Überwachung. Wann nützlich: für Verfügbarkeit.
Production-Setup
Docker Compose für Produktion
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678" # Nur localhost, Reverse Proxy davor
environment:
- N8N_HOST=0.0.0.0
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.deine-domain.de/
- GENERIC_TIMEZONE=Europe/Berlin
- TZ=Europe/Berlin
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=30
volumes:
- n8n_data:/home/node/.n8n
networks:
- n8n-network
depends_on:
- postgres
postgres:
image: postgres:16-alpine
container_name: n8n-postgres
restart: unless-stopped
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- n8n-network
volumes:
n8n_data:
postgres_data:
networks:
n8n-network:
driver: bridge
Reverse Proxy mit Nginx
# /etc/nginx/sites-available/n8n
server {
listen 443 ssl http2;
server_name n8n.deine-domain.de;
ssl_certificate /etc/letsencrypt/live/n8n.deine-domain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.deine-domain.de/privkey.pem;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
TLS-Zertifikat mit Let’s Encrypt
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d n8n.deine-domain.de
Siehe TLS-Zertifikate für Details.
Datenbank: SQLite vs. PostgreSQL
| SQLite | PostgreSQL |
|---|---|
| Einfach, keine Extra-Installation | Robuster, für Produktion |
| Für kleine Setups | Für große Setups |
| Single-User | Multi-User |
| Weniger performant | Performanter |
| Backup einfach (Datei) | Backup komplexer (pg_dump) |
Für Produktion: PostgreSQL empfohlen.
Backup
n8n-Daten sichern
# Volume sichern
docker run --rm \
-v n8n_data:/data \
-v $(pwd)/backup:/backup \
alpine tar czf /backup/n8n-backup.tar.gz -C /data .
# PostgreSQL sichern
docker exec n8n-postgres pg_dump -U n8n n8n > backup/n8n-db.sql
Automatisches Backup
# Cron-Job für tägliches Backup
0 3 * * * docker run --rm -v n8n_data:/data -v /backup:/backup alpine tar czf /backup/n8n-$(date +\%Y\%m\%d).tar.gz -C /data .
Siehe Backup für Details.
Monitoring
Health-Check
# n8n Health-Endpoint
curl http://localhost:5678/healthz
Monitoring mit Prometheus
# docker-compose.yml erweitern
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
Siehe Monitoring für Details.
Benutzerverwaltung
Mehrere Benutzer
n8n unterstützt mehrere Benutzer mit verschiedenen Rollen:
environment:
- N8N_USER_MANAGEMENT_DISABLED=false
- N8N_USER_MANAGEMENT_SMTP_HOST=smtp.example.com
- N8N_USER_MANAGEMENT_SMTP_PORT=587
- N8N_USER_MANAGEMENT_SMTP_USER=n8n@example.com
- N8N_USER_MANAGEMENT_SMTP_PASS=${SMTP_PASSWORD}
- N8N_USER_MANAGEMENT_SMTP_SENDER=n8n@example.com
Sicherheitshinweise
- HTTPS erzwingen: N8N_PROTOCOL=https, WEBHOOK_URL=https.
- Passwort-Policy: Starke Passwörter für alle Benutzer.
- Zwei-Faktor-Authentifizierung: Aktivieren, wenn verfügbar.
- Firewall: Nur Port 443 (HTTPS) nach außen offen.
- Verschlüsselung: N8N_ENCRYPTION_KEY für Credentials.
- Regelmäßige Updates: n8n aktuell halten. Siehe Docker Updates.
- Audit Logging: Protokolliere Zugriffe. Siehe Audit Logging.
Praxisbeispiel: n8n für Team
# docker-compose.yml für Team-Setup
services:
n8n:
image: n8nio/n8n:latest
environment:
- N8N_HOST=0.0.0.0
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.company.de/
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- N8N_USER_MANAGEMENT_DISABLED=false
- N8N_USER_MANAGEMENT_SMTP_HOST=smtp.company.de
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=90
# ... Rest wie oben
Typische Stolpersteine
- SQLite für Produktion: SQLite ist für kleine Setups, nicht für Produktion. Nutze PostgreSQL.
- Kein HTTPS: n8n ohne HTTPS ist unsicher. Aktiviere TLS.
- Kein Backup: Ohne Backup sind Workflows bei Ausfall weg.
- Kein Monitoring: Ohne Monitoring merkst Du Ausfälle nicht.
- Credentials im Klartext: N8N_ENCRYPTION_KEY muss gesetzt sein.
- Alte Ausführungen: EXECUTIONS_DATA_PRUNE aktivieren, sonst wird die Datenbank voll.
Weiterführende Links
- n8n installieren - Basis-Installation.
- n8n Guide - n8n im Detail.
- n8n-Ollama-Integration - Ollama in n8n.
- Docker Grundlagen - Docker verstehen.
- Reverse Proxy - Reverse Proxy einrichten.
- TLS-Zertifikate - HTTPS einrichten.
- Backup - Datensicherung.
- Monitoring - Überwachung.
Key Takeaways:
- n8n Self-Hosting: HTTPS, Reverse Proxy, PostgreSQL, Backup, Monitoring.
- SQLite für kleine Setups, PostgreSQL für Produktion.
- Reverse Proxy (Nginx) für HTTPS und Routing.
- Backup: Volume + Datenbank regelmäßig sichern.
- Sicherheit: HTTPS, Passwort-Policy, Firewall, Verschlüsselung.
FAQ
Was bedeutet n8n Self-Hosting?
SQLite oder PostgreSQL?
Brauche ich einen Reverse Proxy?
Wie aktiviere ich HTTPS?
Wie sichere ich n8n?
Wie überwache ich n8n?
Kann ich mehrere Benutzer haben?
Wie sichere ich n8n ab?
Wie aktualisiere ich n8n?
Was kostet n8n Self-Hosting?
Quellen und weiterführende Literatur
- n8n Self-Hosting Docs - Offizielle Docs.
- n8n Docker - Docker-Setup.
- Nginx Reverse Proxy - Reverse Proxy.
- Let’s Encrypt - Kostenlose TLS-Zertifikate.


