93 lines
3.7 KiB
YAML
93 lines
3.7 KiB
YAML
# =============================================================================
|
|
# 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: <container-name-im-edge-netzwerk>:<port>
|
|
# 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
|