A high-performance, self-hosted, proof-of-work captcha server fully compatible with Altcha's front-end widget integrations for web (native, React, Vue, Svelte, Solid, Lit, Angular) and mobile (Flutter, React Native) applications.
Botbuster gives you full control over your bot protection stack: no third‑party tracking, no usage caps, no external dependencies you don’t own, and no black‑box risk scoring.
Designed as a great alternative to paid, proprietary services such as reCAPTCHA, hCaptcha, Cloudflare Turnstile, FriendlyCaptcha or Altcha Sentinel.
Features
💸 Proof-of-work. Instead of frustrating puzzles, it uses invisible challenges that are negligible for humans but costly at scale for all kinds of bots, including AI‑driven ones.
🔒 Security. With HMAC‑signed challenges, built‑in protection against replay/DDoS attacks, mandatory challenge expiration, and strict CORS enforcement.
⚡️ High performance. Creating new challenges doesn't require storing data, so a single process can serve more than 1 million challenges per minute without breaking a sweat.
🔒 Privacy-first. Designed to be compliant with GDPR (European Union), PIPEDA/CPPA (Canada), HIPAA (USA), CCPA (California), LGPD (Brazil), DPDPA (India), and PIPL (China).
🧑🦯➡️ Accessibility. Fully adhering to WCAG 2.2 AA-level guidelines to leave no one behind.
🔌 Plug and play. Self-hostable, distributed as a single static binary (less than 10 MiB) and a container image (less than 20 MiB) for ARM64 and AMD64.
💾 Stateless. Without local persistence and with a single external dependency (Valkey/Redis) for caching, so several replicas can be conveniently run in stateless machines (such as Kubernetes clusters).
⚖️ FOSS. Completely free and open-source under the GPL-3.0 license.
☑️ Compatibility. Can be used as a drop‑in back‑end replacement for Altcha without any front‑end changes.
Containerfile, compose.yml, Makefile, .dockerignore and .env.example contain the configuration and manifests that define the development and runtime environments with OCI containers and Compose.
This project comes with a containerized environment that has everything necessary to work on any platform without having to install dependencies on the developers' machines.
TL;TR
make
Requirements
Before starting using the project, make sure that the following dependencies are installed on the machine:
It is necessary to install the latest versions before continuing. You may follow the previous links to read the installation instructions.
Initializing
First, initialize the project and run the environment.
make
Then, download third-party dependencies.
make deps
You may stop the environment by running the following command.
make down
Usage
Commands must be run inside the containerized environment by starting a shell in the main container (make shell).
Running the development server
Run the following command to start the development server:
make run
Note that Git is not available in the container, so you should use it from the host machine. It is strongly recommended to use a Git GUI (like VS Code's or Fork) instead of the command-line interface.
Running tests
To run all automated tests, use the following command.
make test
Debugging
It is possible to debug the software with Delve. To run the application in debug mode, run the command below.
make debug
For more advanced scenarios, such as debugging tests, you may open a shell in the container and use the Delve CLI directly.
make shell
dlv test --listen=:2345 --headless --api-version=2 ./internal/api