# ── Authelia forward auth snippet ──────────────────────────────────────────── (authelia) { forward_auth authelia:9091 { uri /api/authz/forward-auth copy_headers Remote-User Remote-Groups Remote-Name Remote-Email } } # ── Authelia login portal ───────────────────────────────────────────────────── auth.{$MY_DOMAIN} { reverse_proxy authelia:9091 log { output file /var/log/caddy/auth.log } } # ── AI Portal (landing page / stack switcher) ───────────────────────────────── localai.{$MY_DOMAIN} { import authelia reverse_proxy 192.0.2.1:8080 log { output file /var/log/caddy/localai.log } } # ── Open WebUI (Chat) ───────────────────────────────────────────────────────── chat.{$MY_DOMAIN} { import authelia reverse_proxy 192.0.2.1:3000 log { output file /var/log/caddy/chat.log } } # ── InvokeAI (Images) ───────────────────────────────────────────────────────── images.{$MY_DOMAIN} { import authelia reverse_proxy 192.0.2.1:9090 log { output file /var/log/caddy/images.log } } # ── Template for future services ────────────────────────────────────────────── # newservice.{$MY_DOMAIN} { # import authelia # reverse_proxy INTERNAL_IP:PORT # }