Files
reverse-proxy/config/sites.yaml
T
2026-07-31 22:17:22 +02:00

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