feat: replace Watchtower with Diun for update monitoring
Replaced Watchtower (auto-updater) with Diun (notification-only) for
safer update management in production environments.
Why the change:
- Watchtower auto-updates can break production systems
- Discord webhook integration was problematic with Watchtower
- Diun provides notifications without auto-updating (safer)
- Diun uses Discord webhook URLs directly (no Shoutrrr conversion)
- Better control over when and how updates are applied
Changes in arr-stack_template.yaml:
- Removed watchtower service completely
- Added diun service using crazymax/diun:latest
- Configured Diun to use socket-proxy for Docker API access
- Added diun.enable=true labels to 11 monitored services:
* gluetun, qbittorrent, flaresolverr, sabnzbd
* prowlarr, radarr, sonarr, bazarr
* emby, jellyseerr, recyclarr
- Diun configured with:
* Watch by default: false (only labeled containers)
* Discord notifications with render fields
* Schedule-based checking
* Memory limit: 128M (vs Watchtower's 256M)
Changes in .env.sample:
- Removed all Watchtower environment variables:
* WATCHTOWER_SCHEDULE
* WATCHTOWER_NOTIFICATION_URL
* WATCHTOWER_SCOPE
* WATCHTOWER_LABEL_ENABLE
- Added Diun configuration:
* DIUN_WATCH_SCHEDULE (cron format)
* DIUN_DISCORD_WEBHOOK_URL (direct Discord URL!)
- Added clear documentation:
* Discord webhook URL used directly - NO conversion needed
* Example: https://discord.com/api/webhooks/ID/TOKEN
* Default schedule: every 6 hours (0 */6 * * *)
Documentation updates:
- Created comprehensive docs/DIUN.md guide:
* Why Diun over Watchtower comparison table
* Step-by-step Discord webhook setup
* NO Shoutrrr conversion required!
* Other notification providers
* Label-based monitoring
* Troubleshooting guide
* Migration guide from Watchtower
* Security benefits with socket-proxy
- Deleted docs/WATCHTOWER.md
- Updated README.md:
* Replaced all Watchtower references with Diun
* Updated troubleshooting section
* Updated best practices
* Updated documentation links
* Fixed example commands (docker logs diun)
Key Benefits:
1. Safer: Notifications only, you control when to update
2. Simpler: Discord webhooks work directly (no format conversion)
3. Flexible: Label-based control over what to monitor
4. Lighter: Uses less memory (128M vs 256M)
5. Professional: Better for production environments
Discord Webhook Comparison:
- Watchtower: discord://TOKEN@ID (Shoutrrr format, complex)
- Diun: https://discord.com/api/webhooks/ID/TOKEN (direct, simple)
Migration path:
1. Remove watchtower from compose
2. Update .env with DIUN_ variables
3. Use Discord webhook URL directly
4. Regenerate compose file
5. Deploy with docker-compose up -d
Breaking change: Users must update .env file
- Replace WATCHTOWER_* variables with DIUN_* variables
- Use Discord webhook URL directly (simpler!)
Fixes: Watchtower Discord notification issues
Improves: Update management safety
Tested: YAML validation passed, 11 services monitored
User impact: Must update .env and regenerate compose files