n8n auf Synology NAS (Container Manager, Postgres)
n8n auf der Synology NAS per Container Manager einrichten: Docker-Compose-Projekt, Postgres statt SQLite, Volume-Mapping und Reverse Proxy.
So sichern Sie n8n mit Caddy oder Nginx per HTTPS ab und vermeiden die WEBHOOK_URL-Falle bei produktiven Webhooks.
HTTPS für n8n richten Sie ein, indem Sie einen Reverse Proxy wie Caddy oder Nginx vor die Instanz schalten. Der Proxy übernimmt die Verschlüsselung nach außen und leitet Anfragen intern per HTTP an Port 5678 weiter. Damit Webhooks funktionieren, muss n8n zusätzlich seine öffentliche Adresse kennen. Zuständig dafür sind die Variablen N8N_WEBHOOK_URL und N8N_PROXY_HOPS.
Ein Reverse Proxy allein reicht nicht aus, weil n8n seine Webhook-URLs aus N8N_PROTOCOL, N8N_HOST und N8N_PORT zusammensetzt. Die Standardwerte lauten http, localhost und 5678.
Hinter einem Proxy sieht n8n intern weiterhin nur die HTTP-Verbindung auf Port 5678. Nutzer und externe Dienste erreichen die Instanz dagegen über HTTPS auf Port 443 unter Ihrer Domain.
Diesen Bruch zwischen interner und externer Sicht muss die Konfiguration überbrücken. Die n8n-Dokumentation zu Webhook-URLs hinter Reverse Proxys beschreibt genau diesen Ausgangspunkt.
Hinter dem Proxy setzen Sie mindestens N8N_WEBHOOK_URL und N8N_PROXY_HOPS, dazu Protokoll und Hostname. Die folgende Tabelle nennt die relevanten Variablen mit ihren Standardwerten aus der Referenz der Deployment-Variablen.
Variable | Standardwert | Wert hinter einem Reverse Proxy
Variable: N8N_PROTOCOL · Standardwert: http · Wert hinter einem Reverse Proxy: https
Variable: N8N_HOST · Standardwert: localhost · Wert hinter einem Reverse Proxy: Ihre Subdomain, etwa n8n.ihre-domain.de
Variable: N8N_PORT · Standardwert: 5678 · Wert hinter einem Reverse Proxy: bleibt 5678, der Proxy hört auf 443
Variable: N8N_WEBHOOK_URL · Standardwert: nicht gesetzt · Wert hinter einem Reverse Proxy: vollständige externe Adresse mit Schrägstrich am Ende
Variable: N8N_PROXY_HOPS · Standardwert: 0 · Wert hinter einem Reverse Proxy: Anzahl der vorgeschalteten Proxys, bei einem Proxy 1
Variable: N8N_SECURE_COOKIE · Standardwert: true · Wert hinter einem Reverse Proxy: bleibt true, sofern HTTPS korrekt ankommt
Wichtig für alle älteren Anleitungen im Netz: N8N_WEBHOOK_URL ersetzt WEBHOOK_URL. Die alte Variable ist seit n8n 2.35.0 als Alias veraltet und erzeugt beim Start eine Warnung im Log.
Als Docker-Compose-Ausschnitt sieht das so aus. Die Portbindung auf 127.0.0.1 sorgt dafür, dass nur der Proxy die Instanz erreicht.
1services:2 n8n:3 image: n8nio/n8n:2.36.94 restart: always5 ports:6 - "127.0.0.1:5678:5678"7 environment:8 - N8N_PROTOCOL=https9 - N8N_HOST=n8n.ihre-domain.de10 - N8N_PORT=567811 - N8N_WEBHOOK_URL=https://n8n.ihre-domain.de/12 - N8N_EDITOR_BASE_URL=https://n8n.ihre-domain.de/13 - N8N_PROXY_HOPS=114 - GENERIC_TIMEZONE=Europe/Berlin15 - TZ=Europe/Berlin16 volumes:17 - n8n_data:/home/node/.n8n18
19volumes:20 n8n_data:Ihr Proxy muss drei Header an n8n weiterreichen, damit die Einstellungen überhaupt greifen. Die n8n-Dokumentation nennt sie ausdrücklich für den letzten Proxy auf dem Anfrageweg.
Fehlen die Header oder passt N8N_PROXY_HOPS nicht zur Anzahl der Stationen, wertet n8n die Angaben nicht aus. Dann fällt die Instanz auf ihre internen Standardwerte zurück.
Die Konfiguration unterscheidet sich deutlich im Umfang: Caddy braucht drei Zeilen, Nginx einen vollständigen Server-Block. Caddy ab Version 2 setzt die drei X-Forwarded-Header bei reverse_proxy selbst und holt das Zertifikat automatisch.
1n8n.ihre-domain.de {2 reverse_proxy 127.0.0.1:56783}Bei Nginx tragen Sie Zertifikat und Header selbst ein. Der Block zum Upgrade der Verbindung ist nötig, weil n8n die Oberfläche per WebSocket aktualisiert.
1server {2 listen 443 ssl;3 server_name n8n.ihre-domain.de;4
5 ssl_certificate /etc/letsencrypt/live/n8n.ihre-domain.de/fullchain.pem;6 ssl_certificate_key /etc/letsencrypt/live/n8n.ihre-domain.de/privkey.pem;7
8 location / {9 proxy_pass http://127.0.0.1:5678;10
11 proxy_set_header Host $host;12 proxy_set_header X-Forwarded-Host $host;13 proxy_set_header X-Forwarded-Proto $scheme;14 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;15
16 proxy_http_version 1.1;17 proxy_set_header Upgrade $http_upgrade;18 proxy_set_header Connection "upgrade";19 proxy_read_timeout 3600s;20 }21}Danach prüfen Sie die Konfiguration und laden sie neu.
1sudo nginx -t && sudo systemctl reload nginxFür n8n selbst spielt die Wahl keine Rolle, solange die Header ankommen und die Variablen stimmen. Der Unterschied liegt allein im Betriebsaufwand.
Kriterium | Caddy 2 | Nginx
Kriterium: Zertifikat · Caddy 2: wird automatisch ausgestellt und erneuert · Nginx: separat über Certbot oder ACME-Client
Kriterium: X-Forwarded-Header · Caddy 2: setzt reverse_proxy selbst · Nginx: jede Zeile manuell im Server-Block
Kriterium: WebSocket-Upgrade · Caddy 2: standardmäßig aktiv · Nginx: proxy_http_version und Upgrade von Hand
Kriterium: Konfigurationsumfang · Caddy 2: drei Zeilen · Nginx: rund zwanzig Zeilen je Host
Kriterium: Typischer Einsatz · Caddy 2: neue, dedizierte n8n-Hosts · Nginx: Server, auf dem Nginx bereits andere Dienste bedient
Alternativ beschreibt die n8n-Dokumentation zum Einrichten von SSL einen Weg ohne separaten Proxy. Sie setzen N8N_SSL_CERT und N8N_SSL_KEY, damit n8n Zertifikat und Schlüssel selbst einliest.
Die Dokumentation empfiehlt trotzdem den Reverse Proxy, weil dieser die Erneuerung übernimmt. Bei direkten Zertifikaten tragen Sie die Verantwortung dafür allein.
Der Login bricht weg, weil n8n Sitzungscookies als secure markiert und der Browser solche Cookies nur über eine verschlüsselte Verbindung sendet. Gesteuert wird das über N8N_SECURE_COOKIE mit dem Standardwert true.
Erreicht die HTTPS-Information n8n nicht über X-Forwarded-Proto, hält die Anwendung die Verbindung intern für unverschlüsselt. Sie verwirft das Cookie, und das Login-Formular scheitert ohne klare Fehlermeldung.
Webhook-Variablen, Proxy-Header und Cookie-Einstellung hängen technisch zusammen. Prüfen Sie die drei Punkte deshalb immer gemeinsam.
Die folgenden vier Fehlerbilder decken die meisten gescheiterten HTTPS-Setups ab. Jede Zeile nennt Ursache, Lösung und die zugehörige Stelle in der Herstellerdokumentation.
Symptom | Ursache | Lösung
Symptom: Der Webhook-Node zeigt eine URL mit localhost:5678 · Ursache: N8N_WEBHOOK_URL ist nicht gesetzt, n8n baut die URL aus den Standardwerten · Lösung: N8N_WEBHOOK_URL auf die vollständige externe Adresse setzen und den Container neu starten (Quelle)
Symptom: Beim Start erscheint eine Deprecation-Warnung im Log · Ursache: Die Konfiguration nutzt noch WEBHOOK_URL, seit n8n 2.35.0 nur ein veralteter Alias · Lösung: Variable auf N8N_WEBHOOK_URL umbenennen, Wert bleibt gleich (Quelle)
Symptom: Der Login lädt neu, ohne eine Fehlermeldung zu zeigen · Ursache: X-Forwarded-Proto fehlt, n8n verwirft das als secure markierte Cookie · Lösung: Header im Proxy ergänzen und N8N_PROXY_HOPS passend setzen, statt N8N_SECURE_COOKIE abzuschalten (Quelle)
Symptom: Jede Ausführung protokolliert dieselbe IP-Adresse · Ursache: N8N_PROXY_HOPS steht auf dem Standardwert 0, n8n vertraut X-Forwarded-For nicht · Lösung: Wert exakt auf die Anzahl der vorgeschalteten Proxys setzen, bei Cloudflare vor Caddy also 2 (Quelle)
Wenn Ihnen das für den produktiven Einsatz zu fehleranfällig ist, übernehmen wir bei NordFlux das Hosting-Setup zum Festpreis. Unsere n8n-Leistungen enthalten die hier beschriebene HTTPS- und Webhook-Konfiguration.
Ja, in nahezu jedem Reverse-Proxy-Setup. Der Proxy terminiert die Verschlüsselung, ändert aber nichts an den internen Standardwerten von n8n. Erst die explizite Angabe sorgt dafür, dass registrierte Webhooks die erreichbare Adresse enthalten.
Der Unterschied liegt darin, wer die Verschlüsselung terminiert. Beim Reverse Proxy übernimmt Caddy oder Nginx das Zertifikat, intern läuft HTTP. Bei direkten Zertifikaten liest n8n über N8N_SSL_CERT und N8N_SSL_KEY selbst ein, und Sie verwalten die Erneuerung.
Der Wert muss der Anzahl der Stationen entsprechen, die eine Anfrage durchläuft. Bei einem einzelnen Proxy tragen Sie 1 ein, mit Cloudflare davor 2. Prüfen Sie das mit einem eingehenden Webhook-Aufruf und der protokollierten Client-IP.
In der Praxis nicht. Caddy und die kostenlosen Zertifikatsstellen brauchen eine Domain mit öffentlichem DNS-Eintrag, eine reine IP-Adresse genügt nicht. Für produktive Webhooks benötigen Sie ohnehin eine stabile, öffentlich erreichbare Subdomain.
Gründer von NordFlux. Sieben Jahre Erfahrung von Web und SEO bis zur Automatisierung im Konzern-Maßstab, heute pragmatisch für den Mittelstand und mit deutscher Datenhoheit.
Zertifizierungen
n8n auf der Synology NAS per Container Manager einrichten: Docker-Compose-Projekt, Postgres statt SQLite, Volume-Mapping und Reverse Proxy.
n8n auf Hetzner installieren: Servertyp, Docker Compose mit Caddy und warum der deutsche Serverstandort für DSGVO-konforme Automatisierung zählt.
n8n-Webhooks richtig aufbauen und absichern: Header Auth, JWT, IP-Whitelisting und Reverse-Proxy-Konfiguration im Überblick.
Ein Reverse Proxy allein reicht nicht: Ohne korrekt weitergereichte Header und eine passend gesetzte WEBHOOK_URL bricht die Webhook-Funktion trotz gültigem Zertifikat. NordFlux übernimmt den betreuten n8n-Betrieb inklusive Reverse-Proxy-Konfiguration mit Caddy oder Nginx, damit HTTPS, Login und Webhooks dauerhaft zusammenspielen. Im ersten Gespräch prüfen wir Ihr Proxy-Setup auf genau diese Stolperfallen.