No description
  • JavaScript 84%
  • CSS 10.4%
  • Rust 5%
  • HTML 0.6%
Find a file
despiegk 76919265a7 Remove redundant env vars from service.toml manifests and propagate web server errors
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>
2026-05-20 19:29:31 +02:00
crates Remove redundant env vars from service.toml manifests and propagate web server errors 2026-05-20 19:29:31 +02:00
.gitignore Add Hero TFGrid Deployer workspace with server, admin, and SDK crates 2026-05-20 19:01:01 +02:00
Cargo.toml Add Hero TFGrid Deployer workspace with server, admin, and SDK crates 2026-05-20 19:01:01 +02:00
README.md Add Hero TFGrid Deployer workspace with server, admin, and SDK crates 2026-05-20 19:01:01 +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 $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.