Yep. The built-in Caddyfile is only for the HTTP server because that is the most common use case. The JSON isn’t that scary though. Just take your Caddyfile, run caddy adapt
, then go from there. I work with JSON configs all the time, even by hand, so it’s definitely doable. There’s even editor plugins to give you auto-complete and suggestions as you type! See Getting a better experience with JSON/YAML configuration
You can manage the dynamic DNS and personal DNS server differently, of course, it’s up to you. But Caddy can do it all if you want to (that’s what I do).
(To clarify, CoreDNS is not a Caddy 2 plugin, unfortunately it’s a totally separate fork of Caddy so you have to run that separately, until somebody writes a Caddy 2 module for it.)
All your other points are very good, thank you for bringing them up. They will be useful to some readers, I’m sure!