Der Nginx Proxy Manager (NPM) ermöglicht die einfache Verwaltung von Reverse Proxies, SSL-Zertifikaten und Weiterleitungen über eine intuitive Web-Oberfläche. Mit Docker Compose kann NPM schnell auf Linux aufgesetzt werden, inklusive persistenter Volumes für Konfigurationen, Datenbanken und SSL-Zertifikate sowie sicherer Netzwerke. Dieses Tutorial zeigt, wie ein stabiler, updatefähiger Nginx Proxy Manager Stack betrieben wird.
Grundkomponenten eines Nginx Proxy Manager Stacks
Ein typischer NPM-Stack besteht aus:
- Nginx Proxy Manager: Container für die Web UI, Reverse Proxy und Zertifikatsverwaltung
- Datenbank: MariaDB oder MySQL zur Speicherung von Benutzern, Hosts und Zertifikaten
- Volumes: Persistente Speicherung von Datenbank, Konfiguration und SSL-Zertifikaten
- Netzwerke: Interne Kommunikation zwischen NPM und Datenbank
Volumes für Persistenz
Persistente Volumes sichern die Konfigurationen, Zertifikate und Datenbankinhalte, sodass sie nach Container-Neustarts erhalten bleiben.
volumes:
npm_data:
npm_letsencrypt:
npm_db:
npm_datafür Nginx Proxy Manager interne Konfigurationen und Logsnpm_letsencryptfür Let’s Encrypt Zertifikatenpm_dbfür die MariaDB-Datenbank- Die Volumes bleiben auch nach Updates oder Neustarts der Container erhalten
Netzwerke für interne Kommunikation
Ein separates Netzwerk ermöglicht sichere Kommunikation zwischen Nginx Proxy Manager und der Datenbank.
networks:
npm_net:
- Container kommunizieren über
npm_net - Erleichtert Port-Mapping für Web UI (HTTP/HTTPS) und Proxy-Services
Beispiel: docker-compose.yml für Nginx Proxy Manager
version: '3.8'
services:
npm:
image: jc21/nginx-proxy-manager:latest
container_name: npm
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "81:81"
environment:
DB_MYSQL_HOST: db
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: npm
DB_MYSQL_PASSWORD_FILE: /run/secrets/db_password
DB_MYSQL_NAME: npm
volumes:
- npm_data:/data
- npm_letsencrypt:/etc/letsencrypt
networks:
- npm_net
depends_on:
- db
secrets:
- db_password
db:
image: mariadb:11
container_name: npm_db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
MYSQL_DATABASE: npm
MYSQL_USER: npm
MYSQL_PASSWORD_FILE: /run/secrets/db_password
volumes:
- npm_db:/var/lib/mysql
networks:
- npm_net
secrets:
- db_root_password
- db_password
secrets:
db_root_password:
file: ./db_root_password.txt
db_password:
file: ./db_password.txt
volumes:
npm_data:
npm_letsencrypt:
npm_db:
networks:
npm_net:
Erklärungen zur Compose-Datei
- Nginx Proxy Manager: Läuft auf Ports 80/443 für Proxy und 81 für Web UI, verwendet Volumes für Konfiguration und Zertifikate
- Datenbank: MariaDB Container, persistente Speicherung über
npm_db, Passwörter über Secrets - Volumes: Persistente Speicherung für Konfigurationen, Zertifikate und Datenbank
- Netzwerk:
npm_netverbindet NPM mit der Datenbank - Secrets: Sensible Daten wie Passwörter nicht im Klartext speichern
- depends_on: NPM startet erst, wenn die Datenbank erreichbar ist
Start und Verwaltung des Nginx Proxy Manager
Starten Sie den Stack mit:
docker-compose up -d
Zum Stoppen und Entfernen aller Container, Netzwerke und Volumes:
docker-compose down -v
Best Practices
- Volumes für persistente Daten verwenden
- Separate Netzwerke für interne Kommunikation
- Secrets für Passwörter einsetzen
- Let’s Encrypt über die Web UI aktivieren
- Versionierte Docker Images verwenden für Updates und Rollbacks
- Regelmäßige Backups der Volumes und Zertifikate
- Externe Ports nur nach Bedarf öffnen
- Monitoring und Logging aktivieren
Praxisbeispiele
Nginx Proxy Manager starten
docker-compose up -d
Logs überwachen
docker-compose logs -f npm
docker-compose logs -f db
Neuen Proxy hinzufügen
Öffnen Sie die Web UI unter http://HOST_IP:81, Login mit Standarduser und Passwort, und erstellen Sie neue Proxy Hosts mit automatischem SSL
Updatefähigkeit
Versionierte Docker Images ermöglichen Updates des Nginx Proxy Managers ohne Verlust von Konfigurationen oder Zertifikaten. Persistente Volumes sichern alle Einstellungen und Daten.
docker-compose pull
docker-compose up -d
Zusammenfassung
Mit Docker Compose lässt sich Nginx Proxy Manager schnell, stabil und updatefähig auf Linux betreiben. Persistente Volumes, Netzwerke und Secrets sorgen für Sicherheit, Wartbarkeit und kontinuierliche Verfügbarkeit. Die Web UI erleichtert die Verwaltung von Reverse Proxies und SSL-Zertifikaten, während Versionierte Images Updates und Rollbacks zuverlässig ermöglichen.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











