This might solve my problem with older servers that no longer support the latest SSL.
I really need to upgrade those rickety old machines.
Runtime dependencies create a nuisance as you have to update several things together. On the other hand, they can allow components with separate update cycles and responsibilities to be update separately.
Build dependencies create maintainability and security problems. They can also solve maintainability and security problems. It depends on what your consideration is. But as a matter of practice, many developers seem too concerned with possible behavioral/API breakage, that they like to pin to specific versions of their dependencies, which now means that you aren't getting any security fixes.
(Technically, Althttpd doesn't achieve zero runtime dependencies in comparison to a modern http server that does HTTPS, because it requires a separate program to terminate TLS. But these connect through general mechanisms that are much easier to combine and update separately.)
Everyone has to make a judgement about how they maintain their own systems, but being excited about "zero (runtime) dependencies!" isn't the way the judgement concludes.
It feels like then I'd probably need either shared storage for the certificate files (which goes against the idea of decentralization somewhat) or to use a DNS challenge type.
Anyone have experience with something like that?
I'm doing this exact thing, with the Redis plugin behind DNSRR and it works seamlessly.
10 minutes of caddy, I had everything running exactly as I wanted and the job was done.
I don't think I'd choose to use it again. Instead, I'll try Caddy, or HAProxy if I need massive performance.
For very tiny hooks, you might be able to get away with using request matchers[1] and respond[2].
[0]: https://caddy.community/t/missing-starlark-documentation/958...
[1]: https://caddyserver.com/docs/caddyfile/matchers
[2]: https://caddyserver.com/docs/caddyfile/directives/respond
But yeah, it's still something at the back of our minds, and we were considering Starlark for this, but that hasn't really materialized because it's usually easier to just go with the plugin route.
Caddy is just really awesome as a reverse proxy (2 line config!!) and I am in the processes of moving all my projects to it. It is fast enough as well since other things will be the bottle neck way before that.
I am not affiliated with Caddy in any way, just blown away by the quality of it.