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:
@@ -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
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
...
|
...
|
||||||
)
|
)
|
||||||
# ─────────────────────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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: 0–5 meaningful adds per run. Not bulk import — only artists likely to match your taste.
|
# Goal: 0–5 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: 0–5 meaningful adds per run.
|
# Goal: 0–5 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: 0–3 meaningful adds per run.
|
# Goal: 0–3 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
|
||||||
|
|
||||||
|
|
||||||
# ──────────────────────────────────────────────────────────────────────────────────────────────
|
# ──────────────────────────────────────────────────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user