Die Synology bringt zwar einen ReverseProxy mit, aber der NPM bietet einige Vorteile z.b. das man seine Subdomains nur an einer Stelle verwaltet inkl. der Zertifikate, man kann HTTPS einfacher erzwingen und es zeigen die offenen Ports nicht auf die Synology sondern auf einen Container (Sicherheit).
Wer noch keine Domain hat die er mit Dyndns nutzen kann sollte mal bei https://www.do.de/ gucken.
Eine Domain die auf den Router zeigt
Port 80/443 werden vom Router zum NPM weiter geleitet auf die VM oder den RPI, wo ihr den NPM laufen lasst.
Nachdem das erledigt ist legen wir nun die Ordner auf der Freigabe an, wer dem Beispiel gefolgt ist verbindet sich nun per SSH auf seine VM oder den RPI und legt die Verzeichnisse an
mkdir /syno/nginx mkdir /syno/nginx/data mkdir /syno/nginx/data/letsencrypt mkdir /syno/nginx/data/mysql
nun öffnen wir den Portainer und legen einen Stack an
Name: nginxproxymanager
version: '3' services: app: image: 'jc21/nginx-proxy-manager:latest' network_mode: bridge ports: - '80:80' - '81:81' //das ist der Port worüber die Verwaltungsoberfläche aufgerufen wird, die erste Zahl kann nach eigenem Wunsch geändert werden - '443:443' environment: - DB_MYSQL_HOST=db - DB_MYSQL_PORT=3306 - DB_MYSQL_USER=npm //kann geänder werden muss dann aber auch unten unter mysql angepasst werden - DB_MYSQL_PASSWORD=npm //kann geänder werden muss dann aber auch unten unter mysql angepasst werden - DB_MYSQL_DATABASE=npm //kann geänder werden muss dann aber auch unten unter mysql angepasst werden volumes: - /syno/nginx/data:/data - /syno/nginx/data/letsencrypt:/etc/letsencrypt healthcheck: test: ["CMD", "/bin/check-health"] interval: 10s timeout: 3s restart: unless-stopped db: image: 'yobasystems/alpine-mariadb:latest' network_mode: bridge environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' //siehe oben MYSQL_USER: 'npm' //siehe oben MYSQL_PASSWORD: 'npm' //siehe oben volumes: - /syno/nginx/data/mysql:/var/lib/mysql restart: unless-stopped
Die Passwörter (es darf kein $ im Passwort sein), der User und der DB Name kann geändert werden, also alles wo im Code npm steht.
Danach lässt sich der NPM, je nachdem wo ihr ihn nach unserem Beispiel installiert habt mit
http://192.168.2.20:81
aufrufen.
Die Standard Anmeldung lautet
Email: admin@example.com Password: changeme
Diese sollten sofort geändert werden nach der ersten Anmeldung
Die eigenen Host (Subdomains) lassen sich nun unter Proxy Hosts hinzufügen.