Gmer4Lfe
e8b114094a
Bring script headers onto the template and close safeguard gaps
...
Headers claimed protections the code never had, and several destructive paths had no
guard against a collapsed config value.
2026-08-01 20:37:59 -04:00
Gmer4Lfe
27bfc21cb0
Platform-agnostic refactor: eliminate OS-specific hardcodes from core scripts
...
All bash scripts are now platform-neutral. Unraid-specific paths, commands,
and service checks moved to Plugin/unraid/adapter.sh. Core scripts call
platform_*() functions exclusively — no direct OS paths in runtime logic.
New adapter functions: platform_storage_path, platform_webui_install_path,
platform_scripts_dir_probe_cmd, platform_setup_db_path, platform_storage_healthy,
platform_is_service_enabled, platform_get_temp_thresholds, platform_disk_states_path,
platform_rebuild_container, platform_push_conf, platform_push_setup_state,
platform_get_templates_dir, platform_send_os_notification.
Partnership services stack (Emby/Jellyfin/Seerr/SeerrFin) added as third
onboarding stack alongside auth and arr stacks.
2026-06-14 00:59:19 -04:00
Gmer4Lfe
127b070f7b
Verbose logging: add config dump log() calls to Monitors, Media, Tools, Rsync, Fallback
2026-06-04 21:37:53 -04:00
Gmer4Lfe
369a9e6c19
Platform adapter: rename System_Essentials, add Plugin/unraid/adapter.sh, wire call sites
...
- Rename unRAID_Essentials/ → System_Essentials/ (git detects as rename)
- Add Plugin/unraid/adapter.sh: 13 platform_*() functions providing OS-agnostic API
for storage health, service management, mover, user scripts, notifications,
disk temps, and platform command validation
- Update load_config.sh: detect PLATFORM (unraid/truenas/unknown), export SCRIPTS_DIR,
auto-source Plugin/$PLATFORM/adapter.sh after common.sh
- Wire all call sites: replace direct rc.d, pgrep/pkill, var.ini, dynamix.cfg,
disks.ini, and validate_unraid_cmd calls with platform_*() functions across
watchdogs, orchestrators, and System_Essentials scripts
- Update all documentation: rename refs, update webgui escalation logic,
add platform adapter section to Plugin README, update main README with
portability vision and corrected self-healing stack description
2026-06-04 18:14:34 -04:00
Gmer4Lfe
cb7d7a688d
rename: failover → fallback throughout codebase — this system is Fallback, state is FALLBACK; preserve conventional failover comparisons
2026-06-01 20:04:17 -04:00
Gmer4Lfe
95151c2278
Watchdogs/ folder + host conf rename
...
Move all watchdog scripts to a dedicated Watchdogs/ folder:
Docker_Essentials/docker_watchdog.sh → Watchdogs/
unRAID_Essentials/system_watchdog.sh → Watchdogs/
unRAID_Essentials/resource_watchdog.sh → Watchdogs/
Orchestrators/watchdog_orchestrator.sh → Watchdogs/
Tools/watchdog_skip_list_manager.sh → Watchdogs/
Rename host config files:
master_host1.conf → host1.conf
master_host2.conf → host2.conf
Update all references across the ecosystem:
master.conf: WATCHDOG_ORCHESTRATOR_SCRIPTS paths → Watchdogs/
load_config.sh: host*.conf glob + all comments
git_pull_execute.sh: sparse checkout glob + all comments
Partnership/ssh_setup.sh: HOST_CONF path construction
user_script_plug-in.sh: all script paths + per-host conf path
common.sh, README.md, README-User_Script_Plug-in.md: comment refs
All Partnership, Fallback, Monitors, Transcodes, Tools scripts: comment refs
2026-05-22 17:08:36 -04:00
Gmer4Lfe
84f133b99b
Monitors echo/log audit pass
...
Status conclusions and clean-check summaries → echo: backup_verify (pre-flight
passed, all files match), bandwidth_monitor (logged transfer entry),
cert_monitor/smart_health (all healthy), system_tuning_monitor (snapshot written),
weekly_health_digest (smart no-findings exit, digest sent), zfs_memory_snapshot
(all pools ONLINE, all checks within thresholds). Manual-Monitors.md: added
Output Tiers section.
2026-05-21 17:28:01 -04:00
Gmer4Lfe
e13f2fa14f
feat: slskd reconnect guard in downloaders_reset, mass v2 sync
...
- downloaders_reset: connection check block before slskd API sections;
triggers PUT /api/v0/server reconnect if disconnected, polls 60s,
gates Stuck Searches and Dead Transfer Records on SLSKD_CONNECTED
- Sync all modified/new/deleted files from v2 refactor across Docker_Essentials,
Media, Monitors, Partnership, Rsync, Tools, Transcodes, unRAID_Essentials,
common.sh, master confs, and new Manual/README docs
2026-05-19 20:00:10 -04:00
Gmer4Lfe and Claude Sonnet 4.6
5526bc1eca
v2 post-migration bug fixes, lidarr_missing_art port, and Partnership SSH/FolderView3 enhancements
...
Bug fixes across the ecosystem after v1→v2 architecture migration and Unraid 7.2.5 upgrade:
- common.sh: fix _alias_array() phantom empty element (removed [@]:-} pattern), fix
resolve_remote_ip() with Tailscale FQDN lowercase + awk fallback, add FANART/LASTFM
key aliases in detect_hosts(), global [@]:-} sweep across 10+ scripts
- webgui_restart.sh: fix emhttp detection (pgrep emhttpd) and restart command for 7.2.5
(/usr/local/sbin/emhttp stop && start — rc.emhttp removed in 7.2.5)
- bandwidth_monitor.sh, continuous_scripts_status.sh: fix 'local' keyword outside function
- backup_verify.sh: fix resolve_remote_ip() called before detect_hosts()
- Orchestrators: fix script display duplication bug in status output (${entry##*/})
- rsync_stop.sh, git_pull_execute.sh, partnership_manager.sh, coffee_report: lowercase all
tailscale ip -4 call sites to match Tailscale's lowercase device names
- master_host1.conf: fix SSH key path (gmer4lfe_rsync_automation), add FANART/LASTFM keys
- master_host2.conf: add FANART/LASTFM API keys
New: Media/lidarr_missing_art.sh
- Full ecosystem port of standalone Lidarr artwork fetcher
- Fetches missing album art via fanart.tv + Last.fm APIs
- @tsv batch extraction: 1 jq call per API response vs N*albums (8050 albums in 24s)
- HOST guard (HOST1 only), --status, --dry-run, acquire_lock
New: Initial_run/ssh_setup.sh
- Generates {hostname}_rsync_automation ed25519 keypair (skip if exists, --force to regen)
- ssh-copy-id to remote via Tailscale IP, auto-updates master_host*.conf
- --validate mode: strike tracking (SSH_MAX_STRIKES, SSH_STRIKE_RESET_HRS),
notify at limit — Tailscale-unreachable remote does NOT count as SSH strike
New: Initial_run/partnership_onboard.sh
- Orchestrator: ssh_setup.sh then partnership_manager.sh --onboard in one command
Partnership/partnership_manager.sh: FolderView3 integration
- Derive partner folder name at runtime (strip unraid- prefix case-insensitively)
- --onboard: create {Mirror}-Failover folder with failover tier containers
- --offboard (both paths): stop + rm containers in folder, remove JSON entry
- --check: calls ssh_setup.sh --validate when IP resolves but SSH state empty
- --status: shows FolderView3 folder state and containers inline
master.conf: SSH_MAX_STRIKES, SSH_STRIKE_RESET_HRS, PARTNERSHIP_FOLDERVIEW3,
PARTNERSHIP_FOLDERVIEW3_URL added to Partnership section
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-08 18:20:23 -04:00
FailedProxy
ec7de648dc
massive update. Master conf split, now modular with a load sceriprt to drive all configs to scripts. with unraid scpecific safeguard tests , and improved standardized ux. including dynamic host detect, who am i who else it there. EVERY SINGLE SCRIPT UPDATED. DEBATING THAT THIS IS ACUALLY V2
2026-05-03 17:16:49 -04:00
FailedProxy
6f2e19265b
updated my variables in master.conf
2026-04-14 17:38:44 -04:00
FailedProxy
f1529db3a0
did way to much,,,,,, mostly added monitors, but almost every file was edited in some way
2026-04-14 17:11:49 -04:00