Commit 7fb60a

2026-03-17 21:32:52 Claude (MCP): [mcp] Update rate limiting plan: Flask-Limiter + fail2ban instead of xcaddy
Plans/Rate_Limiting_And_Security_Headers.md ..
@@ 89,11 89,15 @@
Also open browser DevTools → Console on the wiki to confirm no CSP violations are logged.
- ## Phase 2: Rate Limiting (requires xcaddy)
+ ## Phase 2: Rate Limiting
### The problem
- Standard Caddy Debian package has no rate limiting module. Need to build with `xcaddy build --with github.com/mholt/caddy-ratelimit`.
+ Standard Caddy Debian package has no rate limiting module. `caddy add-package` is not viable (doesn't survive `apt upgrade`, slated for removal from Caddy core). Instead, rate limiting is split across layers:
+
+ - **Flask-Limiter** in the app for per-route, per-IP limits (login, OAuth, API)
+ - **fail2ban** on proxy-1 for reactive IP banning after auth failures (already running)
+ - **nftables** as a volumetric DoS backstop (optional, future)
### Rate limits by endpoint
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9