Nginx Proxy Manager auf der Synology mit Container Manager einrichten: Reverse Proxy und SSL Schritt für Schritt
Mit Nginx Proxy Manager (NPM) baust du auf der Synology einen Reverse Proxy mit grafischer Oberfläche und automatischen Let's-Encrypt-Zertifikaten. Diese Anleitung zeigt das Setup über den Container Manager: Compose-Projekt, Port-Konflikt mit DSM lösen, erster Proxy-Host mit HTTPS.

Wenn du mehrere Webdienste auf deiner Synology oder im Heimnetz betreibst, willst du sie nicht alle über eine kryptische IP samt Portnummer aufrufen, sondern über saubere Subdomains wie jellyfin.deine-domain.de mit gültigem HTTPS-Zertifikat. Genau das leistet ein Reverse Proxy. Nginx Proxy Manager (kurz NPM) ist die wohl einsteigerfreundlichste Variante: Du konfigurierst alles über eine Web-Oberfläche und holst dir Let's-Encrypt-Zertifikate mit wenigen Klicks. In dieser Anleitung richtest du NPM als Docker-Projekt im Container Manager unter DSM 7.2 ein, löst den unvermeidlichen Port-Konflikt mit dem DSM-Webinterface und veröffentlichst deinen ersten Dienst per HTTPS.
Was ist Nginx Proxy Manager und warum lohnt er sich?
Ein Reverse Proxy nimmt eingehende Anfragen auf den Ports 80 (HTTP) und 443 (HTTPS) entgegen und leitet sie anhand des angefragten Hostnamens an den richtigen internen Dienst weiter. Statt zehn Ports nach außen zu öffnen, exponierst du nur den Proxy und routest intern. Nginx Proxy Manager setzt auf den bewährten Nginx-Webserver auf und packt eine grafische Verwaltung obendrauf: Proxy-Hosts, SSL-Zertifikate, Access-Listen und Weiterleitungen verwaltest du komplett im Browser, ohne eine einzige Nginx-Konfigurationsdatei von Hand zu schreiben.
Die Vorteile auf einen Blick: kostenlose, automatisch erneuerte Let's-Encrypt-Zertifikate, eine SQLite-Datenbank ist bereits eingebaut (du brauchst keine externe MySQL/MariaDB), und das Projekt ist quelloffen und seit Jahren aktiv. Für den Heimserver- und Homelab-Einsatz ist NPM damit eine der schnellsten Möglichkeiten, Dienste sicher und mit ordentlichen Adressen erreichbar zu machen.
Voraussetzungen
- Synology-NAS mit DSM 7.2 oder neuer und installiertem Paket Container Manager (Paketzentrum).
- Ein Administrator-Konto in DSM sowie Zugriff auf die File Station.
- Eine eigene Domain (z. B. über einen DDNS-Dienst oder einen Registrar), deren DNS-Einträge du verwalten kannst.
- Für Let's Encrypt per HTTP-Challenge: die Ports 80 und 443 müssen aus dem Internet auf die NAS weitergeleitet sein (Portfreigabe/Port-Forwarding im Router). Alternativ eine DNS-Challenge (z. B. über Cloudflare), wenn du keine offenen Ports willst.
- Etwas Plattenplatz unter
/volume1/dockerfür die NPM-Datenordner (wenige hundert MB). - Wissen, welche Host-Ports auf deiner NAS noch frei sind – dazu gleich mehr.
Schritt 1: Den Port-Konflikt mit DSM verstehen und planen
Das ist der wichtigste Punkt der ganzen Anleitung. NPM möchte die Ports 80 und 443 belegen – genau die nutzt DSM aber selbst für Webstation, den eingebauten Reverse Proxy und teils das DSM-Login. Du hast zwei saubere Wege:
- DSM-Ports verschieben (empfohlen, wenn NPM 80/443 nach außen bedienen soll): Öffne Systemsteuerung → Anmeldeportal → DSM und stelle dort die HTTP-/HTTPS-Ports des DSM-Webinterface um (z. B. auf 5000/5001, was ohnehin Standard ist). Prüfe zusätzlich unter Anmeldeportal → Reverse-Proxy, ob dort bereits Regeln 80/443 belegen. So bleiben 80/443 für NPM frei.
- NPM auf alternative Host-Ports mappen (kein Eingriff in DSM): Du veröffentlichst NPM auf z. B. 8080/4443 und legst die eigentliche Port-Weiterleitung 80→8080 und 443→4443 im Router an. Im Internet bleiben 80/443 erreichbar, intern hört NPM auf anderen Ports.
In dieser Anleitung gehen wir den zweiten, konfliktfreien Weg und mappen NPM auf 8080 (HTTP), 4443 (HTTPS) und 81 (Admin-UI). Den Admin-Port 81 belegt DSM in der Regel nicht. Wenn du DSM-Ports lieber verschiebst, kannst du die Mappings unten einfach auf 80 und 443 setzen.
Schritt 2: Datenordner in der File Station anlegen
NPM speichert seine Konfiguration und Zertifikate in zwei Volumes. Lege dafür einen festen Ordner an. Öffne die File Station und erstelle unter dem freigegebenen Ordner docker einen neuen Unterordner:
/volume1/docker/nginx-proxy-managerExistiert der Ordner docker noch nicht, lege ihn zuerst an (er entspricht dem freigegebenen Ordner, den der Container Manager standardmäßig nutzt). Die Unterordner data und letsencrypt erstellt NPM beim ersten Start selbst.
Schritt 3: docker-compose.yml erstellen
Im Container Manager heißt ein Compose-Stack Projekt. Du kannst die YAML beim Anlegen direkt einfügen oder vorab als Datei ablegen. Hier der vollständige Compose-Inhalt für NPM:
services:
nginx-proxy-manager:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- "8080:80" # HTTP (oeffentlich, im Router auf 80 forwarden)
- "4443:443" # HTTPS (oeffentlich, im Router auf 443 forwarden)
- "81:81" # Admin-Weboberflaeche
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
environment:
- TZ=Europe/BerlinErläuterung der Zeilen:
image: jc21/nginx-proxy-manager:latest– das offizielle NPM-Image. Für den Produktivbetrieb solltest du den Tag später auf eine feste Version pinnen, damit Updates kontrolliert ablaufen.ports– links der Host-Port auf der NAS, rechts der Container-Port. NPM hört intern immer auf 80, 443 und 81. Willst du NPM direkt auf 80/443 betreiben, ändere die Mappings auf"80:80"und"443:443"(setzt voraus, dass DSM diese Ports freigegeben hat, siehe Schritt 1).volumes– die bind-mounts./dataund./letsencryptliegen relativ zum Projektordner, also unter/volume1/docker/nginx-proxy-manager. Hier landen Datenbank, Konfiguration und Zertifikate – genau diese Ordner musst du später sichern.
Schritt 4: Projekt im Container Manager anlegen
- Öffne den Container Manager in DSM und wechsle links auf Projekt.
- Klicke auf Erstellen.
- Vergib als Projektnamen
nginx-proxy-manager. - Wähle als Pfad den Ordner
/volume1/docker/nginx-proxy-manager. - Bei der Quelle wählst du YAML-Code erstellen und fügst den Compose-Inhalt aus Schritt 3 ein. (Falls du die
docker-compose.ymlbereits im Ordner abgelegt hast, erkennt der Container Manager sie automatisch.) - Bestätige die folgenden Dialoge. Auf die Frage nach dem Web-Portal kannst du Nicht festlegen wählen – den Aufruf machen wir manuell.
- Der Container Manager lädt das Image herunter und startet den Container. Das dauert je nach Internetverbindung ein bis zwei Minuten.
Sobald das Projekt den Status Wird ausgeführt zeigt, läuft NPM.
Schritt 5: Admin-Oberfläche öffnen und Login ändern
Rufe die Verwaltungsoberfläche im Browser auf, über die IP deiner NAS und Port 81:
http://NAS-IP:81Ersetze NAS-IP durch die tatsächliche Adresse deiner Synology, z. B. http://192.168.1.50:81. Beim ersten Login verwendest du die Standard-Zugangsdaten:
- E-Mail:
admin@example.com - Passwort:
changeme
Wichtig: NPM zwingt dich direkt nach dem ersten Login, diese Daten zu ändern. Trage deine echte E-Mail-Adresse, deinen Namen und ein starkes, individuelles Passwort ein. Der Default-Login ist öffentlich bekannt – ändere ihn unbedingt sofort und veröffentliche den Admin-Port 81 niemals ungeschützt im Internet.
Schritt 6: Ersten Proxy-Host anlegen
Jetzt veröffentlichst du deinen ersten Dienst. Als Beispiel nehmen wir einen Dienst, der intern auf der NAS unter Port 8096 läuft (etwa Jellyfin).
- Wechsle im Menü auf Hosts → Proxy Hosts und klicke auf Add Proxy Host.
- Im Reiter Details trägst du unter Domain Names deine Subdomain ein, z. B.
jellyfin.deine-domain.de. Der passende DNS-Eintrag (A- oder CNAME-Record) muss auf deine öffentliche IP bzw. deinen DDNS-Namen zeigen. - Scheme: meist
http(interner Dienst). Forward Hostname / IP: die interne IP deiner NAS bzw. des Containers (z. B.192.168.1.50). Forward Port:8096. - Aktiviere bei Bedarf Block Common Exploits und (bei WebSocket-Diensten) Websockets Support.
- Speichere mit Save. Der Dienst ist nun über die Subdomain per HTTP erreichbar – im nächsten Schritt kommt HTTPS dazu.
Schritt 7: Let's-Encrypt-Zertifikat aktivieren (SSL)
Öffne den eben angelegten Proxy-Host erneut und wechsle in den Reiter SSL.
- Bei SSL Certificate wählst du Request a new SSL Certificate.
- Aktiviere Force SSL (leitet HTTP automatisch auf HTTPS um) und optional HTTP/2 Support.
- Trage deine E-Mail-Adresse ein und akzeptiere die Let's-Encrypt-Nutzungsbedingungen.
- Klicke auf Save. NPM fordert nun ein Zertifikat an.
Damit die HTTP-Challenge klappt, muss Let's Encrypt deinen Server über Port 80 von außen erreichen – deshalb die Portfreigabe 80→8080 im Router. Klappt das nicht (z. B. weil dein Provider Port 80 blockt oder du CGNAT hast), nutze stattdessen die DNS-Challenge: Beim Anfordern des Zertifikats wählst du Use a DNS Challenge, selektierst deinen DNS-Anbieter (z. B. Cloudflare) und hinterlegst einen API-Token. Damit brauchst du keine offenen Ports und kannst sogar Wildcard-Zertifikate (*.deine-domain.de) ausstellen.
Schritt 8: Verifikation – erster Test im Browser
Rufe deine Subdomain jetzt mit https:// auf:
https://jellyfin.deine-domain.deDer Dienst sollte erscheinen, das Schloss-Symbol im Browser muss ein gültiges Zertifikat anzeigen (Aussteller: Let's Encrypt). Prüfe zur Sicherheit:
- Ein Aufruf über
http://wird dank Force SSL automatisch aufhttps://umgeleitet. - Im NPM-Dashboard erscheint der Proxy-Host mit grünem SSL-Status.
- Unter SSL Certificates siehst du das Zertifikat samt Ablaufdatum – NPM erneuert es automatisch rechtzeitig.
Updates und Wartung
Ein Update von NPM machst du komfortabel über den Container Manager: Öffne das Projekt, stoppe es kurz und wähle Erstellen bzw. Image aktualisieren neu, damit das aktuelle :latest-Image geladen wird. Anschließend startest du das Projekt wieder. Alternativ über SSH im Projektordner:
sudo docker compose pull
sudo docker compose up -dDa Auto-Updates auch mal etwas brechen können, lohnt es sich, für den Produktivbetrieb einen festen Versions-Tag zu pinnen und Updates bewusst durchzuführen, statt blind :latest zu ziehen.
Backup
Das gesamte NPM-Setup steckt in zwei Ordnern: /volume1/docker/nginx-proxy-manager/data (Datenbank, Hosts, Konfiguration) und /volume1/docker/nginx-proxy-manager/letsencrypt (Zertifikate). Nimm den übergeordneten Ordner /volume1/docker/nginx-proxy-manager in deine Hyper-Backup-Aufgabe auf. Mit diesen beiden Ordnern stellst du NPM auf jeder anderen NAS in Minuten wieder her. Tipp: Vor größeren Änderungen das Projekt kurz stoppen, damit die SQLite-Datenbank konsistent gesichert wird.
Troubleshooting
- Admin-UI (Port 81) nicht erreichbar: Prüfe im Container Manager, ob das Projekt läuft. Schau in die Container-Logs – beim ersten Start initialisiert NPM die Datenbank, das kann eine Minute dauern.
- Zertifikat-Anforderung schlägt fehl: Fast immer ein Erreichbarkeitsproblem auf Port 80. Prüfe die Portfreigabe im Router (80→8080), den DNS-Eintrag der Subdomain und ob dein Provider Port 80 blockt. Im Zweifel die DNS-Challenge nutzen.
- Port-Konflikt beim Start (Bind-Fehler): Ein anderer Dienst (DSM-Webstation, DSM-Reverse-Proxy) belegt den Host-Port. Verschiebe die DSM-Ports oder wähle andere Host-Ports im Compose.
- 502 Bad Gateway: Forward Hostname/IP oder Forward Port des Proxy-Hosts stimmen nicht, oder der Zieldienst läuft nicht. Prüfe, ob du den internen Dienst direkt über IP:Port erreichst.
- DSM selbst nicht mehr erreichbar: Hast du DSM-Ports verschoben, erreichst du das Interface jetzt unter dem neuen Port (z. B.
https://NAS-IP:5001).
Hinweis zu DNS-Diensten: NPM braucht Port 53 nicht. Falls du parallel Pi-hole oder AdGuard Home betreibst, achte aber darauf, dass diese mit den DSM-eigenen Diensten auf Port 53 kollidieren können – das ist ein separates Thema, betrifft NPM aber nicht.
Fazit
Mit Nginx Proxy Manager hast du auf der Synology in etwa einer halben Stunde einen vollwertigen Reverse Proxy mit grafischer Verwaltung und automatischem HTTPS aufgesetzt. Der einzige echte Stolperstein ist der Port-Konflikt mit DSM – den löst du entweder durch Verschieben der DSM-Ports oder durch alternative Host-Port-Mappings. Danach veröffentlichst du jeden weiteren Dienst mit wenigen Klicks über eine saubere Subdomain und gültiges Zertifikat. Denk an das regelmäßige Backup der beiden Datenordner und daran, den Standard-Login sofort zu ändern.
Weitere Anleitungen in den Kategorien Synology / NAS und Docker.
Quellen: Nginx Proxy Manager Dokumentation, NginxProxyManager auf GitHub