Move arr stack scripts from Media/ to Arrs_Stack/

Media/ now holds only media-level scripts (cleaner, permissions, play_state_sync).
All arr management scripts (cleanup, discovery, sync, webhooks, release fixer) live in Arrs_Stack/.
This commit is contained in:
Gmer4Lfe
2026-06-27 18:39:33 -04:00
parent 99b2d1879b
commit b4bc9267e9
26 changed files with 88 additions and 88 deletions
@@ -108,6 +108,6 @@ fi
mkdir -p /var/log/varaverk mkdir -p /var/log/varaverk
exec node "$ECOSYSTEM_ROOT/Media/webhook_listener.js" \ exec node "$ECOSYSTEM_ROOT/Arrs_Stack/webhook_listener.js" \
"$WEBHOOK_PORT" "$WEBHOOK_SECRET" "$ECOSYSTEM_ROOT" \ "$WEBHOOK_PORT" "$WEBHOOK_SECRET" "$ECOSYSTEM_ROOT" \
>> /var/log/varaverk/upgrade_webhook.log 2>&1 >> /var/log/varaverk/upgrade_webhook.log 2>&1
@@ -20,7 +20,7 @@ if (!port || !secret || !scriptsDir) {
} }
const LOG_FILE = '/var/log/varaverk/upgrade_webhook.log'; const LOG_FILE = '/var/log/varaverk/upgrade_webhook.log';
const HANDLER = path.join(scriptsDir, 'Media', 'upgrade_webhook_handler.sh'); const HANDLER = path.join(scriptsDir, 'Arrs_Stack', 'upgrade_webhook_handler.sh');
function log(msg) { function log(msg) {
const ts = new Date().toTimeString().slice(0, 8); const ts = new Date().toTimeString().slice(0, 8);
+12 -12
View File
@@ -304,7 +304,7 @@
"System_Essentials/inotify_tuning.sh" # bump inotify limits — containers miss events if exhausted "System_Essentials/inotify_tuning.sh" # bump inotify limits — containers miss events if exhausted
"Docker_Essentials/docker_network_connect.sh" # ensure networks exist + connect containers "Docker_Essentials/docker_network_connect.sh" # ensure networks exist + connect containers
"Tools/claude_startup.sh" # persist Claude data + binary to appdata; re-symlink on boot "Tools/claude_startup.sh" # persist Claude data + binary to appdata; re-symlink on boot
"Media/start_webhook_listener.sh" # arr upgrade webhook listener — continuous "Arrs_Stack/start_webhook_listener.sh" # arr upgrade webhook listener — continuous
"Fallback/fallback.sh" # mutual failover — continuous "Fallback/fallback.sh" # mutual failover — continuous
) )
@@ -367,7 +367,7 @@
# INTERMEDIATE_SYNC_SHARES is host-specific — configure HOST*_INTERMEDIATE_SYNC_SHARES in host*.conf. # INTERMEDIATE_SYNC_SHARES is host-specific — configure HOST*_INTERMEDIATE_SYNC_SHARES in host*.conf.
INTERMEDIATE_MAINTENANCE_SCRIPTS=( INTERMEDIATE_MAINTENANCE_SCRIPTS=(
"Media/arrs_failed_stalled_recovery.sh" # blocklist + re-search failed/stalled arr queue items "Arrs_Stack/arrs_failed_stalled_recovery.sh" # blocklist + re-search failed/stalled arr queue items
) )
# arr_sync.sh runs as a fixed first step in intermediate_sync_maintenance.sh — not listed here. # arr_sync.sh runs as a fixed first step in intermediate_sync_maintenance.sh — not listed here.
# It is controlled by ARR_SYNC_ENABLED (see Arr Sync section above). # It is controlled by ARR_SYNC_ENABLED (see Arr Sync section above).
@@ -381,13 +381,13 @@
"Media/media_shares_permissions.sh" # apply permissions — runs before cleaners "Media/media_shares_permissions.sh" # apply permissions — runs before cleaners
"Media/media_cleaner.sh anime" # remove junk from anime shares "Media/media_cleaner.sh anime" # remove junk from anime shares
"Media/media_cleaner.sh media" # remove junk from media shares "Media/media_cleaner.sh media" # remove junk from media shares
"Media/lidarr_release_fixer.sh" # fix wrong release editions before cleanup runs "Arrs_Stack/lidarr_release_fixer.sh" # fix wrong release editions before cleanup runs
"Media/lidarr_cleanup.sh" # remove orphaned music files "Arrs_Stack/lidarr_cleanup.sh" # remove orphaned music files
"Media/sonarr_cleanup.sh" # remove orphaned TV files "Arrs_Stack/sonarr_cleanup.sh" # remove orphaned TV files
"Media/radarr_cleanup.sh" # remove orphaned movie files "Arrs_Stack/radarr_cleanup.sh" # remove orphaned movie files
"Media/lidarr_missing_art.sh" # fetch missing album/artist artwork (HOST1 only — self-guards) "Arrs_Stack/lidarr_missing_art.sh" # fetch missing album/artist artwork (HOST1 only — self-guards)
"Media/radarr_tmdb_removed.sh" # remove movies dropped from TMDb "Arrs_Stack/radarr_tmdb_removed.sh" # remove movies dropped from TMDb
"Media/sonarr_tvdb_removed.sh" # remove series dropped from TVDB "Arrs_Stack/sonarr_tvdb_removed.sh" # remove series dropped from TVDB
"Docker_Essentials/docker_update.sh" # pull container image updates before restart "Docker_Essentials/docker_update.sh" # pull container image updates before restart
"Docker_Essentials/docker_daily_restart.sh" # daily container restarts — runs last "Docker_Essentials/docker_daily_restart.sh" # daily container restarts — runs last
) )
@@ -418,9 +418,9 @@
"Docker_Essentials/docker_update.sh --weekly" # pull latest images for WEEKLY_RESTART_CONTAINERS before restart "Docker_Essentials/docker_update.sh --weekly" # pull latest images for WEEKLY_RESTART_CONTAINERS before restart
"Docker_Essentials/docker_weekly_restart.sh" # weekly container restarts after sync "Docker_Essentials/docker_weekly_restart.sh" # weekly container restarts after sync
"System_Essentials/clear_logs.sh" # purge aged logs — Sunday only, low priority "System_Essentials/clear_logs.sh" # purge aged logs — Sunday only, low priority
"Media/playback_aware_lidarr_discovery.sh" # behavior-driven music discovery using weekly Emby playback history "Arrs_Stack/playback_aware_lidarr_discovery.sh" # behavior-driven music discovery using weekly Emby playback history
"Media/playback_aware_radarr_discovery.sh" # behavior-driven movie discovery using TMDB recommendations "Arrs_Stack/playback_aware_radarr_discovery.sh" # behavior-driven movie discovery using TMDB recommendations
"Media/playback_aware_sonarr_discovery.sh" # behavior-driven TV discovery using TMDB recommendations "Arrs_Stack/playback_aware_sonarr_discovery.sh" # behavior-driven TV discovery using TMDB recommendations
) )
# Pull updates for WEEKLY_RESTART_CONTAINERS before docker_weekly_restart.sh runs. # Pull updates for WEEKLY_RESTART_CONTAINERS before docker_weekly_restart.sh runs.
+12 -12
View File
@@ -300,7 +300,7 @@
"unRAID_Essentials/php_fpm_max_children.sh" # WebGUI performance tuning "unRAID_Essentials/php_fpm_max_children.sh" # WebGUI performance tuning
"unRAID_Essentials/inotify_tuning.sh" # bump inotify limits — containers miss events if exhausted "unRAID_Essentials/inotify_tuning.sh" # bump inotify limits — containers miss events if exhausted
"Docker_Essentials/docker_network_connect.sh" # ensure networks exist + connect containers "Docker_Essentials/docker_network_connect.sh" # ensure networks exist + connect containers
"Media/start_webhook_listener.sh" # arr upgrade webhook listener — continuous "Arrs_Stack/start_webhook_listener.sh" # arr upgrade webhook listener — continuous
"Fallback/fallback.sh" # mutual failover — continuous "Fallback/fallback.sh" # mutual failover — continuous
) )
@@ -362,7 +362,7 @@
# INTERMEDIATE_SYNC_SHARES is host-specific — configure HOST*_INTERMEDIATE_SYNC_SHARES in host*.conf. # INTERMEDIATE_SYNC_SHARES is host-specific — configure HOST*_INTERMEDIATE_SYNC_SHARES in host*.conf.
INTERMEDIATE_MAINTENANCE_SCRIPTS=( INTERMEDIATE_MAINTENANCE_SCRIPTS=(
"Media/arrs_failed_stalled_recovery.sh" # blocklist + re-search failed/stalled arr queue items "Arrs_Stack/arrs_failed_stalled_recovery.sh" # blocklist + re-search failed/stalled arr queue items
) )
# arr_sync.sh runs as a fixed first step in intermediate_sync_maintenance.sh — not listed here. # arr_sync.sh runs as a fixed first step in intermediate_sync_maintenance.sh — not listed here.
# It is controlled by ARR_SYNC_ENABLED (see Arr Sync section above). # It is controlled by ARR_SYNC_ENABLED (see Arr Sync section above).
@@ -376,13 +376,13 @@
"Media/media_shares_permissions.sh" # apply permissions — runs before cleaners "Media/media_shares_permissions.sh" # apply permissions — runs before cleaners
"Media/media_cleaner.sh anime" # remove junk from anime shares "Media/media_cleaner.sh anime" # remove junk from anime shares
"Media/media_cleaner.sh media" # remove junk from media shares "Media/media_cleaner.sh media" # remove junk from media shares
#"Media/lidarr_release_fixer.sh" # fix wrong release editions before cleanup runs — enable when ready #"Arrs_Stack/lidarr_release_fixer.sh" # fix wrong release editions before cleanup runs — enable when ready
#"Media/lidarr_cleanup.sh" # remove orphaned music files — enable when ready #"Arrs_Stack/lidarr_cleanup.sh" # remove orphaned music files — enable when ready
#"Media/sonarr_cleanup.sh" # remove orphaned TV files — enable when ready #"Arrs_Stack/sonarr_cleanup.sh" # remove orphaned TV files — enable when ready
"Media/radarr_cleanup.sh" # remove orphaned movie files "Arrs_Stack/radarr_cleanup.sh" # remove orphaned movie files
"Media/lidarr_missing_art.sh" # fetch missing album/artist artwork (HOST1 only — self-guards) "Arrs_Stack/lidarr_missing_art.sh" # fetch missing album/artist artwork (HOST1 only — self-guards)
"Media/radarr_tmdb_removed.sh" # remove movies dropped from TMDb "Arrs_Stack/radarr_tmdb_removed.sh" # remove movies dropped from TMDb
"Media/sonarr_tvdb_removed.sh" # remove series dropped from TVDB "Arrs_Stack/sonarr_tvdb_removed.sh" # remove series dropped from TVDB
"Docker_Essentials/docker_update.sh" # pull container image updates before restart "Docker_Essentials/docker_update.sh" # pull container image updates before restart
"Docker_Essentials/docker_daily_restart.sh" # daily container restarts — runs last "Docker_Essentials/docker_daily_restart.sh" # daily container restarts — runs last
) )
@@ -413,9 +413,9 @@
"Docker_Essentials/docker_weekly_restart.sh" # weekly container restarts after sync "Docker_Essentials/docker_weekly_restart.sh" # weekly container restarts after sync
"Docker_Essentials/docker_update_remaining.sh" # pull updates for all other containers "Docker_Essentials/docker_update_remaining.sh" # pull updates for all other containers
"unRAID_Essentials/clear_logs.sh" # purge aged logs — Sunday only, low priority "unRAID_Essentials/clear_logs.sh" # purge aged logs — Sunday only, low priority
"Media/playback_aware_lidarr_discovery.sh" # behavior-driven music discovery using weekly Emby playback history "Arrs_Stack/playback_aware_lidarr_discovery.sh" # behavior-driven music discovery using weekly Emby playback history
"Media/playback_aware_radarr_discovery.sh" # behavior-driven movie discovery using TMDB recommendations "Arrs_Stack/playback_aware_radarr_discovery.sh" # behavior-driven movie discovery using TMDB recommendations
"Media/playback_aware_sonarr_discovery.sh" # behavior-driven TV discovery using TMDB recommendations "Arrs_Stack/playback_aware_sonarr_discovery.sh" # behavior-driven TV discovery using TMDB recommendations
) )
# Pull updates for WEEKLY_RESTART_CONTAINERS before docker_weekly_restart.sh runs. # Pull updates for WEEKLY_RESTART_CONTAINERS before docker_weekly_restart.sh runs.
+1 -1
View File
@@ -12,7 +12,7 @@
# Does NOT download media, search indexers, or manage applications. Has no # Does NOT download media, search indexers, or manage applications. Has no
# side effects — no file writes, no API calls, no deletions. # side effects — no file writes, no API calls, no deletions.
# #
# Currently paired with: Media/playback_aware_lidarr_discovery.sh # Currently paired with: Arrs_Stack/playback_aware_lidarr_discovery.sh
# #
# ============================================================================================== # ==============================================================================================
# DESIGN PRINCIPLES # DESIGN PRINCIPLES
+3 -3
View File
@@ -316,9 +316,9 @@ MEDIA_MAINTENANCE_JOBS=(
"Media/media_shares_permissions.sh" # 1. permissions — always first "Media/media_shares_permissions.sh" # 1. permissions — always first
"Media/media_cleaner.sh anime" # 2. junk removal — before orphan scan "Media/media_cleaner.sh anime" # 2. junk removal — before orphan scan
"Media/media_cleaner.sh media" # 3. "Media/media_cleaner.sh media" # 3.
"Media/lidarr_cleanup.sh" # 4. arr cleanup — after permissions + clean "Arrs_Stack/lidarr_cleanup.sh" # 4. arr cleanup — after permissions + clean
"Media/sonarr_cleanup.sh" # 5. "Arrs_Stack/sonarr_cleanup.sh" # 5.
"Media/radarr_cleanup.sh" # 6. "Arrs_Stack/radarr_cleanup.sh" # 6.
) )
``` ```
+8 -8
View File
@@ -225,7 +225,7 @@ ARRAY_START_SCRIPTS=(
"Tools/claude_startup.sh" # symlink Claude persistent storage on /boot "Tools/claude_startup.sh" # symlink Claude persistent storage on /boot
# ── Continuous scripts — run until array stops ───────────────────────────── # ── Continuous scripts — run until array stops ─────────────────────────────
"Media/start_webhook_listener.sh" # start webhook listener before arrs POST events "Arrs_Stack/start_webhook_listener.sh" # start webhook listener before arrs POST events
"Fallback/fallback.sh" # fallback LAST — needs everything else stable "Fallback/fallback.sh" # fallback LAST — needs everything else stable
) )
@@ -583,9 +583,9 @@ DAILY_MAINTENANCE_SCRIPTS=(
"Media/media_shares_permissions.sh" # POST-SYNC — permissions before arr "Media/media_shares_permissions.sh" # POST-SYNC — permissions before arr
"Media/media_cleaner.sh anime" # POST-SYNC — junk before orphan scan "Media/media_cleaner.sh anime" # POST-SYNC — junk before orphan scan
"Media/media_cleaner.sh media" # POST-SYNC "Media/media_cleaner.sh media" # POST-SYNC
"Media/lidarr_cleanup.sh" # POST-SYNC — orphan cleanup last "Arrs_Stack/lidarr_cleanup.sh" # POST-SYNC — orphan cleanup last
"Media/sonarr_cleanup.sh" # POST-SYNC "Arrs_Stack/sonarr_cleanup.sh" # POST-SYNC
"Media/radarr_cleanup.sh" # POST-SYNC "Arrs_Stack/radarr_cleanup.sh" # POST-SYNC
"Docker_Essentials/docker_daily_restart.sh" # POST-SYNC — restarts after everything "Docker_Essentials/docker_daily_restart.sh" # POST-SYNC — restarts after everything
) )
@@ -625,9 +625,9 @@ DAILY_MAINTENANCE_SCRIPTS=(
"Media/media_cleaner.sh anime" "Media/media_cleaner.sh anime"
"Media/media_cleaner.sh media" "Media/media_cleaner.sh media"
"Media/my_new_script.sh" # ← add here in the correct order "Media/my_new_script.sh" # ← add here in the correct order
"Media/lidarr_cleanup.sh" "Arrs_Stack/lidarr_cleanup.sh"
"Media/sonarr_cleanup.sh" "Arrs_Stack/sonarr_cleanup.sh"
"Media/radarr_cleanup.sh" "Arrs_Stack/radarr_cleanup.sh"
"Docker_Essentials/docker_daily_restart.sh" "Docker_Essentials/docker_daily_restart.sh"
) )
@@ -637,7 +637,7 @@ DAILY_MAINTENANCE_SCRIPTS=(
"Media/media_shares_permissions.sh" "Media/media_shares_permissions.sh"
# "Media/media_cleaner.sh anime" # ← temporarily disabled # "Media/media_cleaner.sh anime" # ← temporarily disabled
"Media/media_cleaner.sh media" "Media/media_cleaner.sh media"
"Media/lidarr_cleanup.sh" "Arrs_Stack/lidarr_cleanup.sh"
... ...
) )
# ───────────────────────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────────────────────
+1 -1
View File
@@ -240,7 +240,7 @@ fi
echo "" echo ""
echo "━━━ $ICON_SYNC Arr Sync ━━━" echo "━━━ $ICON_SYNC Arr Sync ━━━"
ARR_SYNC_SCRIPT="$SCRIPTS_ROOT/Media/arr_sync.sh" ARR_SYNC_SCRIPT="$SCRIPTS_ROOT/Arrs_Stack/arr_sync.sh"
if [[ "${ARR_SYNC_ENABLED:-true}" != "true" ]]; then if [[ "${ARR_SYNC_ENABLED:-true}" != "true" ]]; then
echo "ARR_SYNC_ENABLED=false — skipping" echo "ARR_SYNC_ENABLED=false — skipping"
elif [[ ! -f "$ARR_SYNC_SCRIPT" ]]; then elif [[ ! -f "$ARR_SYNC_SCRIPT" ]]; then
@@ -209,7 +209,7 @@ fi
echo "" echo ""
echo "━━━ $ICON_SYNC Arr Sync ━━━" echo "━━━ $ICON_SYNC Arr Sync ━━━"
ARR_SYNC_SCRIPT="$SCRIPTS_ROOT/Media/arr_sync.sh" ARR_SYNC_SCRIPT="$SCRIPTS_ROOT/Arrs_Stack/arr_sync.sh"
if [[ "${ARR_SYNC_ENABLED:-true}" != "true" ]]; then if [[ "${ARR_SYNC_ENABLED:-true}" != "true" ]]; then
echo "ARR_SYNC_ENABLED=false — skipping" echo "ARR_SYNC_ENABLED=false — skipping"
elif [[ ! -f "$ARR_SYNC_SCRIPT" ]]; then elif [[ ! -f "$ARR_SYNC_SCRIPT" ]]; then
+5 -5
View File
@@ -667,14 +667,14 @@ if [[ "$ONBOARD_OK" == false ]]; then
warn "Skipping — onboard did not complete" warn "Skipping — onboard did not complete"
elif [[ "$SKIP_ARR_SYNC" == true ]]; then elif [[ "$SKIP_ARR_SYNC" == true ]]; then
warn "Skipping (--skip-arr-sync)" warn "Skipping (--skip-arr-sync)"
elif [[ ! -f "$SCRIPTS_ROOT/Media/arr_sync.sh" ]]; then elif [[ ! -f "$SCRIPTS_ROOT/Arrs_Stack/arr_sync.sh" ]]; then
warn "arr_sync.sh not found — run Media/arr_sync.sh manually once arrs are live" warn "arr_sync.sh not found — run Arrs_Stack/arr_sync.sh manually once arrs are live"
elif bash "$SCRIPTS_ROOT/Media/arr_sync.sh" "${EXTRA_FLAGS[@]}"; then elif bash "$SCRIPTS_ROOT/Arrs_Stack/arr_sync.sh" "${EXTRA_FLAGS[@]}"; then
echo "Arr bootstrap complete ✅" echo "Arr bootstrap complete ✅"
ARR_SYNC_OK=true ARR_SYNC_OK=true
else else
warn "Arr sync had errors — partnership still valid" warn "Arr sync had errors — partnership still valid"
warn "Re-run Media/arr_sync.sh once all arr containers are live" warn "Re-run Arrs_Stack/arr_sync.sh once all arr containers are live"
fi fi
# ── Step 9b: Webhook setup ──────────────────────────────────────────────────────────────────── # ── Step 9b: Webhook setup ────────────────────────────────────────────────────────────────────
@@ -742,7 +742,7 @@ fi
echo "" echo ""
echo "━━━ Step 9d — Webhook Listener (Mirror) ━━━" echo "━━━ Step 9d — Webhook Listener (Mirror) ━━━"
_listener_script="$SCRIPTS_ROOT/Media/start_webhook_listener.sh" _listener_script="$SCRIPTS_ROOT/Arrs_Stack/start_webhook_listener.sh"
if [[ "$SKIP_WEBHOOK_LISTENER" == true ]]; then if [[ "$SKIP_WEBHOOK_LISTENER" == true ]]; then
warn "Skipping (--skip-webhook-listener)" warn "Skipping (--skip-webhook-listener)"
elif [[ "${WEBHOOK_PORT:-0}" -eq 0 ]]; then elif [[ "${WEBHOOK_PORT:-0}" -eq 0 ]]; then
+39 -39
View File
@@ -903,9 +903,9 @@
# NUCLEAR MODE (use with full understanding): --i-know-what-im-doing --skip-strike-list # NUCLEAR MODE (use with full understanding): --i-know-what-im-doing --skip-strike-list
# Both flags: age check bypassed + size gate bypassed. Deletes everything not tracked. # Both flags: age check bypassed + size gate bypassed. Deletes everything not tracked.
# #
# bash /boot/config/plugins/varaverk/Media/lidarr_cleanup.sh --dry-run --log # bash /boot/config/plugins/varaverk/Arrs_Stack/lidarr_cleanup.sh --dry-run --log
# bash /boot/config/plugins/varaverk/Media/lidarr_cleanup.sh --status # bash /boot/config/plugins/varaverk/Arrs_Stack/lidarr_cleanup.sh --status
# bash /boot/config/plugins/varaverk/Media/lidarr_cleanup.sh # bash /boot/config/plugins/varaverk/Arrs_Stack/lidarr_cleanup.sh
# sonarr_cleanup.sh — delete orphaned TV files not tracked by Sonarr # sonarr_cleanup.sh — delete orphaned TV files not tracked by Sonarr
# HOST-AWARE: HOST1 manages Tv_Shows (via HOST1_SONARR_TV_ROOT). # HOST-AWARE: HOST1 manages Tv_Shows (via HOST1_SONARR_TV_ROOT).
@@ -915,9 +915,9 @@
# Protected: *.jpg *.png (episode/show artwork), *.nfo, *.srt *.sub *.ass *.ssa (Bazarr subtitles) # Protected: *.jpg *.png (episode/show artwork), *.nfo, *.srt *.sub *.ass *.ssa (Bazarr subtitles)
# After deletion: notify_emby_scan() clears ghost entries from Emby library immediately. # After deletion: notify_emby_scan() clears ghost entries from Emby library immediately.
# #
# bash /boot/config/plugins/varaverk/Media/sonarr_cleanup.sh --dry-run --log # bash /boot/config/plugins/varaverk/Arrs_Stack/sonarr_cleanup.sh --dry-run --log
# bash /boot/config/plugins/varaverk/Media/sonarr_cleanup.sh --status # bash /boot/config/plugins/varaverk/Arrs_Stack/sonarr_cleanup.sh --status
# bash /boot/config/plugins/varaverk/Media/sonarr_cleanup.sh # bash /boot/config/plugins/varaverk/Arrs_Stack/sonarr_cleanup.sh
# radarr_cleanup.sh — delete orphaned movie files not tracked by Radarr # radarr_cleanup.sh — delete orphaned movie files not tracked by Radarr
# HOST-AWARE: HOST1 manages Movies (via HOST1_RADARR_MOVIES_ROOT). # HOST-AWARE: HOST1 manages Movies (via HOST1_RADARR_MOVIES_ROOT).
@@ -926,9 +926,9 @@
# Protected: *.jpg *.png (movie artwork, fanart, thumbnails), *.nfo, subtitles # Protected: *.jpg *.png (movie artwork, fanart, thumbnails), *.nfo, subtitles
# After deletion: notify_emby_scan() clears ghost entries from Emby library immediately. # After deletion: notify_emby_scan() clears ghost entries from Emby library immediately.
# #
# bash /boot/config/plugins/varaverk/Media/radarr_cleanup.sh --dry-run --log # bash /boot/config/plugins/varaverk/Arrs_Stack/radarr_cleanup.sh --dry-run --log
# bash /boot/config/plugins/varaverk/Media/radarr_cleanup.sh --status # bash /boot/config/plugins/varaverk/Arrs_Stack/radarr_cleanup.sh --status
# bash /boot/config/plugins/varaverk/Media/radarr_cleanup.sh # bash /boot/config/plugins/varaverk/Arrs_Stack/radarr_cleanup.sh
# arr_sync.sh — bidirectional arr library sync across all nodes in the ecosystem # arr_sync.sh — bidirectional arr library sync across all nodes in the ecosystem
# Called by intermediate_sync_maintenance.sh every 4 hours. Can be run standalone. # Called by intermediate_sync_maintenance.sh every 4 hours. Can be run standalone.
@@ -944,48 +944,48 @@
# --blocklist-add does three things: tombstones, deletes local, deletes all remotes via SSH. # --blocklist-add does three things: tombstones, deletes local, deletes all remotes via SSH.
# Files become orphans on all nodes — arr_cleanup.sh removes them on next run. # Files become orphans on all nodes — arr_cleanup.sh removes them on next run.
# #
# bash /boot/config/plugins/varaverk/Media/arr_sync.sh --dry-run # bash /boot/config/plugins/varaverk/Arrs_Stack/arr_sync.sh --dry-run
# bash /boot/config/plugins/varaverk/Media/arr_sync.sh --status # bash /boot/config/plugins/varaverk/Arrs_Stack/arr_sync.sh --status
# bash /boot/config/plugins/varaverk/Media/arr_sync.sh # bash /boot/config/plugins/varaverk/Arrs_Stack/arr_sync.sh
# bash /boot/config/plugins/varaverk/Media/arr_sync.sh --blocklist-add radarr <tmdbId> "reason" # bash /boot/config/plugins/varaverk/Arrs_Stack/arr_sync.sh --blocklist-add radarr <tmdbId> "reason"
# bash /boot/config/plugins/varaverk/Media/arr_sync.sh --blocklist-add sonarr <tvdbId> "reason" # bash /boot/config/plugins/varaverk/Arrs_Stack/arr_sync.sh --blocklist-add sonarr <tvdbId> "reason"
# bash /boot/config/plugins/varaverk/Media/arr_sync.sh --blocklist-add lidarr <mbid> "reason" # bash /boot/config/plugins/varaverk/Arrs_Stack/arr_sync.sh --blocklist-add lidarr <mbid> "reason"
# bash /boot/config/plugins/varaverk/Media/arr_sync.sh --blocklist-remove radarr <id> # bash /boot/config/plugins/varaverk/Arrs_Stack/arr_sync.sh --blocklist-remove radarr <id>
# bash /boot/config/plugins/varaverk/Media/arr_sync.sh --blocklist-list # bash /boot/config/plugins/varaverk/Arrs_Stack/arr_sync.sh --blocklist-list
# arrs_failed_stalled_recovery.sh — blocklist + re-search failed/stalled arr imports # arrs_failed_stalled_recovery.sh — blocklist + re-search failed/stalled arr imports
# Called every 4 hours by intermediate_sync_maintenance.sh via INTERMEDIATE_MAINTENANCE_SCRIPTS. # Called every 4 hours by intermediate_sync_maintenance.sh via INTERMEDIATE_MAINTENANCE_SCRIPTS.
# Finds importFailed / importPending / error / stalled items across all configured arrs. # Finds importFailed / importPending / error / stalled items across all configured arrs.
# Age gate: items newer than ARR_IMPORT_RECOVERY_AGE (6hr) are skipped — arr may still self-retry. # Age gate: items newer than ARR_IMPORT_RECOVERY_AGE (6hr) are skipped — arr may still self-retry.
# bash /boot/config/plugins/varaverk/Media/arrs_failed_stalled_recovery.sh --dry-run # bash /boot/config/plugins/varaverk/Arrs_Stack/arrs_failed_stalled_recovery.sh --dry-run
# bash /boot/config/plugins/varaverk/Media/arrs_failed_stalled_recovery.sh --status # bash /boot/config/plugins/varaverk/Arrs_Stack/arrs_failed_stalled_recovery.sh --status
# playback_aware_lidarr_discovery.sh — behavior-driven music discovery (runs via WEEKLY_MAINTENANCE_SCRIPTS) # playback_aware_lidarr_discovery.sh — behavior-driven music discovery (runs via WEEKLY_MAINTENANCE_SCRIPTS)
# Called by weekly_sync_maintenance.sh on Sunday. Can be run standalone. # Called by weekly_sync_maintenance.sh on Sunday. Can be run standalone.
# Stage 1: score artists you actually played this week in Emby (play count + recency + user diversity). # Stage 1: score artists you actually played this week in Emby (play count + recency + user diversity).
# Stage 2: run Last.fm artist.getSimilar on top seeds, score recommendations, add top results to Lidarr. # Stage 2: run Last.fm artist.getSimilar on top seeds, score recommendations, add top results to Lidarr.
# Goal: 05 meaningful adds per run. Not bulk import — only artists likely to match your taste. # Goal: 05 meaningful adds per run. Not bulk import — only artists likely to match your taste.
# bash /boot/config/plugins/varaverk/Media/playback_aware_lidarr_discovery.sh --dry-run # bash /boot/config/plugins/varaverk/Arrs_Stack/playback_aware_lidarr_discovery.sh --dry-run
# bash /boot/config/plugins/varaverk/Media/playback_aware_lidarr_discovery.sh --status # bash /boot/config/plugins/varaverk/Arrs_Stack/playback_aware_lidarr_discovery.sh --status
# bash /boot/config/plugins/varaverk/Media/playback_aware_lidarr_discovery.sh # bash /boot/config/plugins/varaverk/Arrs_Stack/playback_aware_lidarr_discovery.sh
# playback_aware_radarr_discovery.sh — behavior-driven movie discovery (runs via WEEKLY_MAINTENANCE_SCRIPTS) # playback_aware_radarr_discovery.sh — behavior-driven movie discovery (runs via WEEKLY_MAINTENANCE_SCRIPTS)
# Called by weekly_sync_maintenance.sh on Sunday. Can be run standalone. # Called by weekly_sync_maintenance.sh on Sunday. Can be run standalone.
# Stage 1: score recently watched movies in Emby, weighted by recency and TMDB rating. # Stage 1: score recently watched movies in Emby, weighted by recency and TMDB rating.
# Stage 2: run TMDB recommendations on top seeds, score candidates, add top results to Radarr. # Stage 2: run TMDB recommendations on top seeds, score candidates, add top results to Radarr.
# Goal: 05 meaningful adds per run. # Goal: 05 meaningful adds per run.
# bash /boot/config/plugins/varaverk/Media/playback_aware_radarr_discovery.sh --dry-run # bash /boot/config/plugins/varaverk/Arrs_Stack/playback_aware_radarr_discovery.sh --dry-run
# bash /boot/config/plugins/varaverk/Media/playback_aware_radarr_discovery.sh --status # bash /boot/config/plugins/varaverk/Arrs_Stack/playback_aware_radarr_discovery.sh --status
# bash /boot/config/plugins/varaverk/Media/playback_aware_radarr_discovery.sh # bash /boot/config/plugins/varaverk/Arrs_Stack/playback_aware_radarr_discovery.sh
# playback_aware_sonarr_discovery.sh — behavior-driven TV discovery (runs via WEEKLY_MAINTENANCE_SCRIPTS) # playback_aware_sonarr_discovery.sh — behavior-driven TV discovery (runs via WEEKLY_MAINTENANCE_SCRIPTS)
# Called by weekly_sync_maintenance.sh on Sunday. Can be run standalone. # Called by weekly_sync_maintenance.sh on Sunday. Can be run standalone.
# Stage 1: score recently watched series in Emby (user diversity + recency + per-user-capped episodes). # Stage 1: score recently watched series in Emby (user diversity + recency + per-user-capped episodes).
# Stage 2: run TMDB TV recommendations on top seeds, score candidates, add top results to Sonarr. # Stage 2: run TMDB TV recommendations on top seeds, score candidates, add top results to Sonarr.
# Goal: 03 meaningful adds per run. # Goal: 03 meaningful adds per run.
# bash /boot/config/plugins/varaverk/Media/playback_aware_sonarr_discovery.sh --dry-run # bash /boot/config/plugins/varaverk/Arrs_Stack/playback_aware_sonarr_discovery.sh --dry-run
# bash /boot/config/plugins/varaverk/Media/playback_aware_sonarr_discovery.sh --status # bash /boot/config/plugins/varaverk/Arrs_Stack/playback_aware_sonarr_discovery.sh --status
# bash /boot/config/plugins/varaverk/Media/playback_aware_sonarr_discovery.sh # bash /boot/config/plugins/varaverk/Arrs_Stack/playback_aware_sonarr_discovery.sh
# lidarr_missing_art.sh — fetch missing album and artist artwork for the Lidarr music library # lidarr_missing_art.sh — fetch missing album and artist artwork for the Lidarr music library
# Called by intermediate_sync_maintenance.sh via INTERMEDIATE_MAINTENANCE_SCRIPTS. # Called by intermediate_sync_maintenance.sh via INTERMEDIATE_MAINTENANCE_SCRIPTS.
@@ -998,9 +998,9 @@
# Artist: folder.jpg fanart.jpg logo.png banner.jpg # Artist: folder.jpg fanart.jpg logo.png banner.jpg
# Sources: fanart.tv → iTunes (album) / Deezer / Last.fm (artist) fallbacks # Sources: fanart.tv → iTunes (album) / Deezer / Last.fm (artist) fallbacks
# #
# bash /boot/config/plugins/varaverk/Media/lidarr_missing_art.sh --dry-run --log # bash /boot/config/plugins/varaverk/Arrs_Stack/lidarr_missing_art.sh --dry-run --log
# bash /boot/config/plugins/varaverk/Media/lidarr_missing_art.sh --status # bash /boot/config/plugins/varaverk/Arrs_Stack/lidarr_missing_art.sh --status
# bash /boot/config/plugins/varaverk/Media/lidarr_missing_art.sh # bash /boot/config/plugins/varaverk/Arrs_Stack/lidarr_missing_art.sh
# radarr_tmdb_removed.sh — remove movies dropped from TMDb (status="deleted") # radarr_tmdb_removed.sh — remove movies dropped from TMDb (status="deleted")
# These generate Radarr system health errors and can never be monitored or downloaded. # These generate Radarr system health errors and can never be monitored or downloaded.
@@ -1009,20 +1009,20 @@
# Import exclusion added by default — prevents Radarr re-adding the same dropped movie. # Import exclusion added by default — prevents Radarr re-adding the same dropped movie.
# HOST1 only — exits cleanly on HOST2. # HOST1 only — exits cleanly on HOST2.
# #
# bash /boot/config/plugins/varaverk/Media/radarr_tmdb_removed.sh --dry-run # bash /boot/config/plugins/varaverk/Arrs_Stack/radarr_tmdb_removed.sh --dry-run
# bash /boot/config/plugins/varaverk/Media/radarr_tmdb_removed.sh --status # bash /boot/config/plugins/varaverk/Arrs_Stack/radarr_tmdb_removed.sh --status
# bash /boot/config/plugins/varaverk/Media/radarr_tmdb_removed.sh # bash /boot/config/plugins/varaverk/Arrs_Stack/radarr_tmdb_removed.sh
# bash /boot/config/plugins/varaverk/Media/radarr_tmdb_removed.sh --delete-files # bash /boot/config/plugins/varaverk/Arrs_Stack/radarr_tmdb_removed.sh --delete-files
# sonarr_tvdb_removed.sh — remove series dropped from TVDB (status="deleted") # sonarr_tvdb_removed.sh — remove series dropped from TVDB (status="deleted")
# Same pattern as radarr_tmdb_removed: Sonarr health errors, can't be monitored. # Same pattern as radarr_tmdb_removed: Sonarr health errors, can't be monitored.
# Files NOT deleted by default — use --delete-files to also remove from disk. # Files NOT deleted by default — use --delete-files to also remove from disk.
# Import exclusion added by default. HOST1 only. # Import exclusion added by default. HOST1 only.
# #
# bash /boot/config/plugins/varaverk/Media/sonarr_tvdb_removed.sh --dry-run # bash /boot/config/plugins/varaverk/Arrs_Stack/sonarr_tvdb_removed.sh --dry-run
# bash /boot/config/plugins/varaverk/Media/sonarr_tvdb_removed.sh --status # bash /boot/config/plugins/varaverk/Arrs_Stack/sonarr_tvdb_removed.sh --status
# bash /boot/config/plugins/varaverk/Media/sonarr_tvdb_removed.sh # bash /boot/config/plugins/varaverk/Arrs_Stack/sonarr_tvdb_removed.sh
# bash /boot/config/plugins/varaverk/Media/sonarr_tvdb_removed.sh --delete-files # bash /boot/config/plugins/varaverk/Arrs_Stack/sonarr_tvdb_removed.sh --delete-files
# ────────────────────────────────────────────────────────────────────────────────────────────── # ──────────────────────────────────────────────────────────────────────────────────────────────
+3 -3
View File
@@ -1062,7 +1062,7 @@ Background: YES
```bash ```bash
#!/bin/bash #!/bin/bash
/boot/config/plugins/varaverk/Media/lidarr_cleanup.sh --dry-run --log /boot/config/plugins/varaverk/Arrs_Stack/lidarr_cleanup.sh --dry-run --log
``` ```
**What it does:** **What it does:**
@@ -1094,7 +1094,7 @@ Background: YES
```bash ```bash
#!/bin/bash #!/bin/bash
/boot/config/plugins/varaverk/Media/sonarr_cleanup.sh --dry-run --log /boot/config/plugins/varaverk/Arrs_Stack/sonarr_cleanup.sh --dry-run --log
``` ```
**What it does:** **What it does:**
@@ -1115,7 +1115,7 @@ Background: YES
```bash ```bash
#!/bin/bash #!/bin/bash
/boot/config/plugins/varaverk/Media/radarr_cleanup.sh --dry-run --log /boot/config/plugins/varaverk/Arrs_Stack/radarr_cleanup.sh --dry-run --log
``` ```
**What it does:** **What it does:**
@@ -57,7 +57,7 @@ ARRAY_START_SCRIPTS=(
"System_Essentials/inotify_tuning.sh" # before docker_network_connect and continuous scripts "System_Essentials/inotify_tuning.sh" # before docker_network_connect and continuous scripts
"Docker_Essentials/docker_network_connect.sh" # ensure networks + container connections "Docker_Essentials/docker_network_connect.sh" # ensure networks + container connections
"Tools/claude_startup.sh" # persist Claude data to appdata; re-symlink on boot "Tools/claude_startup.sh" # persist Claude data to appdata; re-symlink on boot
"Media/start_webhook_listener.sh" # arr upgrade webhook — continuous "Arrs_Stack/start_webhook_listener.sh" # arr upgrade webhook — continuous
"Fallback/fallback.sh" # mutual failover — continuous "Fallback/fallback.sh" # mutual failover — continuous
) )