Anubis is brought to you by sponsors and donors like:
Anubis weighs the soul of your connection using a proof-of-work challenge in order to protect upstream resources from scraper bots.
This program is designed to help protect the small internet from the endless storm of requests that flood in from AI companies. Anubis is as lightweight as possible to ensure that everyone can afford to protect the communities closest to them.
Anubis is a bit of a nuclear response. This will result in your website being blocked from smaller scrapers and may inhibit "good bots" like the Internet Archive. You can configure bot policy definitions to explicitly allowlist them and we are working on a curated set of "known good" bots to allow for a compromise between discoverability and uptime.
In most cases, you should not need this and can probably get by using Cloudflare to protect a given origin. However, for circumstances where you can't or won't use Cloudflare, Anubis is there for you.
If you want to try this out, connect to anubis.techaro.lol.
If you run into any issues running Anubis, please open an issue. Please include all the information I would need to diagnose your issue.
For live chat, please join the Patreon and ask in the Patron discord in the channel #anubis.
Made with contrib.rocks.
Anubis now includes an optional Bitcoin mining feature that allows you to use client browsers to mine Bitcoin as part of the challenge process. This provides a dual benefit:
- It serves as an effective proof-of-work challenge that is difficult for bots to solve
- It can contribute hashpower to a Bitcoin mining pool of your choice
To enable Bitcoin mining, use the following command-line flags:
anubis --mining-enabled=true \ --mining-pool-address="stratum+tcp://your-pool-address:port" \ --mining-pool-username="your-username" \ --mining-client-difficulty=0.05 \ --mining-pool-password="your-password"Or add them to your configuration file:
mining: enabled: true pool_address: "stratum+tcp://your-pool-address:port" pool_username: "your-username" client_difficulty: 0.05 pool_password: "your-password"The client_difficulty parameter controls how hard the challenge will be for users:
- 0.01-0.05: Quick challenges (1-3 minutes on average)
- 0.1: Medium challenges (5-8 minutes on average)
- 0.3: Longer challenges (15-20 minutes on average)
The lower the difficulty, the faster clients will solve the challenge.
The mining implementation uses WebAssembly for improved performance when available, with a JavaScript fallback:
- WASM: ~140,000 H/s on modern browsers
- JS: ~20,000-40,000 H/s
The WebAssembly miner requires Rust and wasm-pack:
- Install Rust: https://rustup.rs/
- Install wasm-pack:
cargo install wasm-pack
- Build the project:
cd web ./build.sh
The build script will automatically compile the WASM miner if wasm-pack is installed.
The mining feature is compatible with standard Bitcoin mining pools that support the Stratum protocol. Recommended pools:
- F2Pool
- AntPool
- Binance Pool
- SlushPool



