[prod] Hero OS as a versioned nu-shell distribution #187
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Ship Hero OS as a coherent, versioned distribution that any Linux operator can deploy out of the box. Hosting decisions (backups, observability, HA, secrets vault, staging, SLO) stay with the operator. Hero OS provides the product; operators provide the ops.
This is the umbrella tracker for taking Hero OS from "working demo" (Phase 2, home#185) to "prod-level distribution".
Six pillars
All six must be green for "prod":
install_coredetects platform (TFGrid btrfs, Hetzner ext4, Ubuntu/Debian, etc) and adapts. No hardcoded10.1.2.2/ btrfs assumptions.--coreonly,--no-office,--no-voice, etc. Each service degrades gracefully if its dependency isn't running.hero_proxy --auth-mode); demo helper retired. Tracked at home#186.Distribution model
nu-shell-native. Each Hero repo publishes its binaries on tag push:
A meta-release on
hero_demopins all sub-versions for a given Hero OS version:service_install_alllearns a download mode:Docker / k8s / nomad / whatever wrapper format is operator's call. The existing
hero_demo/.forgejo/workflows/build-container.yaml(docker-era pipeline) stays where it is — no active maintenance, no rework. Operators who need a container image can wrap the binaries themselves.P0 — distribution bedrock (next 1-2 weeks)
vMAJOR.MINOR.PATCH-devuntil v1.0; semver after. One source of truth in each repo'sCargo.toml/buildenv.sh.release.yamlworkflow —hero_routeralready implements this.release.yamlfires on tagv*push, cross-compiles tox86_64-unknown-linux-musl(static-pie), uploads each binary in$BINARIESas<BIN>-linux-amd64-musl. Verified producing working 8.6 MB statically-linked PIE assets athero_router/releases/v0.2.2. Port this template to every other Hero repo as part of home#188 — pattern is uniform, not bespoke.release.yamlto a red repo.service_install_all --release <ver>download path — new code path inhero_skills. Per-service module gets apkg_url(version)helper; falls through to source build if download fails or--build-from-sourceis given.hero_demothat bumps every Hero repo's version constant + tags them in coordinated order. Could behero_demo/scripts/release.sh v0.1.1-dev.hero_demo— single point that says "Hero OS v0.1.0-dev = these versions of each Hero repo". Release notes are auto-generated from the per-repo CHANGELOGs.install_core— drop hardcoded/data/btrfs/10.1.2.2assumptions; detect or accept env overrides. Hetzner / DO / bare-metal Ubuntu 24 should all work.P1 — quality + hardening (next month)
deploy clean → curl every advertised endpoint. Catches the URL-scheme / port-mismatch / wrong-flag class of bugs before deploy.service_complete --no-office,--no-voice,--no-collabflags. Document supported subsets in the runbook.DEPLOYMENT_NU_HERO_OS.md: how the architecture fits together, how to add a new service module, howhero_procaction+service registration works in nu.P2 — architecture follow-throughs (next quarter)
ortcrate version unification acrosshero_voice+hero_embedder— home#173. Multi-day cross-repo refactor; deploy-side workaround in place via two parallel ONNX installs.hero_bizHero0Config→ OSIS per-domain refactor — home#180. Multi-day; native Business island works as alternative.Out of scope (operator's call, not Hero OS's)
Hero OS exposes the hooks; operators build the stack they want around them.
hero_secrets.nuis the hook; Vault / SOPS / cloud KMS / env is the operator's call)Acceptance — "Hero OS v0.1.0-dev shipped" means
v0.1.0-devwith a binary.tar.gzassethero_demohas a meta-releasev0.1.0-devpointing at themservice_install_all --release v0.1.0-devproduces a working Hero OS deploy in <10 min on a fresh Ubuntu 24 VM (any provider — TFGrid, Hetzner, DO, bare metal)--releaseflag where appropriateRelated trackers
Signed-off-by: mik-tf
mik-tf referenced this issue2026-04-26 00:45:50 +00:00
Moved to hero_demo#38 — see lhumina_code/hero_demo#38