- JavaScript 84%
- CSS 10.4%
- Rust 5%
- HTML 0.6%
Drop HERO_SOCKET_DIR and RUST_LOG [[env]] entries that duplicate framework-level defaults. Wire the web server task into tokio::select! on both unix and non-unix targets so an unexpected exit panics loudly instead of being silently swallowed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| crates | ||
| .gitignore | ||
| Cargo.toml | ||
| README.md | ||
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
$HERO_SOCKET_DIR/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.