Warden ghcr.io/johagan94/warden:latest https://github.com/johagan94/warden/pkgs/container/warden bridge bash false https://raw.githubusercontent.com/johagan94/warden/main/warden.png Automated *Arr search scheduling and stalled-download cleanup for Sonarr, Radarr, and Lidarr. Warden handles two jobs that every *Arr homelab needs: scheduled searching for missing or upgrade-eligible media, and automatic cleanup of stalled, broken, or blocklist-worthy downloads. [b]Vigilance — automated search scheduling[/b] [ul] [li]Configurable run intervals for missing and upgrade searches[/li] [li]Per-instance stagger, retry windows, and batch-size caps[/li] [li]Active-hours window — restrict searches to quiet times[/li] [li]Interleaved multi-instance cycling to spread load[/li] [li]Season-pack awareness for Sonarr[/li] [li]Include/exclude by *Arr tag label[/li] [/ul] [b]Defence (Killarr) — download cleanup[/b] [ul] [li]Detects stalled, dangerous-file, no-files, TBA, and unknown queue items[/li] [li]Per-reason action: ignore / remove / retry / blocklist[/li] [li]Configurable removal cap per instance per cycle[/li] [li]Optionally triggers a replacement search after cleanup[/li] [li]Dry-run mode — log what would happen without touching anything[/li] [/ul] [b]Setup:[/b] Copy [b]config.example.yaml[/b] from the GitHub repo to your config directory as [b]config.yaml[/b], fill in your Sonarr/Radarr/Lidarr host URLs, and use [b]${SONARR_API_KEY}[/b] / [b]${RADARR_API_KEY}[/b] / [b]${LIDARR_API_KEY}[/b] placeholders so keys stay out of config files. Set those keys below. See the README for the full config reference. https://github.com/johagan94/warden/issues https://github.com/johagan94/warden https://raw.githubusercontent.com/johagan94/warden/main/README.md MediaApp:Other Tools:Utilities https://raw.githubusercontent.com/johagan94/warden/main/templates/warden.xml MIT sonarr radarr lidarr arr search missing upgrade stalled cleanup queue killarr vigilance defence /mnt/user/appdata/warden /mnt/user/appdata/warden/.env warden UTC INFO