Added sleep action to setup-executor.sh to allow waiting for services
to fully initialize after Docker healthcheck passes. Applied 10s delay
after Decypharr healthcheck in both radarr.json and sonarr.json to
ensure qBittorrent API on port 8283 is fully ready before attempting
to add download client.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
CRITICAL FIX: ((i++)) causes script termination with set -e
Problem:
- Bash arithmetic ((...)) returns the result of the expression
- ((i++)) increments i from 0 to 1 and returns 1 (the NEW value)
- With 'set -e', any command returning non-zero terminates the script
- This caused setup-executor to exit after first step completion
Solution:
- Use i=$((i + 1)) instead of ((i++))
- This always returns exit code 0
- Script can continue to subsequent steps
This was the final blocker preventing auto-configuration from working.
- setup-executor.sh was failing silently when ROOT_DIR was undefined
- ROOT_DIR is used in recyclarr configuration but was never initialized
- Now defaults to /mediacenter if not set via environment variable
- Allows setup-executor.sh to run both from setup.sh and standalone
Created comprehensive template configuration system with dependency management:
**Template Configuration Files:**
- Created template.conf for all extras (8 total)
- Dependencies properly configured:
* Plex-dependent: overseerr, tautulli, plextraktsync
* Standalone: homarr, traefik, dashdot, pinchflat, watchtower
**Template Selector Script:**
- scripts/template-selector.sh: Interactive template selection
- Validates dependencies automatically
- Filters available options based on media server choice
- Shows proper descriptions from template.conf
- Returns space-separated list of templates
**Key Features:**
- Media server selection (Plex or None)
- Dynamic extras filtering based on dependencies
- If Plex not selected: Hides Overseerr, Tautulli, PlexTraktSync
- If Plex selected: Shows all compatible extras
- Summary confirmation before proceeding
**Testing:**
✓ With Plex: Shows 8 optional services
✓ Without Plex: Shows only 5 standalone services
✓ Dependency validation works correctly
✓ Output format correct for compose-generator
**Files Added:**
- scripts/template-selector.sh (executable)
- 8x templates/extras/*/template.conf
- 4x templates/extras/*/services.list
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
**Problem:**
Recyclarr was showing warnings about 9 obsolete HDR Custom Format IDs
that no longer exist in TRaSH Guides:
- e23edd2482476e595fb990b12e7c609c # DV HDR10 (old)
- 58d6a88f13e2db7f5059c41047876f00 # DV (old)
- 55d53828b9d81cbe20b02efd00aa0efd # DV HLG (old)
- a3e19f8f627608af0211acd02bf89735 # DV SDR (old)
- dfb86d5941bc9075d6af23b09c2aeecd # HDR10 (old)
- e61e28db95d22bedcadf030b8f156d96 # HDR (old)
- 2a4d9069cc1fe3242ff9bdaebed239bb # HDR (undefined) (old)
- 08d6d8834ad9ec87b1dc7ec8148e7a1f # PQ (old)
- 9364dd386c9b4a1100dde8264690add7 # HLG (old)
TRaSH Guides reorganized HDR Custom Formats with new IDs.
**Solution:**
1. Updated config/recyclarr.yml with current HDR format IDs
2. Replaced 9 obsolete IDs with 12 current IDs matching Sonarr config
3. Added UHD Streaming Boost and Cut formats
4. Fixed recyclarr-sync.sh API key injection using AWK instead of sed
**Changes:**
- config/recyclarr.yml: Updated Radarr HDR Custom Format IDs
- scripts/recyclarr-sync.sh: Fixed API key injection for both services
**Testing:**
Recyclarr sync now completes successfully without HDR-related warnings.
Both Radarr and Sonarr profiles updated correctly.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>