Passwort-Reset im NGINX Proxy Manager (Docker-Setup)
In diesem Artikel erkläre ich, wie man das Passwort eines Benutzers im NGINX Proxy Manager zurücksetzt, wenn dieser in einem Docker-Container läuft und die Authentifizierungsdaten in einer SQLite-Datenbank gespeichert sind.
Voraussetzungen
- Zugriff auf den Server per SSH.
- Docker ist installiert und der NGINX Proxy Manager läuft in einem Container.
- Grundkenntnisse im Umgang mit SQLite.
Schritt-für-Schritt-Anleitung
1. Identifiziere den laufenden Docker-Container
Verwende den folgenden Befehl, um die Container zu identifizieren:
docker ps
Notiere dir den Namen oder die ID des NGINX Proxy Manager-Containers, z. B. nginx-proxy-manager-app-1
.
2. SQLite-Datenbank aus dem Container kopieren
Kopiere die Datenbank-Datei aus dem Container auf den Host:
docker cp nginx-proxy-manager-app-1:/data/database.sqlite ./database.sqlite
3. SQLite-Editor auf dem Host verwenden
Falls SQLite noch nicht installiert ist, installiere es:
sudo apt update
sudo apt install sqlite3
Öffne die Datenbank:
sqlite3 database.sqlite
4. Passwort-Hash aktualisieren
4.1 Passwort-Hash generieren
Erstelle einen neuen bcrypt
-Hash für das gewünschte Passwort. Dies kann über Python erfolgen:
import bcrypt
password = "4ever".encode('utf-8') # Ersetze NEUES_PASSWORT durch dein gewünschtes Passwort
hashed = bcrypt.hashpw(password, bcrypt.gensalt())
print(hashed.decode())
Notiere den generierten Hash.
4.2 Hash in der Datenbank aktualisieren
Führe den folgenden Befehl in SQLite aus, um das Passwort zu aktualisieren:
UPDATE auth SET secret = 'NEUER_HASH' WHERE id = 1;
Ersetze NEUER_HASH
durch den generierten Hash.
Prüfe die Änderung:
SELECT * FROM auth WHERE id = 1;
5. Datenbank zurück in den Container kopieren
Nachdem die Änderungen vorgenommen wurden, kopiere die bearbeitete Datenbank zurück in den Container:
docker cp ./database.sqlite nginx-proxy-manager-app-1:/data/database.sqlite
6. Container neu starten
Starte den Container neu, damit die Änderungen aktiv werden:
docker restart nginx-proxy-manager-app-1
7. Anmeldung testen
Melde dich mit der entsprechenden E-Mail-Adresse und dem neuen Passwort an:
- E-Mail: Die in der
user
-Tabelle gespeicherte Adresse, z. B.[email protected]
. - Passwort: Das neue Passwort, das du generiert hast.
Fehlersuche
Falls der Login weiterhin nicht funktioniert, überprüfe:
- Logs des Containers
docker logs nginx-proxy-manager-app-1
- E-Mail-Adresse und Benutzerstatus Stelle sicher, dass die E-Mail korrekt ist und der Benutzer nicht gelöscht wurde:
SELECT * FROM user WHERE id = 1;
SELECT * FROM auth WHERE id = 1;
Fazit
Mit diesen Schritten kannst du das Passwort im NGINX Proxy Manager erfolgreich zurücksetzen. Diese Methode ist besonders nützlich, wenn du keinen Zugriff auf die Weboberfläche hast.