feat: add guided unified installer #58

Merged
ochenstarik-ui merged 3 commits from codex/unified-installer into main 2026-08-17 19:20:36 +00:00
ochenstarik-ui commented 2026-08-17 18:41:25 +00:00 (Migrated from github.com)

Summary

  • make smm-setup.sh with no arguments a guided Hub/Node installer when attached to a TTY
  • show distro, version, architecture, detected public address, and installed roles
  • validate Hub address/ports and strictly parse SMMNODE2, showing decoded Hub endpoints and the CA SHA-256 fingerprint before confirmation
  • provision missing base dependencies, retain bootstrap-managed pinned cosign installation, and show download progress
  • print the operator device registration code and CA fingerprint after Hub setup, and direct the operator to insert the emitted SMMPEER1 after Node setup
  • preserve all existing explicit/pass-through commands and their diagnostics
  • document interactive, repeat-run, and automation behavior

Verification

Local (clean Linux checkout):

  • bash tests/bootstrap/test-unified-installer.sh — Hub flow, Node flow, no-TTY refusal, truncated/extra/tampered CA code rejection, and pass-through: PASS
  • bash tests/bootstrap/test-release-contract.sh — existing non-interactive release contract: PASS
  • bash -n deploy/smm-setup.sh tests/bootstrap/test-unified-installer.sh
  • git diff --check

Final CI after synchronizing with merged mesh permissions and current main:

Not verified

  • no manual installation was performed on the owner's live Hub/Node machines
  • the complete bootstrap contract was not cleanly reproducible in the local WSL image because its preinstalled cosign v3 requires a different signing-bundle option; the same contract passed in the canonical Linux CI run above
## Summary - make `smm-setup.sh` with no arguments a guided Hub/Node installer when attached to a TTY - show distro, version, architecture, detected public address, and installed roles - validate Hub address/ports and strictly parse `SMMNODE2`, showing decoded Hub endpoints and the CA SHA-256 fingerprint before confirmation - provision missing base dependencies, retain bootstrap-managed pinned cosign installation, and show download progress - print the operator device registration code and CA fingerprint after Hub setup, and direct the operator to insert the emitted `SMMPEER1` after Node setup - preserve all existing explicit/pass-through commands and their diagnostics - document interactive, repeat-run, and automation behavior ## Verification Local (clean Linux checkout): - `bash tests/bootstrap/test-unified-installer.sh` — Hub flow, Node flow, no-TTY refusal, truncated/extra/tampered CA code rejection, and pass-through: PASS - `bash tests/bootstrap/test-release-contract.sh` — existing non-interactive release contract: PASS - `bash -n deploy/smm-setup.sh tests/bootstrap/test-unified-installer.sh` - `git diff --check` Final CI after synchronizing with merged mesh permissions and current `main`: - [Linux control and agent](https://github.com/ochenstarik-ui/server-monitor-manager/actions/runs/32059149273) - [Linux platform matrix](https://github.com/ochenstarik-ui/server-monitor-manager/actions/runs/32059149256) - [Windows build](https://github.com/ochenstarik-ui/server-monitor-manager/actions/runs/32059149278) ## Not verified - no manual installation was performed on the owner's live Hub/Node machines - the complete bootstrap contract was not cleanly reproducible in the local WSL image because its preinstalled cosign v3 requires a different signing-bundle option; the same contract passed in the canonical Linux CI run above
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: ochenstarik/server-monitor-manager#58
No description provided.