Menuepunkt: Datenbank des Proxy Managers zuruecksetzen

Das Kommando gab es schon, den Weg dorthin nicht. Jetzt erreichbar unter
  Einstellungen -> NGINX Proxy Manager -> ">> Datenbank zuruecksetzen"
und zusaetzlich im Proxy-Hosts-Menue.

Der Dialog fuehrt durch die Sache, statt nur auszufuehren:
  * Gibt es noch keine Datenbank, sagt er das und nennt den kuerzeren
    Weg (Zugangsdaten setzen, Stack starten).
  * Fehlen NPM_ADMIN_EMAIL/-PASSWORD, weist er darauf hin, dass sonst
    wieder kein Konto entstuende, und bietet an, sie gleich einzutragen.
  * Vor dem Zuruecksetzen zeigt er Dateigroesse, was verloren geht
    (Konten, Proxy-Hosts, Weiterleitungen, Zugriffslisten) und was
    bleibt (Zertifikate), samt dem Konto, das danach entsteht.
  * Anschliessend bietet er an, den Stack gleich zu starten - ohne das
    entsteht das Konto naemlich noch nicht.

Beide Zweige durchgespielt: ohne Datenbank meldet er "Nichts
zurueckzusetzen", mit Datenbank legt er sie als database.sqlite.alt-<stamp>
beiseite.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-20 19:22:53 +02:00
co-authored by Claude Opus 5
parent ed768f049b
commit d06ecb2704
3 changed files with 83 additions and 3 deletions
+3 -1
View File
@@ -1176,7 +1176,9 @@ sieht dafür nach, ob `data/npm/data/database.sqlite` schon existiert:
| **noch keine Datenbank** | `config set NPM_ADMIN_EMAIL …` und `…_PASSWORD …`, dann `up` – der Container legt das Konto selbst an |
| **Datenbank vorhanden** | Konto im Browser anlegen (`cmk-manage.sh browser`), dieselben Daten anschließend mit `config set` eintragen |
Wer lieber sauber neu beginnt:
Wer lieber sauber neu beginnt – in der Oberfläche unter **Einstellungen →
NGINX Proxy Manager → „>> Datenbank zurücksetzen"** oder auch im
**Proxy-Hosts**-Menü, auf der Kommandozeile:
```bash
sudo ./scripts/cmk-manage.sh npm-reset
+3 -1
View File
@@ -1175,7 +1175,9 @@ situation – it checks whether `data/npm/data/database.sqlite` already exists:
| **no database yet** | `config set NPM_ADMIN_EMAIL …` and `…_PASSWORD …`, then `up` – the container creates the account itself |
| **database present** | create the account in the browser (`cmk-manage.sh browser`), then enter the same credentials with `config set` |
To start over cleanly:
To start over cleanly – in the interface under **Einstellungen → NGINX Proxy
Manager → ">> Datenbank zuruecksetzen"**, or from the **Proxy-Hosts** menu, or
on the command line:
```bash
sudo ./scripts/cmk-manage.sh npm-reset
+77 -1
View File
@@ -4754,7 +4754,8 @@ gui_settings_category() {
items+=("__wizard__" ">> Assistent: Edition, Version, Bezugsweg")
items+=("__test__" ">> Zugangsdaten jetzt pruefen (Registry + Downloadportal)") ;;
npm) items+=("__proxy__" ">> Proxy-Hosts anlegen/verwalten")
items+=("__npm__" ">> Proxy Manager: Stand und Admin-Port anzeigen") ;;
items+=("__npm__" ">> Proxy Manager: Stand und Admin-Port anzeigen")
items+=("__npmrst__" ">> Datenbank zuruecksetzen (Konto neu anlegen lassen)") ;;
backup) items+=("__jobs__" ">> Backup-Jobs verwalten") ;;
esac
items+=("back" "zurueck")
@@ -4765,6 +4766,7 @@ gui_settings_category() {
__get__) gui_image_get || true; continue ;;
__wizard__) gui_image_wizard || true; continue ;;
__proxy__) gui_proxy_menu || true; continue ;;
__npmrst__) gui_npm_reset || true; continue ;;
__test__) gui_image_test || true; continue ;;
__jobs__) gui_jobs_menu || true; continue ;;
__npm__) local f; f="$(mktemp)"
@@ -4852,6 +4854,78 @@ Trotzdem starten?
# ---------------------------------------------------------------------
# Proxy-Hosts im Menue
# ---------------------------------------------------------------------
# Datenbank des Proxy Managers zuruecksetzen, damit der Container das
# Konto beim naechsten Start neu aus NPM_ADMIN_EMAIL/-PASSWORD anlegt.
gui_npm_reset() {
local d="${NPM_DATA_DIR:-$PROJECT_DIR/data/npm/data}"
case "$d" in /*) : ;; *) d="$PROJECT_DIR/${d#./}" ;; esac
if ! npm_db_exists; then
ui_msg "Nichts zurueckzusetzen" \
"Der Proxy Manager hat noch keine Datenbank.
Es genuegt, die Zugangsdaten zu setzen und den Stack zu
starten - der Container legt das Konto daraus selbst an:
Einstellungen -> NGINX Proxy Manager
NPM_ADMIN_EMAIL
NPM_ADMIN_PASSWORD
danach: Stack steuern -> Stack starten"
return 0
fi
# Ohne Zugangsdaten entstuende beim naechsten Start wieder kein Konto
if [ -z "${NPM_ADMIN_EMAIL:-}" ] || [ -z "${NPM_ADMIN_PASSWORD:-}" ]; then
if ui_yesno "Zugangsdaten fehlen" \
"NPM_ADMIN_EMAIL bzw. NPM_ADMIN_PASSWORD sind nicht gesetzt.
Ohne sie entsteht beim naechsten Start wieder KEIN Konto -
der Proxy Manager zeigt dann erneut den Einrichtungsassistenten.
Jetzt eintragen?"; then
gui_settings_edit NPM_ADMIN_EMAIL
gui_settings_edit NPM_ADMIN_PASSWORD
load_env "${ENV_FILE:-$PROJECT_DIR/.env}"
fi
if [ -z "${NPM_ADMIN_EMAIL:-}" ] || [ -z "${NPM_ADMIN_PASSWORD:-}" ]; then
ui_msg "Abgebrochen" "Ohne Zugangsdaten hat das Zuruecksetzen keinen Zweck."
return 0
fi
fi
local groesse
groesse="$(du -h "$d/database.sqlite" 2>/dev/null | cut -f1 || echo '?')"
ui_yesno "Datenbank zuruecksetzen" \
"Die Datenbank wird beiseitegelegt - umbenannt, nicht geloescht:
$d/database.sqlite ($groesse)
${C_BLD}Das ist danach weg${C_RST}
Konten, Proxy-Hosts, Weiterleitungen, Zugriffslisten
${C_BLD}Das bleibt${C_RST}
Zertifikate (Let's Encrypt und eigene)
Beim naechsten Start legt der Container das Konto neu an:
${NPM_ADMIN_EMAIL}
Proxy-Hosts lassen sich anschliessend unter 'Proxy-Hosts'
in einem Durchgang neu anlegen.
Fortfahren?" || return 0
ui_run "Datenbank zuruecksetzen" bash -c \
"cd '$PROJECT_DIR' && NO_COLOR=1 '$SELF' -y npm-reset"
if ui_yesno "Jetzt starten?" \
"Damit das Konto entsteht, muss der Proxy Manager neu starten.
Stack jetzt starten?"; then
ui_run "Stack starten" bash -c "cd '$PROJECT_DIR' && NO_COLOR=1 '$SELF' -y up"
fi
load_env "${ENV_FILE:-$PROJECT_DIR/.env}"
}
gui_proxy_menu() {
while :; do
local sel
@@ -4867,6 +4941,7 @@ Ziel : ${PROXY_FORWARD_HOST:-127.0.0.1}:${PROXY_FORWARD_PORT:-5000}" \
certs "Vorhandene Zertifikate anzeigen" \
del "Proxy-Host loeschen" \
status "Anmeldung pruefen" \
reset "Datenbank zuruecksetzen (Konto neu anlegen lassen)" \
back "zurueck")" || return 0
case "$sel" in
anlegen) gui_proxy_add || true ;;
@@ -4881,6 +4956,7 @@ Ziel : ${PROXY_FORWARD_HOST:-127.0.0.1}:${PROXY_FORWARD_PORT:-5000}" \
ui_text "Zertifikate" "$f2"; rm -f "$f2" ;;
del) gui_proxy_del || true ;;
status) ui_run "Anmeldung pruefen" bash -c "cd '$PROJECT_DIR' && NO_COLOR=1 '$SELF' proxy status" ;;
reset) gui_npm_reset || true ;;
back) return 0 ;;
esac
done