hub v0.28.0 + host-install v1.2.0: settings→Configuration, online install, vmid auto-detect

Part A (hub): move the global-floor + Day-0-artifacts cards from the Customers
page to the Configuration tab; routes → /configuration/{global-floor,artifacts};
redirects + flashes to /configuration. Customers page back to list + Add.

Part B: online setup command on the customer page (download-then-run, passphrase
at prompt, not templated); serve /scripts/ from the website (sparse-checkout +
nginx location) so felhom.eu/scripts/felhom-host-install.sh resolves; script
passphrase prompt reads < /dev/tty (works for pipe-to-bash too).

Part C (script): --vmid auto-detect — default 9201 in use + no --force → pick the
next free id from pct+qm and confirm; explicit --vmid stays die-unless-force.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-01 06:43:29 +02:00
parent 54daaf949a
commit 562c0dfeb6
10 changed files with 236 additions and 97 deletions
+25
View File
@@ -1,5 +1,30 @@
# Felhom Hub — Changelog
## v0.28.0 — global settings → Configuration tab + online setup command (2026-07-01)
Three operator-requested improvements (companion: host-install script v1.2.0).
- **Global settings moved from the Customers page to the Configuration tab** (`web/configuration.html`,
`configs.html`, `server.go`, `configs.go`). The two **global** cards — "Managed updates — global floor"
and "Day-0 artifacts — agent & golden" — were on the Customers list; they now render + save on
Configuration (where they belong). `handleConfiguration` supplies `GlobalFloor` + `Artifacts` +
`CSRFField`; the save handlers (`handleSetGlobalFloor`/`handleSetArtifacts`) now redirect to
`/configuration?flash=…` and are mounted at `/configuration/global-floor` + `/configuration/artifacts`;
their flash banners moved too. The Customers page is back to just the list + "Add Customer" (its
per-customer effective-floor column is unchanged).
- **Online setup command added** to a customer's Setup Command block (`customer_unified.html`). New
**"Option 1: Online install (recommended)"** — download-then-run: `curl -fsSL
https://felhom.eu/scripts/felhom-host-install.sh -o … && sudo bash … --customer-id <id>` — with a copy
button and the customer id filled. The passphrase is **not** templated in (entered at the prompt). The
former local-file command becomes Option 2, the debug curl Option 3. Download-then-run (not
`curl | sudo bash`) stays the recommended form — inspect before running.
- **Website now serves `/scripts/`** (`manifests/webpage.yaml`). The host-install script lives at the
repo's `/scripts` (outside the website doc-root); added `/scripts/` to the git-sync sparse-checkout and
an nginx `location /scripts/` (root `.../current`, `text/plain`) so
`https://felhom.eu/scripts/felhom-host-install.sh` resolves — single source of truth, no duplicated copy.
- **Remaining audit follow-ups unchanged:** controller-side geo intent sync; a read-only reported-vs-desired
"Show Diff"; the cosmetic `controllerURL` cleanup in `configs.go`.
## v0.27.0 — Hosts page: read-only fleet view (audit F-M1) (2026-07-01)
Resolves audit finding **F-M1**: the agent enrolls as a *host* and the hub stores rich host state