A caddy plugin to place Anubis (anti-AI scrapper) directly within caddy as a middleware.
Find a file
Valentin Boettcher 14eec7d219
no it doesn'T
2025-04-23 12:11:03 -04:00
web It works a bit better, but stil slow first time load 2025-03-25 23:13:48 +01:00
.gitignore It works a bit better, but stil slow first time load 2025-03-25 23:13:48 +01:00
caddy_anubis.go It works a bit better, but stil slow first time load 2025-03-25 23:13:48 +01:00
Caddyfile Remove order changes, no longer needed. 2025-03-25 23:17:34 +01:00
go.mod no it doesn'T 2025-04-23 12:11:03 -04:00
go.sum Update deps 2025-04-23 11:59:58 -04:00
LICENSE Add readme and license 2025-03-25 23:24:54 +01:00
README.md Update readme 2025-03-25 23:26:22 +01:00

caddy-anubis

caddy-anubis is a plugin that loads anubis for requests in order to slow down AI and Scraper traffic from destroying infrastucture.

I consider this current implementation more of a Proof-of-Concept. I am not sure how stable or well it works. This is my first Caddy plugin. I do not currently recommend it for production usage.

If you have experience with Caddy plugins, or see obvious issues in my code, feel free to open PRs or reach out to me.

Known Issues

  • One major issue is the very first request after a Caddy start or restart, takes like 5 seconds till anubis kicks in. All subsequent requests, even after clearing cookies, are near instant.

Current usage

Just add an anubis to your caddyfile in the block you want the protection. currently I have not seen it work properly inside a route or handler block. But it works outside of those.

There is an optional target field you can set if you want to force the redirect elsewhere. It does a 302 redirect.

Example (also check the caddyfile in this repo, it is used for testing):


:80 {
  anubis

  # or 

  anubis {
    target https://qwant.com
  }
}

Credits

  • anubis - the project that started all of this.