Der NGINX Proxy Manager laesst sich jetzt auch dann einrichten, wenn
seine Oberflaeche auf Port 81 aus dem Netz nicht erreichbar ist.
browser
Terminal-Browser in einem eigenen Container, gestartet mit
"run --rm -it --network host" - damit erreicht er 127.0.0.1 genau wie
der Proxy Manager selbst. Engines: browsh und carbonyl (rendern einen
echten Browser und koennen JavaScript, das die Adminoberflaeche
benoetigt) sowie links2/w3m/lynx und eine Shell mit curl/jq/openssl
fuer Diagnose. Werkzeug-Image unter containers/browser/.
Bewusst kein Compose-Dienst: ein Browser ist interaktiv, und
podman-compose behandelt Profile unzuverlaessig.
npm-port
Port der Adminoberflaeche frei waehlbar. Das Image bindet fest auf 81
("listen 81 default;"), eine Umgebungsvariable dafuer gibt es in 2.15.1
noch nicht. Ein abweichender Port wird deshalb ueber den nginx-
Erweiterungspunkt /data/nginx/custom/http.conf bereitgestellt. Nur der
markierte Block wird verwaltet, eigene Eintraege bleiben erhalten.
Port 81 lauscht weiterhin lokal und ist per Firewall zu sperren.
config
Alle Werte der .env sind menuegefuehrt bzw. ueber config get/set
aenderbar - der Editor bleibt als Menuepunkt erhalten. Geprueft wird
beim Setzen: Portbereich und Kollisionen, Site-Namen, vollqualifizierte
Image-Namen, installierte Runtime, Zahlen- und URL-Felder.
Fehlerbehebungen
- ui_*-Funktionen initialisieren sich selbst; eine von aussen gesetzte
UI_BIN fuehrte unter "set -u" zum Abbruch.
- Eine nicht installierte CMK_RUNTIME machte das gesamte Werkzeug
unbenutzbar, auch den Aufruf zum Korrigieren. Jetzt wird gewarnt und
selbst gesucht.
- env_set setzt Werte mit Leerzeichen in Anfuehrungszeichen und laesst
optional leere Werte zu.
README auf 22 Kapitel erweitert: Kapitel 11 (Terminal-Browser inkl.
NPM-API als Fallback fuer den Zertifikats-Upload), Kapitel 12 (Admin-Port)
und Abschnitt 14.3 (Einstellungsmenue).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
149 lines
6.3 KiB
Bash
149 lines
6.3 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!
|
|
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"
|