Files
docker-podman-installation-…/.env.example
duffyduckandClaude Opus 5 1693330162 Terminal-Browser, konfigurierbarer Admin-Port und Einstellungsmenue
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>
2026-08-24 10:48:42 +02:00

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"