selfhostedops-stack/Caddyfile

39 lines
875 B
Caddyfile

# ~$ selfhostedops — Caddyfile
# Automatic HTTPS for every subdomain. Nothing to renew, ever.
{
email {$ACME_EMAIL}
}
git.{$DOMAIN} {
reverse_proxy forgejo:3000
}
wiki.{$DOMAIN} {
reverse_proxy outline:3000
}
vault.{$DOMAIN} {
reverse_proxy vaultwarden:80
}
status.{$DOMAIN} {
reverse_proxy uptime-kuma:3001
}
# n8n has no public route any more - it is reachable over the mesh only (episode 5)
# NetBird control plane (episode 5) - dashboard, API, gRPC, relay, built-in IdP
vpn.{$DOMAIN} {
# Native gRPC (needs HTTP/2 cleartext to backend)
@grpc header Content-Type application/grpc*
reverse_proxy @grpc h2c://netbird-server:80
# Combined server paths (relay, signal, management, OAuth2)
@backend path /relay* /ws-proxy/* /api/* /oauth2/*
reverse_proxy @backend netbird-server:80
# Dashboard (everything else)
reverse_proxy /* netbird-dashboard:80
}