I switched to caddy from nginx. Caddy has a ‘simpler’ configuration syntax, and offers built-in automatic TLS support with letsencrypt. I’ve also enabled automatic TLS support in maddy mail server, and I have been able to remove certbot entirely from my home server and disable the cron job that refreshed certs!

The switch wasn’t as painful as I thought it might be. It took about 45 minutes to read the caddy docs and port my existing nginx configuration over. Most of my sites are either simple static sites, or reverse proxies to other apps running their own web servers.

This switch was prompted by a problem I’ve caused on my blog; I have put some large resources at my webserver root (e.g. /fooimage.jpg) instead of in a subfolder. In order to maintain external links, I wanted to move the images, and setup a permanent redirect to their new location. This is relatively difficult in nginx, and should be simpler in caddy.