Introduce a new hydraskin role that turns any low-cost machine (Raspberry Pi 5, Intel N150 mini PC, etc.) into a container hosting node for the Hydra. Each container running on a hydraskin node is called a scale.
HydraSkin extends the Hydra with sub-500 USD CAPEX container hosts. The initial fleet is Raspberry Pi 5 (arm64) with NVMe storage, but the design is hardware-agnostic — any machine that can run Ubuntu Server + Incus can be a hydraskin node.
We need lightweight, cheap compute nodes for running containerized workloads alongside the existing streaming/render infrastructure. Rather than building a custom container runtime, we leverage Incus (the community fork of LXD) which provides a mature REST API, CLI, and btrfs-backed storage — all managed through the existing HydraCluster recipe provisioning pipeline.
Add to RoleCatalog: hydraskin with Category container.
Add container to CategoryOrder between creation and infra.
Steps: check-prerequisites, install-incus, initialize-incus, configure-defaults, configure-firewall, setup-snapshot-cron, verify.
Add Skin entry to More menu and /skin page showing hydraskin nodes and their scales (containers). Queries Incus REST API at wireguard_ip:8443 for each online skin node.
Rewrite for NVMe workflow with Ubuntu Server 24.04 arm64.
releases.experiencenet.com returns 404 for hydranode/production/latest/hydranode-linux-arm64.
Admin assigns hydraskin role to node -> Node heartbeat: ProvisionPending=true -> hydranode fetches GET /api/v1/body/provision -> Server loads recipes/hydraskin-linux.yaml -> hydranode executes steps -> Admin UI shows progress.
See full implementation plan at github.com/cederikdotcom/hydraskin