Forward-auth snippet final (dynamic X-Forwarded-Host, caddy fmt)

This commit is contained in:
claudio
2026-04-22 01:05:31 +02:00
parent b2b6c86437
commit f2fd96e336

176
Caddyfile
View File

@@ -1,19 +1,17 @@
# Authentik forward-auth snippet (domain-level mode). # Authentik forward-auth snippet (domain-level mode).
# Usage: add "import authentik" inside any site block to gate it. # Usage: add "import authentik" inside any site block to gate it.
(authentik) { (authentik) {
route { route {
reverse_proxy /outpost.goauthentik.io/* https://auth.hubris.network { reverse_proxy /outpost.goauthentik.io/* http://192.168.8.180:9000
header_up Host {upstream_hostport} forward_auth http://192.168.8.180:9000 {
} uri /outpost.goauthentik.io/auth/caddy
forward_auth https://auth.hubris.network { copy_headers X-Authentik-Username X-Authentik-Groups X-Authentik-Email X-Authentik-Name X-Authentik-Uid X-Authentik-Jwt X-Authentik-Meta-Jwks X-Authentik-Meta-Outpost X-Authentik-Meta-Provider X-Authentik-Meta-App X-Authentik-Meta-Version
uri /outpost.goauthentik.io/auth/caddy trusted_proxies private_ranges
copy_headers X-Authentik-Username X-Authentik-Groups X-Authentik-Email X-Authentik-Name X-Authentik-Uid X-Authentik-Jwt X-Authentik-Meta-Jwks X-Authentik-Meta-Outpost X-Authentik-Meta-Provider X-Authentik-Meta-App X-Authentik-Meta-Version header_up X-Forwarded-Host {host}
trusted_proxies private_ranges header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Host {host} header_up X-Forwarded-Uri {uri}
header_up X-Forwarded-Proto {scheme} }
header_up X-Forwarded-Uri {uri} }
}
}
} }
# The Caddyfile is an easy way to configure your Caddy web server. # The Caddyfile is an easy way to configure your Caddy web server.
@@ -27,123 +25,121 @@
# domain name. # domain name.
media.hubris.network { media.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.206:8096 reverse_proxy 192.168.8.206:8096
} }
git.hubris.network { git.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
handle_path /_plantuml/* { handle_path /_plantuml/* {
rewrite * /plantuml{uri} rewrite * /plantuml{uri}
reverse_proxy 192.168.8.205:8079 reverse_proxy 192.168.8.205:8079
} }
handle { handle {
reverse_proxy 192.168.8.121:3000 reverse_proxy 192.168.8.121:3000
} }
} }
paperless.hubris.network { paperless.hubris.network {
import authentik import authentik
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.130:8000 reverse_proxy 192.168.8.130:8000
} }
books.hubris.network { books.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.205:6060 reverse_proxy 192.168.8.205:6060
} }
home.hubris.network { home.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.101:8123 reverse_proxy 192.168.8.101:8123
} }
cloud.hubris.network { cloud.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.224:80 reverse_proxy 192.168.8.224:80
} }
matrix.hubris.network { matrix.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.239:8008 reverse_proxy 192.168.8.239:8008
} }
proxmox.hubris.network { proxmox.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy https://192.168.8.77:8006 { reverse_proxy https://192.168.8.77:8006 {
transport http { transport http {
tls_insecure_skip_verify tls_insecure_skip_verify
} }
} }
} }
docker.hubris.network { docker.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy https://192.168.8.205:9443 { reverse_proxy https://192.168.8.205:9443 {
transport http { transport http {
tls_insecure_skip_verify tls_insecure_skip_verify
} }
} }
} }
jellyseerr.hubris.network { jellyseerr.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.132:5056 reverse_proxy 192.168.8.132:5056
} }
qbit.hubris.network { qbit.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.132:8080 reverse_proxy 192.168.8.132:8080
} }
sab.hubris.network { sab.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.132:8081 reverse_proxy 192.168.8.132:8081
} }
blog.hubris.network { blog.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.205:8080 reverse_proxy 192.168.8.205:8080
} }
photos.hubris.network { photos.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.136:3000 reverse_proxy 192.168.8.136:3000
} }
auth.hubris.network { auth.hubris.network {
tls { tls {
dns ionos {env.IONOS_AUTH_API_TOKEN} dns ionos {env.IONOS_AUTH_API_TOKEN}
} }
reverse_proxy 192.168.8.180:9000 reverse_proxy 192.168.8.180:9000
} }