# ============================================================================= # Zentrale Konfiguration für Caddy + HAProxy # ----------------------------------------------------------------------------- # Dies ist die EINZIGE Datei, die du im Alltag anfassen musst. Daraus werden # per `make generate` (reines Bash+AWK-Skript, kein Python, kein extra # Docker-Image) automatisch Caddyfile, haproxy.cfg, die IP-Filterlisten und # die zusätzlichen Port-Freigaben generiert. # # WICHTIG - Format-Regeln (der Parser ist bewusst einfach gehalten, damit er # ohne externe Tools auskommt, dafür ist er strikter als ein vollwertiger # YAML-Parser): # - Exakt 2 Leerzeichen pro Einrückungsebene, keine Tabs # - Keine mehrzeiligen Strings, keine YAML-Anker/-Referenzen # - "off" als tls_mode IMMER in Anführungszeichen (siehe unten) # - Werte NICHT in Anführungszeichen, außer bei "off" (s.o.) # # Workflow nach jeder Änderung: # make reload # ============================================================================= global: acme_email: admin@example.de # ----------------------------------------------------------------------------- # Domains (HTTPS, über Caddy) # ----------------------------------------------------------------------------- # backend: : # backend_scheme: http oder https (womit das Backend selbst spricht) # backend_tls_insecure: true, wenn das Backend ein selbstsigniertes Zertifikat # verwendet (z.B. Mailcow-interner nginx) # allowed_ips: Liste von CIDRs, die auf diese Domain zugreifen # dürfen. LEER (Zeile weglassen) = öffentlich. # Jede Domain hat ihre EIGENE Liste. # tls_mode: auto (Standard, echtes Let's-Encrypt-Zertifikat) # internal (Caddys interne CA, kein ACME, keine # Rate-Limits, gut zum Testen) # "off" (kein TLS, nur HTTP - Anführungszeichen!) # ----------------------------------------------------------------------------- domains: - name: git.abw-weiland.de backend: gitea:3000 backend_scheme: http backend_tls_insecure: false tls_mode: auto allowed_ips: - 203.0.113.0/24 - 198.51.100.10/32 - name: monitor.abw-weiland.de backend: checkmk:5000 backend_scheme: http backend_tls_insecure: false tls_mode: auto allowed_ips: - 10.0.0.0/8 - name: example.abw-weiland.de backend: example-backend:8080 backend_scheme: http backend_tls_insecure: false tls_mode: auto # Beispiel: DNS zeigt noch nicht drauf - erstmal ohne TLS testen # - name: staging.abw-weiland.de # backend: staging-backend:8080 # backend_scheme: http # backend_tls_insecure: false # tls_mode: "off" # allowed_ips: # - 10.0.0.0/8 # Beispiel: rein internes Tool, interne CA statt Let's Encrypt # - name: internal-tool.abw-weiland.de # backend: internal-tool:80 # backend_scheme: http # backend_tls_insecure: false # tls_mode: internal # allowed_ips: # - 10.0.0.0/8 # ----------------------------------------------------------------------------- # Zusätzliche rohe TCP-Ports (KEIN HTTP/Caddy dazwischen). Für Dienste, die # nicht per Domain/SNI laufen, z.B. der CheckMK-Agent-Push-Port. Jeder # Eintrag hat seine EIGENE IP-Liste, unabhängig von den Domains oben. Der # Port wird automatisch in generated/docker-compose.override.yml freigegeben. # ----------------------------------------------------------------------------- tcp_services: - name: checkmk-agent-push listen_port: 6557 backend: checkmk:6557 allowed_ips: - 10.10.0.0/24