Caddy 2.6 is out, the biggest release since Caddy 2
github.comI love and regularly use Caddy, but I take issue with them bragging about extensibility as they do in the introduction paragraph here. "unlimited extensibility"? You mean how you have to recompile the whole damn server to install a plugin?!? So now I either need to pull the entire Go development environment onto every single web server I run and recompile Caddy from source every update day, or set up a CI server and package repository with every different configuration of plugins I run - all just for the privilege of using Caddy's most heavily marketed feature (automatic HTTPS) with a DNS provider that isn't Cloudflare? (or any other of a number of other features that are either built in or loadable modules in every other web server out there).
I think that if you have a toolchain as easy to bring up and use as Go's, and the stance towards dynamic libraries that Go has, it's understandable that plugins come with the downside of recompiling. It's a chore for sure, but if Caddy is an important part of your infrastructure, having a node that compiles static versions of it for your specific use is not too much of a change from repackaging a docker container with your specific configuration of nginx.
> the stance towards dynamic libraries that Go has
Under the limitation of "no dynamic loading anywhere ever", Caddy has indeed made it exceptionally easy (with xcaddy and their web builder) to compile with modules, but this doesn't excuse the fact that their purely philosophical stance is making the job of sysadmins harder. I've heard decent arguments against dynamic libraries (although IMO they still didn't outweigh the downsides of static linking), but never against dynamic loading in general.
Is there a good explanation of this stance anywhere? I haven't spent too much time looking, I'll admit, but if you're breaking decades of common practice, you better put that explanation front and center.
> having a node that compiles static versions of it for your specific use is not too much of a change from repackaging a docker container with your specific configuration of nginx
Sure, but a custom Docker container isn't the baseline for ease of use, `apt-get install [module] && a2enmod [module]` is.
Pretty exciting, finally a (semi-)mainstream webserver supporting HTTP/3.
Also performance improvements almost across the board.
Windows server got native http3 support in august 2021?
Probably need to test Caddy's performance again. Last time it was quite far behind Nginx under heavy workload.
I'd love to hear your results!