Nginx Proxy Manager-Installation – 2-minütige Einrichtungsanleitung
Ihre Dienste befinden sich derzeit unter hässlichen Adressen wie 192.168.1.50:8080. Nginx Proxy Manager wandelt sie in saubere Namen wie app.yourdomain.com mit kostenlosem HTTPS um – installiert mit einer Docker Compose-Datei und verwaltet über ein einfaches Web-Panel statt handgeschriebener Konfigurationsdateien.
📑Kapitel
- Was ein Reverse-Proxy macht – eine Tür für alle Ihre Dienste
- Was Sie vor dem Start benötigen: Docker, eine Domäne und erreichbare Ports
- Verweisen Sie Ihr Domain-DNS auf den Server, bevor Sie etwas installieren
- Erstellen Sie den Ordner und die Datei „docker-compose.yml“
- Starten Sie Nginx Proxy Manager mit einem Befehl
- Erste Anmeldung – der Schritt des Administratorkontos, den jeder falsch macht
- Erstellen Sie Feld für Feld Ihren ersten Proxy-Host
- Holen Sie sich das kostenlose Lets Encrypt HTTPS-Zertifikat und aktivieren Sie „SSL erzwingen“
📋 Übersicht und Schritt-für-Schritt-Anleitung
Was Sie vor dem Start benötigen
Drei Dinge müssen vorhanden sein, bevor Nginx Proxy Manager (NPM) funktionieren kann. Erstens ein Linux-Server oder PC, auf dem Docker und Docker Compose bereits installiert sind und funktionieren – NPM läuft als Container, nicht als normales Programm. Zweitens ein Domainname, dessen DNS Sie bearbeiten können, da jeder Dienst eine eigene Subdomain erhält. Drittens muss Ihr Router oder Ihre Cloud-Firewall in der Lage sein, die Ports 80 und 443 an diesen Computer weiterzuleiten.
Richten Sie Ihr Domain-DNS zuerst auf den Server
NPM leitet den Datenverkehr nach Namen weiter und Lets Encrypt stellt Zertifikate nur für Namen aus, die nachweislich auf Ihren Computer verweisen – der Name muss also aufgelöst werden, bevor Sie etwas darauf aufbauen. Fügen Sie bei Ihrem Registrar oder DNS-Host einen A-Eintrag hinzu: Der Name ist nur das Subdomain-Wort (z. B. app) und der Wert ist die öffentliche IP-Adresse Ihres Servers. Jeder Dienst erhält seinen eigenen Eintrag und alle können auf dieselbe IP verweisen. NPM trennt die Dienste später nach Namen. Stellen Sie beim Testen eine kurze TTL ein, z. B. 300 Sekunden, damit Fehler in Minuten statt in Stunden verschwinden.
Beweisen Sie es, bevor Sie fortfahren: Überprüfen Sie, ob der Name von einem externen Netzwerk (z. B. von Ihrem Telefon mit ausgeschaltetem WLAN) in Ihre öffentliche IP-Adresse aufgelöst wird. Das Anfordern eines Zertifikats gegen defektes DNS ist eine Verschwendung von Lets-Encrypt-Versuchen, und wiederholte Fehler können Ihre Geschwindigkeit stundenlang einschränken. Die Reihenfolge ist wichtig: DNS zuerst, Proxy-Host dann, Zertifikat drittens.
Erstellen Sie den Ordner und die Compose-Datei
Erstellen Sie einen Ordner für NPM auf dem Server und speichern Sie die Datei unten darin als docker-compose.yml. Diese einzelne Datei ist die vollständige Installation. Der Bildname ist das offizielle Community-Bild. Die Ports 80 und 443 sind die öffentlichen Türen, Port 81 ist das Admin-Panel und auf den beiden Volumes befindet sich Ihr gesamtes Setup: ./data enthält die Datenbank mit allen Ihren Proxy-Hosts und ./letsencrypt enthält Ihre Zertifikate. Wenn Sie diese beiden Ordner verlieren, verlieren Sie das gesamte Setup. Sichern Sie sie, sobald die Dinge ausgeführt werden.
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Die Zeile restart: unlimited bringt NPM nach einem Neustart automatisch zurück.
Starten Sie den Nginx-Proxy-Manager
Führen Sie in diesem Ordner den Startbefehl aus. Docker lädt das Image herunter und startet den Container im Hintergrund.
docker compose up -d
Überprüfen Sie, ob es läuft:
docker ps
Sie sollten den Container mit den Ports 80, 443 und 81 aufgelistet sehen. Auf einem kleinen Server dauert der erste Start ein bis zwei Minuten, während die Datenbank erstellt wird. Wenn der Container immer wieder neu startet, zeigen die Protokolle den Grund im Klartext an:
docker compose logs
In neun von zehn Fällen handelt es sich bei einer Neustartschleife um einen Port, der bereits von etwas anderem auf dem Host verwendet wird – normalerweise einem alten, noch laufenden Webserver.
Erster Login – Sichern Sie sofort das Admin-Konto
Öffnen Sie das Admin-Panel in einem Browser in Ihrem eigenen Netzwerk:
http://your-server-ip:81
Tun Sie dies in der ersten Minute. Abhängig vom Build fordert NPM Sie entweder dazu auf, die bekannten Administratordaten für die erste Anmeldung durch Ihre eigene E-Mail-Adresse und ein sicheres Passwort zu ersetzen, oder – bei neueren Builds ohne Standardkonto – erstellt die erste Person, die die Admin-Seite öffnet, den Administrator. In jedem Fall ist die Regel dieselbe: Richten Sie Ihr eigenes Administratorkonto ein, sobald der Container gestartet wird, bevor Sie etwas anderes erstellen, und verwenden Sie ein echtes Postfach – NPM-E-Mails, die sich mit Zertifikatproblemen befassen.
Erstellen Sie Ihren ersten Proxy-Host
Öffnen Sie in NPM Hosts → Proxy-Hosts → Proxy-Host hinzufügen und füllen Sie das Formular als einen Satz aus – „Dieser Name geht an diesen internen Dienst“:
Domänennamen: app.yourdomain.com – der genaue öffentliche Name aus Schritt 2, der bereits auf Ihren Server aufgelöst werden muss.
Schema: http für die meisten Heim- und Büro-Apps. Das Schema beschreibt die Verbindung zwischen NPM und dem internen Dienst, nicht die Nutzung durch Besucher – NPM übernimmt die öffentliche Verschlüsselung an der Tür. Wählen Sie hier https nur aus, wenn die interne App selbst HTTPS bereitstellt.
Hostname/IP weiterleiten: die interne Adresse des Dienstes, zum Beispiel 192.168.1.50.
Weiterleitungsport: der Port, auf dem der Dienst tatsächlich lauscht, zum Beispiel 8080 – nicht 80 oder 443; Das sind die Türen von NPM, nicht die des Dienstes.
Aktivieren Sie Häufige Exploits blockieren und dann Speichern. Testen Sie es sofort, indem Sie den Namen in einem Browser öffnen – idealerweise auf Ihrem Telefon mit ausgeschaltetem WLAN, damit Sie den echten öffentlichen Pfad testen.
localhost falsch (im NPM-Container bedeutet localhost NPM selbst) – verwenden Sie die LAN-IP des Servers mit dem veröffentlichten Port oder stellen Sie beide Container in dasselbe Docker-Netzwerk und verwenden Sie den Containernamen.Holen Sie sich das kostenlose Lets Encrypt HTTPS-Zertifikat
Tun Sie dies erst, wenn der einfache Host aus Schritt 6 bereits funktioniert. HTTPS auf einem defekten Host liefert Ihnen einen defekten Host mit einem Zertifikat und doppelt so vielen Stellen, an denen Sie nach dem Fehler suchen können. Öffnen Sie denselben Proxy-Host, gehen Sie zur Registerkarte SSL, stellen Sie SSL-Zertifikat auf Neues SSL-Zertifikat anfordern ein, aktivieren Sie SSL erzwingen und HTTP/2-Unterstützung, stimmen Sie den Nutzungsbedingungen von Lets Encrypt zu und speichern Sie. Laden Sie die Seite neu – der Browser sollte nun das Vorhängeschloss auf https anzeigen.
So funktioniert es: Lets Encrypt beweist, dass Sie den Namen kontrollieren, indem es Ihren Server über das öffentliche Internet an Port 80 auffordert, ein einmaliges Token anzuzeigen (die HTTP-01-Challenge). Aus diesem Grund sind DNS, die auf Sie zeigt, und ein erreichbarer Port 80 nicht verhandelbar. Wenn einer von beiden fehlschlägt, schlägt die Anfrage fehl, und der Fehler liegt im Setup, niemals in Lets Encrypt. SSL erzwingen leitet jeden http-Besucher automatisch zu https weiter; ohne sie bleibt die unverschlüsselte Tür neben der verschlüsselten offen.
🏷️Themensuchvariablen und Schlüsselwörter
🎙️ Vollständiges Transkript – zum Erweitern antippen
__TOK_34__
__TOK_35__
__TOK_36__
❓ Häufig gestellte Fragen
Ist dieses Tutorial zu 100 % kostenlos?
__TOK_37__
Können Anfänger dieser Anleitung folgen?
__TOK_38__
Wo kann ich Fragen stellen, wenn ich nicht weiterkomme?
__TOK_39__
🚀 Sehen Sie sich das vollständige Tutorial auf YouTube an
__TOK_40__
__TOK_41__
▶️ Vollständiges Video ansehen