Xcaddy is a build tool. Caddy plugins are built into Caddy itself for optimization purposes, so xcaddy essentially makes you a custom version of Caddy. It only conflicts with Caddy so much as building a new version would conflict with the old version. You still get a normal "Caddy" executable after running xcaddy, just replace your existing Caddy with the new one created by xcaddy!
It may be mostly "security theater" but it requires almost no extra effort and drastically increases the difficulty of compromise by adding privilege escalation as another requirement to gaining root access.
It helps protect you because if the application in question is compromised in any way (or has a flaw, i.e. an accidental rm -rf /*
), the only access it has is limited to the user it is run as. If it is run as root, it has full administrative privilege.
I run the setup you're aiming for, and as the other guy said, DNS challenge is the way to go. That's what I do, and it works beautifully. It even works with Caddy auto-https, you just need to build Caddy with the cloudflare-dns plugin.
I personally like ligatures when I'm programming. It took me some getting used to, but now I can't live without them due to how distinct it makes the code segments. I fully understand disliking them though. Thankfully fonts like source code pro allow disabling features like ligatures and their godawful handwriting styled italics, so you're able to use just the parts you like.
mik
0 post score0 comment score
It probably would be easier to just write an "update Caddy" script. They don't release updates very often, except for security fixes, so it's not much effort to do manually. I automated mine with Forgejo Actions, you could do the same with GitHub actions as a free option for example. Lots of neat ways to accomplish this!