- Rust 53.1%
- JavaScript 26%
- HTML 16.3%
- CSS 3.2%
- Shell 1.4%
|
All checks were successful
lab release / release (push) Successful in 42m42s
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> |
||
|---|---|---|
| .forgejo/workflows | ||
| crates | ||
| schema | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Cargo.toml.hero_builder_backup | ||
| README.md | ||
| rust-toolchain.toml | ||
hero_tfgrid_deployer
Internal admin deployment tool for Hero OS demo environments on the ThreeFold Grid.
Purpose
Administrators use this tool to:
-
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.
-
Install Forge Hero OS — run
lab builderinside each VM after creation to deploy and configure Hero OS automatically, with status and logs visible in the admin interface. -
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. -
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).
-
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.