Internal admin tool for deploying Hero OS demos on the ThreeFold Grid.
  • Rust 53.1%
  • JavaScript 26%
  • HTML 16.3%
  • CSS 3.2%
  • Shell 1.4%
Find a file
mik-tf 39513ae6d9
All checks were successful
lab release / release (push) Successful in 42m42s
ci(release): clear stale release assets before lab upload
lab build --upload skips release assets that already exist by name, so the
rolling latest-* release froze at its first-uploaded binaries (assets dated
2026-06-12 while the release record kept refreshing on every push). A
downloaded binary was therefore stale (pre-M13), and it panicked opening the
migrated deployer DB, which broke dashboard-driven self-upgrade of the
deployer.

Delete the tag's existing assets via the Forge API before the upload so each
push republishes fresh binaries. See
#29.

Signed-by: mik-tf <mik-tf@noreply.invalid>
2026-06-14 10:03:33 -04:00
.forgejo/workflows ci(release): clear stale release assets before lab upload 2026-06-14 10:03:33 -04:00
crates Revert "feat(install): drop hero_biz, hero_slides, hero_whiteboard from the tester bundle" 2026-06-14 09:06:37 -04:00
schema chore: auto-commit local changes before pull 2026-05-31 23:42:11 +02:00
.gitignore deployer_server: bump ureq to 3.x to fix CI build 2026-05-28 09:35:26 -04:00
Cargo.lock feat(deployer): add admin control surface 2026-06-10 10:13:03 -04:00
Cargo.toml fix(admin): name the Control card Hero Cockpit and land on its main page 2026-06-11 22:53:39 -04:00
Cargo.toml.hero_builder_backup refactor: migrate from hero_rpc/herolib_core service macros to hero_lifecycle 2026-06-01 09:32:40 +02:00
README.md deployer: rename HERO_SOCKET_DIR → PATH_SOCKET + drop RUST_LOG/HERO_COMPUTE_NODE_ADDR env entries 2026-05-26 12:49:55 +02:00
rust-toolchain.toml chore: set rust-version to 1.96 and add rust-toolchain.toml 2026-06-01 13:31:07 +02:00

hero_tfgrid_deployer

Internal admin deployment tool for Hero OS demo environments on the ThreeFold Grid.

Purpose

Administrators use this tool to:

  1. Deploy VMs on the ThreeFold Grid — create one VM per demo user or environment, select capacity/node/location as needed, and track VM status, IP, and access details.

  2. Install Forge Hero OS — run lab builder inside each VM after creation to deploy and configure Hero OS automatically, with status and logs visible in the admin interface.

  3. Manage Forge accounts — check whether a user account exists at forge.ourworld.tf, create it if it does not, and link it to the deployed VM/Hero OS instance.

  4. Admin view — see all demo users, their associated VMs, and deployment status. Admins can access user machines directly (this is an internal demo tool, not a privacy environment).

  5. User view — each demo user sees only their own Hero OS environment. Admin functionality is not visible in the user view.

Crate layout

Crate Role
hero_tfgrid_deployer CLI — registers server + admin with hero_proc (--start / --stop)
hero_tfgrid_deployer_server JSON-RPC 2.0 daemon over Unix socket (OpenRPC)
hero_tfgrid_deployer_admin Admin web dashboard (Axum + Askama + Bootstrap)
hero_tfgrid_deployer_sdk Typed OpenRPC client generated from openrpc.json

Development

# Build all crates
lab build

# Start the service
hero_tfgrid_deployer --start

# Stop the service
hero_tfgrid_deployer --stop

Architecture

  • Transport: Unix domain sockets under $PATH_SOCKET/hero_tfgrid_deployer/
  • RPC socket: rpc.sock — JSON-RPC 2.0 / OpenRPC
  • Admin socket: admin.sock — HTTP / Axum dashboard

The server exposes its spec at /openrpc.json and a health endpoint at /health.