A caddy plugin to place Anubis (anti-AI scrapper) directly within caddy as a middleware.
Find a file
Valentin Boettcher 3b703a3fe3
update
2025-04-23 13:06:08 -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 update 2025-04-23 13:06:08 -04:00
Caddyfile Remove order changes, no longer needed. 2025-03-25 23:17:34 +01:00
go.mod update 2025-04-23 13:06:08 -04:00
go.sum update 2025-04-23 13:06:08 -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.