The hw/ module used to build a bootable Alpine USB for a fresh storage node — all the bats tests, build scripts, package.json, RUNBOOK, and tunnel-setup docs were tooling for that flow. The host (rack) is now provisioned and live; the only thing the module needs to express is the hardware manifest. Trim hw/ down to README + config.yaml describing the actual hardware (Pop!_OS 24.04, Ryzen 9 3950X, 125 GiB RAM, drive serials) plus pointers to where each runtime concern actually lives (compose.yml for services, infra/traefik for the proxy, etc.). Also drop logs/dbt.log — stale build log that should never have been tracked. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
hw
Hardware inventory for rack, the storage host.
config.yaml— host + drive manifest (single source of truth for hardware)docs/— motherboard, SSD, and M.2 carrier datasheets
Everything else about this host is already live and configured elsewhere:
| Concern | Where it lives |
|---|---|
| Docker services | ../compose.yml |
| Reverse proxy | ../infra/traefik/ |
| Cloudflare tunnel | ../infra/cloudflared/config.yml (routes *.fhirworx.io → traefik) |
| SSH / YubiKey auth | ~/.ssh/authorized_keys on host (YubiKey FIDO2 + fallback keys; mirror in config.yaml) |
| LUKS2 boot volume | /dev/nvme0n1p3 → cryptdata → LVM data-root (mounted /) |