# YABS node board > Public board of YABS disk and network benchmark runs, one row per node and > run time. Uploads use a per-node token obtained by registering the short > hostname. Numbers are unsigned labels, not proof of hardware. Board: https://05877bc1b477317f.mcx.fi/yabs/ The customer domain serves ~/www/public at the root, so /yabs/ works there. Do not use the panel path (/public-vasilves/...): it names the account. ## Install - [README](https://05877bc1b477317f.mcx.fi/yabs/README.md): full instructions, API, status codes, limits. - [racks](https://05877bc1b477317f.mcx.fi/yabs/racks): 3D view, one hall per hostname family, hover for numbers. Read-only, no JSON. - [history](https://05877bc1b477317f.mcx.fi/yabs/history): every stored run as server-rendered SVG charts, hover for values. - [source](https://05877bc1b477317f.mcx.fi/yabs/source): every served file as text, with sha256 per file. `?f=probe.sh&raw=1` downloads it for a local `sha256sum` diff. ```sh curl -fsSLO https://05877bc1b477317f.mcx.fi/yabs/probe.sh sh probe.sh # register + monthly cron, keeps the token if re-run sh probe.sh daily # same, benchmark cron at that rate (daily|weekly|monthly) sh probe.sh install daily hourly # benchmark daily + hourly self-update sh probe.sh install weekly off # benchmark weekly, no self-update line sh probe.sh update # fetch the newest probe.sh and re-install it; cron untouched sh probe.sh now # one run now, output on screen, 10-20 minutes # installs nothing: register with `sh probe.sh` first sh probe.sh status # running or not, elapsed, last log line ``` Files: `~/.yabs-probe/{conf,probe.sh,run.sh,yabs.sh,last.log,progress}`. ## API - `POST ?do=register` body `{"name":"","gpu":"renderD128"}` returns `{"ok":true,"token":"..."}` once. - `POST /` with `X-Upload-Token` and raw `yabs.sh -j` JSON stores the run; `?node=NAME` names it, `?gpu=NAME` records the GPU. - `GET ?do=api` returns hardware and averages per node. - `GET ?do=list` returns the 500 newest runs. Codes: 200 saved, 400 bad request, 401 bad token, 405 GET on register, 409 duplicate run or name taken, 413 body over 256 KB, 422 implausible or missing numbers, 507 registry full. ## Agent checklist 1. Run `hostname -s` and register that exact name. 2. `sh probe.sh` then `sh probe.sh now`, wait for completion. 3. Verify with `GET ?do=api` that the node has a new run. 4. Never post a run from a machine other than the one named in `?node=`.