I found Caddy installation and usage to be as simple as advertised. The official documentation covered most if not all of my use cases.
I am taking some further notes below.
Run Caddy in a container
- Get the official compose.yml boilerplate
podman network create caddy
#TODO)) Use Quadlet instructions
Blocking/Poisoning AI bots
Iocaine
I configured and run Iocaine following the Debian guide, as I tested it on a server with no containers, where I was only serving static websites.
The impact was noticeable, the CPU usage and the network traffic grew substantially: from an average of 1% CPU usage to an average of 12%.


Nevertheless, it was not because of performance that I chose to uninstall Iocaine, but it was because it seemed that many features were compromised, such as OGP images not being generated correctly anymore. In general the bot-detection was a bit more aggressive than what I would have liked. My intention is to poison AI bots that do not respect my wish not to share my data, not to poison any bot that visit my website.
Other options
Other options I found but didn’t have the time to test, yet:
- Caddy Defender Plugin –
a middleware for Caddy that allows you to block or manipulate requests based on the client’s IP address. It is particularly useful for preventing unwanted traffic or polluting AI training data by returning garbage responses.
- miasma – Trap AI web scrapers in an endless poison pit.