MOS bare-metal deployment + full stack integration test #71
Labels
No labels
meeting-notes
meeting-sensitive
meeting-transcript
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coopcloud_code/home#71
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
Boot 3 physical nodes with MOS, install hero_compute, register them in the marketplace, and validate the full farmer→user rental flow on real hardware.
Context
The marketplace software is feature-complete for the farmer→user loop (issues #67-#69 closed, 398 tests pass). Everything works on a single dev node. Now we need to prove it works on real MOS-booted hardware with multiple nodes.
Per conversation with Mahmoud (2026-04-10): install MOS + hero_compute on nodes and report issues.
Steps
Step 1: Build MOS image
Step 2: Create bootable USB
UEFI firmware finds
BOOTX64.EFIand boots it. Kernel has embedded initramfs — single file, runs from RAM. USB stays in for reboot persistence.Step 3: Network bootstrap (automatic)
MOS auto-starts mycelium daemon with hardcoded peers:
tcp://188.40.132.242:9651+quic://188.40.132.242:9651Step 4: Install hero_compute
For multi-node setup:
hero_compute_server auto-registers with explorer on first heartbeat (60s interval).
Key env var:
EXPLORER_ADDRESSESmust point to the explorer.Step 5: Register nodes in marketplace
Currently manual — farmer logs into https://dev-app.projectmycelium.org, navigates to My Nodes dashboard, fills the add-node form.
Follow-up: Build auto-discovery bridge that syncs explorer nodes into marketplace automatically.
Step 6: Full validation
Architecture
Dependencies
Related issues
Signed: mik-tf
Scope evolved: this issue is now Phase 1 of a broader scaling initiative tracked in mycelium_code/home#72.
Full design doc: https://forge.ourworld.tf/mycelium_code/projectmycelium_marketplace_deploy/src/branch/development_mik02/docs/scaling_architecture.md
The MOS bare-metal validation will happen as part of Phase 1 using a QEMU-hosted simulated MOS node (or a Docker-container-hosted
hero_compute_serverif MOS build is still blocked onupx-ucl). Real physical USB boot becomes a hand-off to devops once Phase 1 closes.Subsequent phases build the production-scale architecture on top (node crypto identity, auto-pairing, marketplace as stateless view over
hero_ledger).Phase 1 deployed and validated on dev
TL;DR: Phase 1 of the scaling architecture initiative (#72) replaced the original plan for #71 (physical MOS hardware deployment) with a simulated-node approach using the existing hero_compute node on the dev VM. Real farmer flow now works end-to-end with real explorer heartbeat data.
What was done
Built and deployed
:development_mik02tag images for backend and frontend todev-app.projectmycelium.orgvia docker-compose override on the dev VM. The newPOST /api/dashboard/nodes/from-explorerendpoint imports a running hero_compute node into marketplace by mycelium IP, auto-filling hostname, capacity, and slice count from the explorer heartbeat — no hand-entered capacity.Target node:
mycelium_ip:46a:52b7:d2c2:4416:ff0f:5892:d922:50dchostname:devpmmarketplacesid:0001, 1 slice, 7GB RAM, 100GB diskResult: FarmNode
016icreated withgrid_data.compute_node_sid = "0001"and fullexplorer_rawsnapshot — the Phase 5 pairing linkage is in place.Test results (run against https://dev-app.projectmycelium.org)
All regression suites green except pre-existing failures unrelated to this deploy:
Scope change from original #71
The original plan required building
vmlinuz.efiviamos_builder, creating a bootable USB, and running 3 MOS-booted physical nodes. That approach is deferred — it turned out to be unblockable for weeks (mos_builder blocked onupx-uclinstall, no physical hardware on site). The scaling architecture initiative (#72) rescoped Phase 1 to use a simulated node (the hero_compute already running on the dev VM), which proves the full marketplace → explorer → FarmNode flow with real heartbeat data. Real MOS hardware validation can slot in later without any marketplace-side changes.PRs
Known caveat
The dev VM hero_compute node is currently flagged
status: offlineby the explorer (last_seen > 600s TTL — onlyhero_compute_ex+hero_compute_uiprocesses are running, nohero_compute_serverheartbeating). The Phase 1 endpoint does not filter on heartbeat freshness so the import works, but actual VM deployment on this node will not work until someone restartshero_compute_serveron the host. Not blocking Phase 1 closure — the data-plane test is the goal here.Closing — merge of the two PRs above will ship the code to
development.mik-tf referenced this issue from lhumina_code/hero_compute2026-04-10 23:57:57 +00:00