Files
homelab-configs/_tmp_Caddyfile.txt
T

71 lines
2.1 KiB
Plaintext

# Global options
{
auto_https disable_redirects
email k.radikal@gmail.com
}
# Consolidated wildcard site block
*.klhoud.com, http://*.klhoud.com {
# Automatic HTTPS via DNS challenge for all subdomains
tls {
dns cloudflare {$CLOUDFLARE_API_TOKEN}
}
# Proxmox
@proxmox host proxmox.klhoud.com
handle @proxmox {
reverse_proxy https://192.168.0.112:8006 {
# Required for connecting to Proxmox's self-signed/untrusted certificate
transport http {
tls_insecure_skip_verify
versions 1.1
}
}
}
# AdGuard Home
@adguard host adguard.klhoud.com
handle @adguard {
reverse_proxy 192.168.0.170:80
}
# Dockge
@dockge host dockge.klhoud.com
handle @dockge {
reverse_proxy 192.168.0.12:5001
}
# Nextcloud
@cloud host cloud.klhoud.com
handle @cloud {
reverse_proxy 192.168.0.12:8080
# Nextcloud-specific headers
header Strict-Transport-Security "max-age=31536000;"
# Handle large file uploads
request_body {
max_size 10GB
}
}
# Coolify (control plane runs on LXC 103). Upstream HTTPS to 443 because
# coolify-proxy's HTTP entry forces a redirect-to-https which would loop
# back through us. HTTPS upstream hits the no-redirect routes; cert is
# self-signed since coolify-proxy's ACME for coolify.klhoud.com fails
# (DNS points at us, not it), so we skip verify.
# coolify-proxy (Traefik) on LXC 103 listens on :80. We added a custom
# higher-priority router in /data/coolify/proxy/dynamic/coolify-noredirect.yaml
# there to bypass Coolify's auto-generated http->https redirect (which would
# loop us). WebSocket routes (/app, /terminal/ws) work natively on :80.
@coolify host coolify.klhoud.com
handle @coolify {
reverse_proxy 192.168.0.47:80
}
# IMPORTANT: Fallback Handler
# This prevents non-matching requests from falling through and failing.
handle {
respond "Not Found" 404
}
}