c60abae9bbe1fcbb8addddbfc9fb0b249f300746
🛑 Checkpoint
Checkpoint is a tiny reverse proxy that attempts to block AI by serving a cryptographic challenge.
This project is a work-in-progress. It works, but has only basic functionality.
Why?
AI scrapers are everywhere. This will stop them. robots.txt won't.
Features
- Protect your endpoint from AI bots with a cryptographic challenge
- Easy configuration in jsonc
- Support for cloudflare
- Support for IP-Range based rules (both ipv4 and ipv6)
- Support for async (multithreaded) request handling
- Minimal. The waiting page is tiny and light on network usage.
Planned features
- Dynamic challenge amount (aka difficulty) based on traffic
- Detection of token overuse
- Better wait screen
Caveats
If you are using this, it's almost certain search engines will stop indexing your site. Keep this in mind.
Setup guide
- Clone and build this repo. You will need
openssl,g++>=12,re2, and deps forpistache,fmtandtinylates. - Create a
config.jsonc. An example one is inexample/. - Adjust the config to your needs. Options are documented with comments in the example config.
- Set up your IP rules if you want. These allow you to set up IPs that are automatically blocked, or allowed to access without a challenge. This is useful for e.g. search engine scrapers. Some IP ranges can be found in
example/index_bots.jsonc. - Run checkpoint with your config:
./build/checkpoint -c config.jsonc. How you run it long-term as a service is up to you.
FAQ / Setup info
See docs/FAQ.
Description
Checkpoint is a tiny reverse proxy that attempts to block AI by serving a cryptographic challenge.
Languages
C++
69.5%
HTML
29.2%
CMake
1.3%