# Ham Lab Web-based Linux management console for bare-metal Debian, in the style of the Proxmox web UI. Named after Ham the cat (see also HamTV). Status: **v0.1** — persistent web terminals and a live Dashboard tab. Scope and roadmap in [`PLAN.md`](PLAN.md). ## Runs on any Linux box One static Go binary with the UI embedded; no cgo, no Node at runtime, no agents. The Dashboard reads `/proc` and `/sys` directly (CPU, memory, hwmon or thermal-zone temps, fans, NICs, block devices, mounts) so it works the same on x86 and ARM, bare metal or VM, and just leaves a section empty when the hardware has nothing to report. UPS status is optional and picked up from whichever of `pwrstat`, NUT (`upsc`) or `apcupsd` is installed. ```sh make build # web + Go, or: make build-arm64 for a cross-compile ./deploy/install.sh # installs the binary + a systemd unit for the invoking user hamlab passwd # set the login password (config in ~/apps/hamlab/) sudo systemctl start hamlab # listens on 127.0.0.1:8100 by default; set "listen" in config.json ``` Terminals run as the user the service runs as, with that user's login shell. ## Managing several machines Install Ham Lab on each host. On the ones the hub should reach, add `"tls": "auto"` and a LAN `listen` address to `config.json` (a self-signed certificate is generated on first start). Then on the hub, open **Machines**, enter a name, the address (`https://host:8100`) and that machine's Ham Lab password once. The hub pins the certificate, keeps an access token, and every tab works against the chosen machine through the switcher at the top of the rail. - On `core` it is public at `https://hamlab.bigham.dev` behind Nginx Proxy Manager. - Installable as a PWA.