Files
docker-podman-installation-…/.env.example
T
duffyduckandClaude Opus 5 4d2e234c36 Bezugsweg als Schalter, schlankes "Image holen", up holt selbst
Drei zusammenhaengende Vereinfachungen aus der Bedienung heraus:

1. CMK_IMAGE_SOURCE bestimmt, woher ein fehlendes Image kommt:
     auto      erst Registry, dann Downloadportal (Vorgabe)
     registry  nur Registry
     download  nur Tarball
   "auto" ist die sinnvolle Vorgabe, weil Registries nur die juengsten
   Patchstaende vorhalten - genau die aeltere Version, die eine
   Migration braucht, liegt dann nur noch im Archiv. Der Wechsel
   geschieht ohne Rueckfrage.

2. "image get" holt ueber diesen Weg, ohne dass Edition und Version
   erneut abgefragt werden. Im Menue fragt "Image holen" entsprechend
   nur noch nach dem Bezugsweg; der eingestellte ist gekennzeichnet.
   Der vollstaendige Assistent bleibt als eigener Punkt daneben, fuer
   den Fall, dass Edition oder Version geaendert werden sollen.

3. "up" beschafft ein lokal fehlendes Image selbst, bevor compose
   startet. Vorher lief compose in einen nackten Pull, der bei einer nur
   im Downloadportal vorhandenen Version scheitern musste - genau der
   Fall mit 2.4.0p9. Mit "up --no-fetch" bleibt das aus.

Durchgespielt mit einer absichtlich nicht existierenden Version: up
erkennt das fehlende Image, versucht die Registry, weicht auf das
Downloadportal aus, bricht nach beiden Fehlschlaegen ab - und ruft
compose gar nicht erst auf. Mit --no-fetch geht es direkt zu compose.

Nebenbei: im Auswahlmenue erschien der eingestellte Bezugsweg doppelt
(einmal als "wie eingestellt", einmal unter seinem Namen) - zwei
Eintraege mit derselben Kennung. Jetzt wird der eingestellte nur noch
gekennzeichnet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-20 19:00:04 +02:00

188 lines
8.1 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
# Woher soll das Image geholt werden, wenn es lokal fehlt?
# auto erst Registry, dann Downloadportal (Vorgabe)
# registry nur aus der Registry
# download nur als Tarball vom Downloadportal
# Hintergrund: Registries halten meist nur die juengsten Patchstaende
# vor. Eine aeltere Version - etwa die einer zu migrierenden Site -
# liegt dann nur noch im Downloadportal.
CMK_IMAGE_SOURCE=auto
# --- 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
# Erstes Administratorkonto.
# WICHTIG: Ohne diese beiden Werte zeigt der Proxy Manager beim ersten
# Aufruf einen Einrichtungsassistenten im Browser - die frueher ueblichen
# Standardzugangsdaten admin@example.com/changeme gibt es seit 2.15 NICHT
# mehr. Mit den Werten legt der Container das Konto beim ERSTEN Start
# selbst an (nur bei leerer Datenbank) und die REST-API ist sofort
# nutzbar - damit funktioniert "cmk-manage.sh proxy ...".
# Ist das Konto bereits von Hand angelegt, hier dessen Daten eintragen.
NPM_ADMIN_EMAIL=admin@example.com
NPM_ADMIN_PASSWORD=bitte-aendern-mindestens-8-zeichen
# 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
# =====================================================================
# Vorgaben fuer "cmk-manage.sh proxy add" (Proxy-Host fuer Checkmk)
PROXY_DOMAIN=
PROXY_FORWARD_HOST=127.0.0.1
PROXY_FORWARD_PORT=5000
# 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 MANUELLE Backups und Migrations-Bundles.
# Geplante Jobs bringen ihr eigenes Zielverzeichnis mit (backup-jobs.conf).
BACKUP_DIR=./backups
# Sollen die Backup-Jobs automatisch per cron laufen?
# Umschalten ueber das Menue oder: ./scripts/cmk-manage.sh job auto on
BACKUP_AUTO=off
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"