Anubis
Anubis is a self-hosted web firewall that stands in front of your website and makes suspicious visitors complete a lightweight challenge before their requests are allowed through. Place it between your load balancer or TLS terminator and the application it protects, with one instance guarding each service. Requests that look like scraper bots are weighed and challenged, which raises the cost of mass crawling so automated harvesting stops being free. Requests that pass are forwarded straight to your target service over TCP or a Unix domain socket, so legitimate visitors reach the real site. You define the bot policy: allowlist known good bots and crawlers you want to keep, challenge the ones you are unsure about, and turn away the rest. Challenge difficulty and weight thresholds tune how hard visitors must work, letting you balance protection against friction for real readers. The server listens on port 8923 by default and exposes Prometheus metrics on port 9090, so request and challenge rates show up in your existing monitoring. Deployment is a single Docker image or native package with minimal resource needs, and configuration arrives through environment variables plus the policy file. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. MIT licensed.
Benefits
- Stop Scrapers Before Origin
- Suspicious connections must complete a challenge before Anubis forwards anything, so mass crawlers spend their own compute instead of consuming your application's CPU, bandwidth, and database.
- Keep Good Bots Welcome
- Bot policy definitions let you allowlist crawlers you value, such as search engines and the Internet Archive, while unknown or unwanted automation gets challenged or denied.
- Tune Challenge Difficulty
- Weight thresholds and difficulty settings control how much work a suspicious visitor must do, balancing real protection for busy sites against friction for ordinary human readers.
- Tiny Footprint, Easy Monitoring
- One lightweight instance guards one service on port 8923, and Prometheus metrics on port 9090 feed challenge and request rates into your existing dashboards and alerts.
Features
- Proof Of Work Challenges
- Browser like connections that match bot rules must solve a computational proof of work challenge before Anubis forwards the request to the protected application.
- Bot Policy Rules
- A policy file defines which user agents and crawlers are allowed, challenged, or denied, with curated known good bot definitions available as a starting point.
- Reverse Proxy Placement
- Anubis sits between your load balancer and target service, forwarding passing requests over TCP or Unix domain sockets configured with the TARGET setting.
- Prometheus Metrics Endpoint
- The metrics server on port 9090 reports request and challenge activity in Prometheus format for scraping into Grafana dashboards and alerting rules.
- Docker And Native Packages
- Official container images carry latest, pre, and version tags, and native packages serve hosts that prefer a system service over Docker deployment.