n8n lässt sich auf verschiedene Arten installieren. Für den Enterprise-Einsatz empfehlen wir Docker — reproduzierbar, skalierbar und einfach zu warten.
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n:latest
n8n ist nun unter http://localhost:5678 erreichbar. Für Production reicht das aber nicht.
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
- N8N_ENCRYPTION_KEY=${ENCRYPTION_KEY}
- WEBHOOK_URL=https://n8n.ihre-domain.de/
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
postgres:
image: postgres:16-alpine
restart: always
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:
| Variable | Beschreibung | Empfehlung |
|---|---|---|
N8N_ENCRYPTION_KEY | Verschlüsselung gespeicherter Credentials | Pflicht — sicher generieren und sichern |
DB_TYPE | Datenbank-Backend (sqlite oder postgresdb) | PostgreSQL für Production |
WEBHOOK_URL | Öffentliche URL für eingehende Webhooks | Mit HTTPS konfigurieren |
N8N_BASIC_AUTH_ACTIVE | Basic-Auth für das Web-Interface | Immer aktivieren |
EXECUTIONS_DATA_PRUNE | Automatische Bereinigung alter Ausführungen | true — verhindert Datenbank-Wachstum |
EXECUTIONS_DATA_MAX_AGE | Maximales Alter von Execution-Daten (Stunden) | 168 (7 Tage) |
Nutzen Sie einen Reverse-Proxy wie Nginx oder Traefik für SSL-Terminierung:
server {
listen 443 ssl;
server_name n8n.ihre-domain.de;
ssl_certificate /etc/letsencrypt/live/n8n.ihre-domain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.ihre-domain.de/privkey.pem;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Praxis-Tipp: Generieren Sie den
N8N_ENCRYPTION_KEYmitopenssl rand -hex 32und speichern Sie ihn sicher. Ohne diesen Key können gespeicherte Credentials nicht mehr entschlüsselt werden — ein Verlust bedeutet, alle Credentials neu eingeben zu müssen.