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