mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-07-26 11:49:16 +00:00
6fff2c2d35
The self-update feature failed on remote nodes because SelfUpdateService ran `docker compose -f <host_path>` inside the container, where the host compose file path does not exist. The fix splits the update into two steps: (1) pull the latest image directly via `docker pull`, and (2) spawn a short-lived helper container that mounts the compose directory from the host and runs `docker compose up --force-recreate`. Additional changes: - Use execFileSync/execFile with argument arrays instead of shell strings to eliminate shell injection surface from Docker label values - Add Signal 4 completion detection: mark update as completed when the remote version matches the gateway version (with 15s elapsed guard) - Extend early failure heuristic from 90s to 3 minutes for slow pulls - Distinguish "node unreachable" from "node lacks self-update capability" in error messages; use silent skip in update-all to avoid res crashes - Add requireAdmin guard to POST /api/system/update - Handle comma-separated compose config file paths (multiple -f flags) - Update fleet docs with self-update mechanism, troubleshooting entries