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:

  1. Logs des Containers
docker logs nginx-proxy-manager-app-1
  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.