Schalter: NGINX Proxy Manager abschaltbar (externer NGINX)
Wer die HTTPS-Terminierung bereits mit einem NGINX auf einem anderen
System loest, braucht den Container nicht. NPM_ENABLED=off sorgt dafuer,
dass er gar nicht erst angelegt wird: compose bekommt dann nur noch den
Checkmk-Dienst genannt.
NPM_ENABLED=off -> compose up -d checkmk
NPM_ENABLED=on -> compose up -d checkmk nginx-proxy-manager
Das gilt auch fuer "pull" - abgeschaltet wird nicht einmal das Image
geladen. Beim Abschalten wird ein vorhandener Container gestoppt UND
entfernt, damit ihn weder eine Restart-Regel noch ein Reboot wieder
hochzieht.
Die Daten bleiben in jedem Fall erhalten: Konfiguration, Datenbank und
Zertifikate liegen in den Bind-Mounts unter ./data/npm, nicht im
Container. Vor dem Abschalten werden beide Verzeichnisse mit Groesse
angezeigt; beim Einschalten wird die vorhandene Konfiguration samt
Zertifikaten unveraendert wieder aufgenommen.
Bedienung:
- Menuepunkt "Proxy Manager betreiben" unter Einstellungen -> npm
- cmk-manage.sh npm-enable [on|off] (ohne Argument: Stand anzeigen)
- config set NPM_ENABLED off
"npm-enable off" gibt gleich die noetige Firewall-Regel und eine
Beispielkonfiguration fuer den externen NGINX aus - Port 5000 muss dann
fuer dessen IP erreichbar sein. Der Agent-Receiver auf Port 8000 ist
davon nicht betroffen, den sprechen die Agents ohnehin direkt an.
Damit der Schalter auch nach einem Reboot gilt, ruft die von install.sh
erzeugte systemd-Unit jetzt cmk-manage.sh auf statt compose direkt.
Bei Quadlet wird die Unit nginx-proxy-manager.container uebersprungen
und entfernt, solange der Schalter auf "off" steht.
Verifiziert mit einem compose-Stub, dass in beiden Schalterstellungen
genau die erwarteten Dienste uebergeben werden, sowie ueber das Menue.
Dokumentiert als Abschnitt 12.4 in beiden Sprachfassungen.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+12
-6
@@ -242,10 +242,10 @@ fi
|
||||
# systemd
|
||||
# ---------------------------------------------------------------------
|
||||
install_compose_unit() {
|
||||
local compose_bin
|
||||
detect_compose
|
||||
compose_bin="${COMPOSE_CMD[*]}"
|
||||
|
||||
log "Verwendetes Compose-Kommando: ${COMPOSE_CMD[*]}"
|
||||
# Die Unit ruft bewusst cmk-manage.sh auf statt compose direkt: nur so
|
||||
# werden NPM_ENABLED und der Start aller Sites beruecksichtigt.
|
||||
log "Richte systemd-Unit 'checkmk-stack.service' ein ..."
|
||||
cat >/etc/systemd/system/checkmk-stack.service <<EOF
|
||||
[Unit]
|
||||
@@ -262,10 +262,10 @@ RemainAfterExit=yes
|
||||
WorkingDirectory=$PROJECT_DIR
|
||||
EnvironmentFile=$PROJECT_DIR/.env
|
||||
TimeoutStartSec=0
|
||||
ExecStart=/bin/sh -c '$compose_bin up -d'
|
||||
ExecStart=$PROJECT_DIR/scripts/cmk-manage.sh -y up
|
||||
ExecStartPost=$PROJECT_DIR/scripts/cmk-manage.sh start-all-sites
|
||||
ExecStop=/bin/sh -c '$compose_bin down'
|
||||
ExecReload=/bin/sh -c '$compose_bin up -d'
|
||||
ExecStop=$PROJECT_DIR/scripts/cmk-manage.sh -y down
|
||||
ExecReload=$PROJECT_DIR/scripts/cmk-manage.sh -y up
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -280,6 +280,12 @@ install_quadlet_units() {
|
||||
[ -d /etc/containers/systemd ] || mkdir -p /etc/containers/systemd
|
||||
local f
|
||||
for f in "$PROJECT_DIR"/systemd/quadlet/*.container; do
|
||||
# Proxy Manager abgeschaltet? Dann auch keine Unit dafuer.
|
||||
if [ "$(basename "$f")" = "nginx-proxy-manager.container" ] && ! npm_enabled; then
|
||||
log "NPM_ENABLED=off - ueberspringe nginx-proxy-manager.container"
|
||||
rm -f /etc/containers/systemd/nginx-proxy-manager.container
|
||||
continue
|
||||
fi
|
||||
sed -e "s|__PROJECT_DIR__|$PROJECT_DIR|g" \
|
||||
-e "s|__CMK_IMAGE__|${CMK_IMAGE:-docker.io/checkmk/check-mk-raw:2.3.0-latest}|g" \
|
||||
-e "s|__NPM_IMAGE__|${NPM_IMAGE:-docker.io/jc21/nginx-proxy-manager:2}|g" \
|
||||
|
||||
Reference in New Issue
Block a user