v0.1 scope — admin tool to provision per-user Hero OS demo VMs #2
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?
v0.1 scope — admin tool to provision per-user Hero OS demo VMs
Umbrella issue for the deployer admin tool's first cut. Builds directly on the meeting minutes and the s132 VM-bootstrap groundwork. Filing this as a scope-declaration so the team can object / coordinate before code starts.
Goal
A single admin-facing Rust binary that, given a username, produces a working Hero OS demo VM accessible to that user via a Forge OAuth-gated public HTTPS URL. The team uses this to hand out demo machines to investors, partners, community members, Bifrost contacts.
Explicitly NOT in v0.1:
Architecture
Scaffold from
hero_templateso the deployer follows the canonical Hero service workspace shape:hero_os_tfgrid_deployerhero_os_tfgrid_deployerhero_os_tfgrid_deployer_serverhero_os_tfgrid_deployer_serverhero_os_tfgrid_deployer/rpc.sockhero_os_tfgrid_deployer_sdkhero_os_tfgrid_deployer_adminhero_os_tfgrid_deployer_adminhero_os_tfgrid_deployer/admin.sockPer
/hero_ui_dashboard_adminfor the admin UI shape;hero_admin_libmandatory.State backend: sqlite. Schema in a sibling issue.
Provisioning flow (per user)
Receives:
username+ optionaldisplay_name+ optionalforge_email.ComputeService.deploy_vm(seehero_compute#deployer-integration) with 16 CPU / 8 GB / 200 GB / 16 GB rootfs / Ubuntu 24.04 / mycelium-only / publicip=false / node_id pinned to a gateway-capable freefarm node (1/8/13/50; deployer picks the one with most headroom via gridproxy.grid.tf).ComputeService.deploy_webgatewaymapping<username>.<node>.grid.tf→http://<vm_ip>:9988(hero_router's listen port).get_vmfor mycelium_ip).~driver/hero/cfg/cockpit/services.toml(format defined inhero_cockpit#1§6). Default profile =demo(proxy + router + proc + cockpit + embedder-small + db + books).vm_execonce that's confirmed working for long-running scripts). The script reads the manifest, installs the selected binaries vialab build <name> --download --install, starts the bootstrap-core daemons./healthfrom cockpit.Out-of-band coordination needed (not in this scope)
hero_computeend-to-end stability confirmation. Today's s132 used OpenTofu directly as a fallback path; deployer v0.1 will be flag-switchable between the two backends (see sibling issue).Decommission flow
Reverse-order:
ComputeService.delete_webgatewayComputeService.delete_vmImplementation plan
Each sub-issue will be filed separately. This umbrella tracks overall progress.
References
hero_os_tfgrid_deployer#1hero_demosetup-binaries.shhero_cockpit#1hero_compute#deployer-integration— confirmation + gap-discussionhero_template/hero_website·/hero_ui_dashboard_admin·/hero_service_check_fixSub-issues (filed 2026-05-20)
Coordination references
hero_computeintegration: hero_compute#116 — confirms VM lifecycle methods available + flags small gaps