Portability: sysfs-only sensors with thermal-zone fallback, /sys/block disk discovery, fs blacklist, pwrstat/NUT/apcupsd UPS, login shell from passwd, templated unit + install for any user, cross-compile targets
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
3c6f4d4639
commit
7053cce7fe
@@ -3,8 +3,26 @@
|
||||
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: **planning**. See [`PLAN.md`](PLAN.md) for the MVP scope and roadmap. No code yet.
|
||||
Status: **v0.1** — persistent web terminals and a live Dashboard tab. Scope and roadmap in
|
||||
[`PLAN.md`](PLAN.md).
|
||||
|
||||
- Runs as a systemd service on the host it manages, as user `core`.
|
||||
- Public at `https://hamlab.bigham.dev` (behind Nginx Proxy Manager on `core`).
|
||||
## 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.
|
||||
|
||||
- On `core` it is public at `https://hamlab.bigham.dev` behind Nginx Proxy Manager.
|
||||
- Installable as a PWA.
|
||||
|
||||
Reference in New Issue
Block a user