
Anubis
Self-hosted reverse proxy that blocks AI scraper bots with a lightweight proof-of-work challenge.
Open source alternative to:
Anubis is a self-hosted "Web AI Firewall Utility" that weighs the soul of incoming HTTP requests using one or more challenges to protect upstream resources from scraper bots. Browsers must pass a proof-of-work challenge before receiving content, making large-scale AI crawling expensive while real visitors only wait a moment.
It was built to help protect the small internet from the endless storm of AI company requests, and is deliberately lightweight so that every community can afford to run it. Unlike Cloudflare, which terminates your traffic on their edge, Anubis runs on your own infrastructure as a small Go service that sits between your reverse proxy (Nginx or Caddy) and the application it protects.
Anubis is intentionally a bit of a nuclear response: by default it will block smaller scrapers and may inhibit "good bots" like the Internet Archive, but bot policy definitions let you explicitly allowlist crawlers you care about. Configuration is done through environment variables and a policy file with support for weight thresholds, Open Graph passthrough for social media previews, and per-role policies. It is packaged for common distributions and shipped as a Docker image at ghcr.io/techarohq/anubis.
Frequently Asked Questions
How do I deploy Anubis?
Anubis sits between your reverse proxy (such as Nginx or Caddy) and the target service, with one instance per service you protect. It ships as a Docker image at ghcr.io/techarohq/anubis with tags for latest releases, prereleases, and the main branch, and native packages are available for several Linux distributions.
What are the system requirements to self-host Anubis?
Requirements are minimal — the maintainers suggest 128Mi of RAM may be sufficient for a large number of concurrent clients. Anubis is configured through environment variables and a policy file, and by default listens on TCP port 8923.
Can I allow good bots like search engines or the Internet Archive through?
Yes. Anubis ships with bot policy definitions that let you explicitly allowlist crawlers you care about, and the maintainers are working on a curated set of known good bots as a compromise between discoverability and uptime. By default, though, expect smaller scrapers to be blocked.
Does Anubis work with apps that use WebSockets?
Possibly not. The documentation notes Anubis may be a poor fit for applications that use WebSockets and maintain open connections, so test carefully with real-time workloads before rolling it out.
How long does the challenge-pass cookie last?
By default the authorization cookie is valid for 168 hours (one week). This is configurable via the COOKIE_EXPIRATION_TIME environment variable, and cookie behavior such as domain scoping and the partitioned CHIPS flag can also be adjusted.


Anubis vs Pangolin