N8N kann mit folgender Konfigurationsdatei per docker compose bereitgestellt werden:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "5678:5678"
- "5679:5679"
environment:
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- N8N_RUNNERS_ENABLED=true
- N8N_PROXY_HOPS=1
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- EXPRESS_TRUST_PROXY=true
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- TZ=${GENERIC_TIMEZONE}
volumes:
- n8n_data:/home/node/.n8n
- ./local-files:/files
volumes:
n8n_data:
Zusätzlich muss noch eine Datei mit Umgebungsvariablen mit der Bezeichnung .env angelegt werden.
# DOMAIN_NAME and SUBDOMAIN together determine where n8n will be reachable from The top level domain to serve from
DOMAIN_NAME=<doamin.tld>
# The subdomain to serve from
SUBDOMAIN=n8n
# The above example serve n8n at: https://n8n.example.com Optional timezone to set which gets used by Cron and other scheduling nodes New Yor>
# default value if not set
GENERIC_TIMEZONE=Europe/Berlin
# The email address to use for the TLS/SSL certificate creation
SSL_EMAIL=<email>
Nginx Proxy Manager Konfiguration
Damit der n8n-Container hinter einem Reverse-Proxy wie Nginx Proxy Manger verfügbar ist müssen ein paar spezielle Header verwendet werden.

Die folgenden Header müssen zur Location hinzugefügt werden, sonst meldet die Webseite, das der Server nicht verfügbar ist.
proxy_set_header Connection 'Upgrade';
proxy_set_header Upgrade $http_upgrade;
