39 lines
875 B
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
|
|
}
|
|
|