Authentication Features:
- Optional HTTP Basic Auth with session cookies for web interface protection
- Configurable username/password with session timeout (default: 1 hour)
- Selective route protection (web interface protected, webhooks/APIs remain public)
- Authentication status display with logout functionality in web UI
- Session cleanup and graceful logout with browser re-authentication prompt
Configuration:
- WEB_AUTH_ENABLED in .env (default: false - no breaking changes)
- WEB_AUTH_USERNAME/WEB_AUTH_PASSWORD in .env.secrets
- WEB_AUTH_SESSION_TIMEOUT configurable (5min-24h range)
Development Tools:
- Added debug_tv.py for TV series/episode debugging (series, season, episode levels)
- Comprehensive episode data inspection with validation and sources breakdown
- Complements existing debug_movie.py for complete media debugging coverage
Technical Implementation:
- SimpleAuthMiddleware with FastAPI integration
- Session management with automatic cleanup
- Authentication status API endpoints
- Responsive CSS styling for auth UI elements
- JavaScript functions for auth checking and logout
- Add proper signal handlers for graceful shutdown of all components
- Implement WebhookBatcher.shutdown() to properly close ThreadPoolExecutor and cancel timers
- Add NFOGuardDatabase.close() method to close thread-local database connections
- Increase uvicorn graceful shutdown timeout to 15 seconds
- Add cleanup in finally block to ensure resources are freed even if signal handler fails
- Reduce logging and server header overhead for better performance
This should resolve Docker container shutdown issues where containers don't respond to SIGTERM properly.
Bump version to 2.1.1
🤖 Generated with [Claude Code](https://claude.ai/code)