I did the whole xcaddy routine with the plugin and I moved it into /usr/bin and it works, displays my site, but I’m not blocking anything. I’ve edited and edited and restarted and I can’t see the issue. My config matches many similar ones online. I figure someone might spot my blunder in my config, so here it is.
jellyfin.nunya.biz {
reverse_proxy mydude:8096
@mygeofilter {
maxmind_geolocation {
db_path "/mnt/geoip/GeoLite2-Country_20250502/GeoLite2-Country.mmdb
allow_countries US
}
}
}
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!
I disabled and removed Ubuntu’s caddy before using xcaddy, then remade caddy.service and wrote up a small script to rebuild and update it when I need. I may automate it down the line.
Hmm that sounds like something you could do with n8n.
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!
Hey mik, thanks for that. Geoblocking with Caddy was on my list, and I can now bump it up to the front.