feat(maestro): add install.sh bootstrap for one-line install/update
ci / rust (push) Successful in 1m30s

Single command for both first install and subsequent updates:

  curl -sSf https://git.naps.pt/naps62/maestro/raw/branch/main/install.sh | sh

Builds `maestro-installer` into a temp `--root`, runs the wizard, cleans up —
so only `maestrod` and `maestro` persist in `~/.cargo/bin`. Re-running updates
in place via cargo install's overwrite semantics. Wizard flags pass through
with `sh -s --`. Docs updated to lead with the one-liner.

Refs NAP-225.
This commit is contained in:
2026-05-25 14:37:52 +00:00
parent 2da41cc720
commit a4593c3b19
2 changed files with 62 additions and 5 deletions
+25 -5
View File
@@ -1,11 +1,19 @@
# Installing Maestro
The fastest way to get `maestrod` (per-host daemon) and `maestro` (CLI) onto a
host is the install wizard:
One command, used for both first install and subsequent updates:
```sh
cargo install --git https://git.naps.pt/naps62/maestro maestro-installer
maestro-install
curl -sSf https://git.naps.pt/naps62/maestro/raw/branch/main/install.sh | sh
```
The bootstrap script builds `maestro-installer` into a temp directory, runs the
wizard, and cleans up — only `maestrod` and `maestro` end up persisted in
`~/.cargo/bin`. Re-run any time to update; `cargo install` overwrites in place.
Pass flags through to the wizard via `sh -s --`:
```sh
curl -sSf https://git.naps.pt/naps62/maestro/raw/branch/main/install.sh | sh -s -- --yes --no-systemd
```
The wizard:
@@ -60,7 +68,19 @@ systemctl --user status maestrod
journalctl --user -u maestrod -f
```
## Manual install (no wizard)
## Running the wizard without the bootstrap script
If you'd rather not pipe a script:
```sh
cargo install --git https://git.naps.pt/naps62/maestro maestro-installer
maestro-install
```
This leaves `maestro-installer` permanently in `~/.cargo/bin` — the bootstrap
script avoids that by installing to a scratch dir.
## Fully manual install (no wizard)
```sh
cargo install --git https://git.naps.pt/naps62/maestro --locked maestro-daemon