fail2ban only expands glob logpath at startup, so proxy-host-2_access.log
and later files are never monitored until a manual reload.
Adds logwatch.sh (supervisord-managed) that polls /nginx-logs every 30s
and runs fail2ban-client reload whenever a new proxy-host-*_access.log
is detected.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- supervisor.conf: node is at /usr/local/bin/node in node:18-slim, not /usr/bin/node
- Dockerfile: remove /etc/fail2ban/jail.d/defaults-debian.conf at build time
to prevent fail2ban crashing on missing sshd log file
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Dockerized Fail2Ban + dashboard for Nginx Proxy Manager.
- Single-container image (fail2ban + Node.js + supervisord)
- Pre-built NPM filters: badbot, http-errors, npm-probe, manual-bans
- Web dashboard with live ban feed, log scanner, AbuseIPDB integration
- Configurable via environment variables and .env file
- Persistent volumes for config and ban history
- Webhook support for ban event notifications
- README, .gitignore, MIT license
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>