reference-ansible/inventories/demo-gymburgdorf/host_vars/application/traefik.yml
Simon Bärlocher c67e9aac43
chore(demo-gymburgdorf): finish ACME, LDAP, DMZ routing for live inventory
- ACME via DNS-01 against internal NS (172.16.9.169) with TCP-only +
  disableANSChecks so the DMZ traefik can issue LE certs without
  reaching public NS IPs.
- Migrate single-domain vars to `*_domains` lists (authentik, nextcloud,
  collabora, garage_s3) so public + *.int.* SANs share one cert and
  server-to-server traffic stays in the LAN.
- Wire `traefik_dmz_exposed_services` per backend host (application,
  storage) with explicit `backend_host` overrides pointing at internal
  FQDNs — DMZ traefik now validates upstream certs against SAN names.
- Nextcloud notify_push setup on internal FQDN to avoid DMZ hairpin;
  collabora WOPI / authentik LDAP outpost wired to *.int.* equivalents.
2026-05-27 23:18:58 +02:00

29 lines
1 KiB
YAML

---
# Services hosted on `application` that the DMZ reverseproxy should
# forward public traffic to. The DMZ traefik picks this up via
# hostvars[backend].traefik_dmz_exposed_services and renders a router +
# service for each entry into /config/services.yml.
traefik_dmz_exposed_services:
- name: authentik
domain: auth.gymb.souveredu.ch
backend_host: auth.int.gymb.souveredu.ch
port: 443
protocol: https
- name: nextcloud
domain: cloud.gymb.souveredu.ch
backend_host: cloud.int.gymb.souveredu.ch
port: 443
protocol: https
- name: collabora
domain: office.gymb.souveredu.ch
backend_host: office.int.gymb.souveredu.ch
port: 443
protocol: https
- name: drawio
domain: draw.gymb.souveredu.ch
# No internal FQDN/cert for drawio yet — proxy by IP. Combined
# with serversTransport `insecureSkipVerify` (handled by the
# selfsigned-mode branch in the template), or accept the route's
# 500 until the cert is wired up.
port: 443
protocol: https