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>
158 lines
6.8 KiB
Bash
158 lines
6.8 KiB
Bash
# =====================================================================
|
|
# Checkmk + NGINX Proxy Manager - zentrale Konfiguration
|
|
# Kopieren nach ".env" und anpassen: cp .env.example .env
|
|
#
|
|
# Diese Datei ist die EINZIGE Quelle der Wahrheit. Sie wird gelesen von
|
|
# * docker-compose.yml / podman-compose (Variablen-Ersetzung)
|
|
# * der systemd-Unit (EnvironmentFile=)
|
|
# * scripts/cmk-manage.sh (source)
|
|
# Das Verwaltungsskript SCHREIBT hier nur hinein (z.B. CMK_IMAGE),
|
|
# es haelt keine zweite Konfiguration.
|
|
#
|
|
# Werte mit Leerzeichen bitte in Anfuehrungszeichen setzen.
|
|
# =====================================================================
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Container-Runtime (leer = automatische Erkennung: docker oder podman)
|
|
# ---------------------------------------------------------------------
|
|
CMK_RUNTIME=
|
|
|
|
# =====================================================================
|
|
# CHECKMK-IMAGE
|
|
# =====================================================================
|
|
# Das ist der einzige Wert, den compose/systemd tatsaechlich verwendet.
|
|
#
|
|
# IMMER VOLLQUALIFIZIERT ANGEBEN (mit Registry-Praefix)!
|
|
# Podman loest kurze Namen ueber "unqualified-search-registries" auf -
|
|
# auf RHEL steht dort registry.access.redhat.com an erster Stelle. Ein
|
|
# kurzer Name wie "checkmk/check-mk-enterprise" wird deshalb dort gesucht
|
|
# und nicht gefunden ("image not known") oder es erscheint eine Abfrage.
|
|
#
|
|
# Beispiele:
|
|
# docker.io/checkmk/check-mk-raw:2.3.0-latest
|
|
# registry.checkmk.com/enterprise/check-mk-enterprise:2.3.0p23
|
|
# localhost/checkmk/check-mk-enterprise:2.3.0p23 (aus Tarball geladen)
|
|
CMK_IMAGE=docker.io/checkmk/check-mk-raw:2.3.0-latest
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Nur fuer den Image-Downloader: scripts/cmk-manage.sh image ...
|
|
# Daraus wird CMK_IMAGE ermittelt und oben automatisch eingetragen.
|
|
# ---------------------------------------------------------------------
|
|
# Edition:
|
|
# raw Docker Hub, frei (bis 2.4)
|
|
# community Docker Hub, frei (ab 2.5, Nachfolger von "raw")
|
|
# enterprise NUR registry.checkmk.com oder Tarball - NICHT auf Docker Hub!
|
|
# pro Docker Hub (ab 2.5, Nachfolger von "enterprise")
|
|
# cloud Docker Hub
|
|
# managed Docker Hub (bis 2.4)
|
|
# ultimate Docker Hub (ab 2.5)
|
|
# ultimatemt Docker Hub (ab 2.5, Nachfolger von "managed")
|
|
CMK_EDITION=raw
|
|
|
|
# Konkrete Version. Fuer den Tarball-Download muss eine exakte Version
|
|
# angegeben werden (z.B. 2.3.0p23), "-latest" funktioniert dort nicht.
|
|
CMK_VERSION=2.3.0-latest
|
|
|
|
# --- Bezugsweg 1: private Registry (Enterprise) ----------------------
|
|
# Zugangsdaten aus dem Checkmk-Kundenportal (portal.checkmk.com)
|
|
CMK_REGISTRY=registry.checkmk.com
|
|
CMK_REGISTRY_USER=
|
|
CMK_REGISTRY_PASSWORD=
|
|
|
|
# --- Bezugsweg 2: Image-Tarball vom Download-Portal ------------------
|
|
# Zugangsdaten der Checkmk-Downloadseite. Der Downloader probiert die
|
|
# ueblichen Dateinamen unter <BASEURL>/<version>/ durch; mit
|
|
# CMK_DOWNLOAD_URL laesst sich die vollstaendige URL fest vorgeben.
|
|
CMK_DOWNLOAD_BASEURL=https://download.checkmk.com/checkmk
|
|
CMK_DOWNLOAD_URL=
|
|
CMK_DOWNLOAD_USER=
|
|
CMK_DOWNLOAD_PASSWORD=
|
|
|
|
# =====================================================================
|
|
# CHECKMK-LAUFZEIT
|
|
# =====================================================================
|
|
CMK_CONTAINER_NAME=checkmk
|
|
CMK_HOSTNAME=checkmk
|
|
|
|
# Site, die der Container beim Start automatisch anlegt/startet.
|
|
# Bei einer Migration hier den Namen der importierten Site eintragen!
|
|
CMK_SITE_ID=cmk
|
|
|
|
# Initiales Passwort fuer den Benutzer "cmkadmin" (nur bei Neuanlage relevant)
|
|
CMK_PASSWORD=bitte-aendern
|
|
|
|
# Livestatus via TCP (Port 6557) fuer verteilte Umgebungen: on / off
|
|
CMK_LIVESTATUS_TCP=off
|
|
|
|
# Optionaler SMTP-Relay fuer Benachrichtigungen
|
|
MAIL_RELAY_HOST=
|
|
|
|
# Zeitzone
|
|
TZ=Europe/Berlin
|
|
|
|
# =====================================================================
|
|
# NGINX PROXY MANAGER (HTTPS: Let's Encrypt ODER selbstsigniert)
|
|
# =====================================================================
|
|
# Ebenfalls vollqualifiziert - siehe Hinweis oben zu Podman!
|
|
# Soll der Proxy-Manager-Container ueberhaupt betrieben werden?
|
|
# on = wird gebaut und gestartet (Vorgabe)
|
|
# off = wird weder angelegt noch gestartet - sinnvoll, wenn die
|
|
# HTTPS-Terminierung ein bereits vorhandener NGINX auf einem
|
|
# anderen System uebernimmt. Der leitet dann auf Port 5000 weiter.
|
|
# Die Daten unter ./data/npm bleiben beim Abschalten erhalten.
|
|
# Umschalten ueber das Menue oder: ./scripts/cmk-manage.sh npm-enable off
|
|
NPM_ENABLED=on
|
|
|
|
NPM_IMAGE=docker.io/jc21/nginx-proxy-manager:2
|
|
NPM_CONTAINER_NAME=nginx-proxy-manager
|
|
NPM_DISABLE_IPV6=true
|
|
|
|
# Port der Adminoberflaeche. Vorgabe im Image ist fest 81; ein abweichender
|
|
# Port wird ueber einen zusaetzlichen nginx-Server bereitgestellt.
|
|
# NICHT von Hand aendern - dabei muss die nginx-Zusatzdatei mitgezogen werden:
|
|
# ./scripts/cmk-manage.sh npm-port 10443
|
|
# oder im Menue unter "Einstellungen".
|
|
NPM_ADMIN_PORT=81
|
|
|
|
# =====================================================================
|
|
# TERMINAL-BROWSER (lokale Bedienung des Proxy Managers)
|
|
# Fuer den Fall, dass Port 81 von aussen nicht erreichbar ist.
|
|
# Aufruf: ./scripts/cmk-manage.sh browser
|
|
# =====================================================================
|
|
# Startseite des Browsers. Leer = automatisch aus NPM_ADMIN_PORT abgeleitet.
|
|
NPM_ADMIN_URL=
|
|
|
|
# Vorgabe-Engine: browsh | carbonyl | links | w3m | lynx | shell
|
|
# ACHTUNG: nur browsh und carbonyl koennen JavaScript und damit die
|
|
# Oberflaeche des Proxy Managers darstellen.
|
|
BROWSER_ENGINE=browsh
|
|
|
|
# Images der Engines (vollqualifiziert - siehe Podman-Hinweis oben)
|
|
BROWSH_IMAGE=docker.io/browsh/browsh:v1.8.3
|
|
CARBONYL_IMAGE=docker.io/fathyb/carbonyl:latest
|
|
|
|
# Selbst gebautes Werkzeug-Image (Textbrowser, curl, jq, openssl).
|
|
# Leer lassen - das Skript waehlt automatisch den zur Runtime passenden
|
|
# Namen (Podman braucht das Praefix "localhost/", Docker darf es nicht haben).
|
|
BROWSER_TOOLS_IMAGE=
|
|
|
|
# =====================================================================
|
|
# PFADE (relativ zum Projektverzeichnis)
|
|
# Ausschliesslich Bind-Mounts - keine Docker/Podman-Volumes!
|
|
# =====================================================================
|
|
CMK_DATA_DIR=./data/checkmk/sites
|
|
NPM_DATA_DIR=./data/npm/data
|
|
NPM_LE_DIR=./data/npm/letsencrypt
|
|
|
|
# Ablage fuer Backups / Migrations-Bundles und heruntergeladene Images
|
|
BACKUP_DIR=./backups
|
|
IMAGE_DIR=./images
|
|
|
|
# =====================================================================
|
|
# SELBSTSIGNIERTES ZERTIFIKAT (Vorgaben fuer "cmk-manage.sh cert")
|
|
# =====================================================================
|
|
CERT_DOMAIN=checkmk.example.local
|
|
CERT_DAYS=3650
|
|
CERT_COUNTRY=DE
|
|
CERT_ORG="Beispiel GmbH"
|