Panel full reload — fixed MAIN/LB mirror (native, NO supervisor). BUILD mirror (lab MAIN 192.168.1.155): sudo CMS_PASS=123852 bash /home/pack-mirror.sh PANEL Full Reload (wait OK each): MAIN → LB001 → LB002 → LB003 → CACHE AUTOMATIC (CMS cron → post_full_reload_cluster.sh): 1. DB firewall 2. deploy_abr_cache_fix → run_cluster_sync: - relink ABR from existing parent+child rows (FHD/HD/SD) - adaptive nginx map - NO ffprobe overwrite (keeps M3U children) 3. push LB credentials 4. start all LB streams: - panel API (start_cluster_abr_streams.php) - native_lb_start_streams.sh on each LB (ffmpeg + pid/monitor_pid sync) 5. verify_cluster_abr.py LB install hook (post_full_reload_lb.py — runs on each LB right after extract): - lib/legacy + libGeoIP.so.1 (real file, not symlink) - GeoLite2 from MAIN - lb_restore_native.sh (signal_receiver ON, no supervisor) - native_lb_start_streams.sh (ffmpeg boot — ionCube stream_monitor broken) LB.tar.gz includes: php.real, lib/legacy, libGeoIP.so.1, lb_restore_native.sh, native_ffmpeg_boot.php, native_lb_start_streams.sh, xtream_decoy.php, lb_streams_tmpfs_cleanup.sh, install_lb_streams_tmpfs_cron.sh (cron every 10 min — purge stale .ts on tmpfs /streams) CMS must stay online (no CMS reload needed if already deployed): balancer.py triggers post_full_reload_cluster.sh after each node reload. Manual fallback on CMS: bash pytools/post_full_reload_cluster.sh Fast Reload (panel — no reinstall): bash pytools/fast_reload.sh → kill nginx/ffmpeg/xtream + start_services LB: then native_lb_start_streams.sh (streams restart, brief outage) Full Reload keeps streams running; Fast Reload restarts them. Test: http://CACHE_IP:8880/live/USER/PASS/PARENT_ID.m3u8