I used Caddy for local development.
Will deploy it someday. It’s super easy.
It automatically fetches and renews Letsencrypt certs for your main domain and subdomains.
Also, it’s 4x faster than Nginx and super simple to use.
www.derpycoder.site {
redir https://derpycoder.site permanent
}
derpycoder.site {
tls certs/caddy/cert.pem certs/caddy/key.pem // For local development I used Mkcert, remove this in Production
encode zstd gzip
reverse_proxy localhost:4000 {
header_up Host {host}
header_up Origin {host}
header_up X-Real-IP {remote}
header_up X-Forwarded-Host {host}
header_up X-Forwarded-Server {host}
header_up X-Forwarded-Port {port}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
header_down Access-Control-Allow-Origin https://derpycoder.site
header_down Access-Control-Allow-Credentials true
}
}
docs.derpycoder.site {
encode zstd gzip
root * doc
file_server browse
}
I can have basic-auth to protect subdomains, using Caddy Auth, if you have apps that are admin-only.
It’s really useful apart from security as well, for instance, you can do rolling or canary deployment, and Caddy will route traffic to one instance or the other.
I don’t know how to do the Active-Active load balancing using Keepalived, perhaps others have experience with that.


















