Add CrowdSec bouncer for Bunny CDN Shield

Syncs locally-detected CrowdSec ban decisions to Bunny CDN Shield
Access Lists. Excludes community blocklists (CAPI/lists) since Bunny
Shield has its own managed threat feeds.

- Polls CrowdSec LAPI for origin=crowdsec/cscli bans
- Updates Bunny Shield custom Access List via PATCH API
- Change detection via set comparison to skip unnecessary API calls
- Exponential backoff retry on API failures
- Graceful SIGTERM/SIGINT shutdown
- Docker healthcheck support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
kappa
2026-02-12 19:08:56 +09:00
commit d1b870227e
6 changed files with 295 additions and 0 deletions

13
.env.example Normal file
View File

@@ -0,0 +1,13 @@
# CrowdSec LAPI connection
CROWDSEC_LAPI_URL=http://crowdsec:8080
CROWDSEC_LAPI_KEY=your_bouncer_api_key_here
# Bunny CDN Shield API
BUNNY_API_KEY=your_bunny_api_key_here
BUNNY_SHIELD_ZONE_ID=12345
BUNNY_ACCESS_LIST_ID=12345
# Optional settings
SYNC_INTERVAL=60
MAX_IPS=1000
LOG_LEVEL=INFO