mirror of
https://github.com/nestriness/nestri.git
synced 2026-11-03 22:22:39 +02:00
``` bash <(curl -fsSL https://api.nestri.io/install.sh) -u # update this host bash <(curl -fsSL https://api.nestri.io/install.sh) <install-token> # make this machine a host bash <(curl -fsSL https://api.nestri.io/install.sh) -h # help ``` Piping still works: `curl -fsSL … | sh -s -- -u`. **`-u` / `--update`.** No token and no questions. On a registered machine it downloads and checksum-verifies the current host agent, swaps it in and restarts the service. The agent then pulls whatever its release changed (a raised image layout re-pulls the guest, jail and Proton). It refuses: - on a machine that was never installed, before downloading anything; - while a box is running, since restarting the agent would end that session; - on an unknown option. On a machine that already has the target version, it says so and exits 0. **Root, asked once.** The host agent runs as root, so when the script is started as anyone else it asks sudo once, before it changes anything. Neither a pipe nor `bash <(…)` leaves a file sudo could run again, so it fetches the same script to a private temp file, runs that as root with the same mode and token, and removes the copy as soon as root has it open. Only the settings somebody actually set (`NESTRI_HOST_VERSION`, `NESTRI_BIN_DIR`, `NESTRI_BOX_STORE`) are carried across. **Tested.** - **On an NVIDIA host:** `--update` took it 0.2.17 → 0.2.18, verified and restarted. A second run said "already 0.2.18. Nothing to do". - **On the fleet host, run as an ordinary user** with `bash <(curl …) -u`: - it asked for sudo, the root copy ran and said "Nothing to do", and no temp copy was left behind; - `-h` prints usage, and an unknown flag is refused. - **In a clean container:** `-u` refuses with "not a Nestri host yet", and a run with no token asks for one.