Caddyfile (1351B)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
{ email jack@pngu.org servers { trusted_proxies static 173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/13 104.24.0.0/14 172.64.0.0/13 131.0.72.0/22 2400:cb00::/32 2606:4700::/32 2803:f800::/32 2405:b500::/32 2405:8100::/32 2a06:98c0::/29 2c0f:f248::/32 client_ip_headers CF-Connecting-IP } } www.pngu.org, pngu.org { root * /srv/pngu.org try_files {path}.html {path} file_server handle_errors { @404 { expression {http.error.status_code} == 404 } rewrite @404 /404.html file_server } } vault.pngu.org { encode zstd gzip reverse_proxy vaultwarden:80 } baikal.pngu.org { encode zstd gzip reverse_proxy baikal:80 } uptime.pngu.org { encode zstd gzip reverse_proxy kuma:3001 redir / /status/default } stalwart.pngu.org { encode zstd gzip reverse_proxy stalwart:8080 } mail.pngu.org { encode zstd gzip reverse_proxy stalwart:8443 } webmail.pngu.org { encode zstd gzip reverse_proxy roundcube:80 } calendar.pngu.org { encode zstd gzip reverse_proxy agendav:8080 } git.pngu.org { encode zstd gzip reverse_proxy http://anubis:3000 { header_up X-Forwarded-For {client_ip} header_up X-Real-IP {client_ip} header_up X-Http-Version {http.request.proto} } }