The host's default python3 may predate stdlib tomllib (cochi/Ubuntu 22.04 ships
3.10), so the shebang-resolved python3 failed the version guard and strict-halt
aborted the run. Pick the first python3.11+ interpreter instead.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
update-all.sh is the single source of truth for the on-host post-pull build +
restart steps: render drasl/nmsr configs, sync server mods, regen the landing
mod list, rebuild www/, then apply via docker compose. Two modes:
- default (rolling): up -d --build, then restart ONLY services whose mounted
inputs changed since a pre-run snapshot — drasl/nmsr on a config re-render,
minecraft on a mod change. Minimal downtime. (Cannot detect caddy static-conf
changes — use --hard for those.)
- --hard: down --remove-orphans && up -d --build (full restart, MC downtime).
Strict halt on any error; landing build sources nvm + pnpm (never npm) and bakes
.env. fetch-authlib stays out (rarely changes) — the deploy skill runs it before
update-all. Refactor the deploy skill to `pull && fetch-authlib && update-all.sh
--hard` so the step list can't drift.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>