nginx on the gateway serves the bench SPA and reverse-proxies /api to the bob bench API over WireGuard — public, auth-less, same-origin (no CORS), internal API stays private. - asset/nginx/bench.helexa.ai.conf (full TLS vhost: SPA + /api proxy) and a bootstrap http-only vhost for the initial ACME challenge. - infra-setup.sh: one-time gateway setup — webroot, Let's Encrypt cert (certbot webroot, idempotent), install + enable the vhost. - deploy.yml: deploy-bench-ui builds the SPA (setup-node) and rsyncs dist/ to /var/www/bench.helexa.ai every deploy; built same-origin so no VITE_API_BASE. - cortex-host.conf: scoped gitea_ci rsync grant for the webroot. - bench/README: production hosting notes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.6 KiB
helexa bench UI
A Vite + React (SWC, TypeScript) app that visualises the fleet benchmark
data collected by helexa-bench. It reads the read-only JSON API the
bench daemon serves (crates/helexa-bench/src/api.rs, default
:13132 on bob).
Stack: React Router, react-bootstrap, Recharts.
Pages
- Overview — latest median results per (host, model, scenario) cell.
- Trends — decode-tok/s and TTFT plotted across neuron build SHAs as releases roll out (the headline view). Pick host / model / scenario.
- Runs — filterable raw-run explorer.
Develop
cd bench
npm install
npm run dev # http://localhost:5173
vite.config.ts proxies /api → http://bob.hanzalova.internal:13132,
so the dev server talks to the live bench API with no CORS fuss. Point
the proxy elsewhere (or run a local helexa-bench serve) to develop
against other data.
Production hosting
Public at https://bench.helexa.ai — nginx on the gateway
(hanzalova.internal) serves the static dist/ and reverse-proxies
/api to the bench API on bob over WireGuard, so the SPA is same-origin
(no CORS) and the internal API stays off the public internet.
npm run buildis run with noVITE_API_BASE(the app calls/api/...on its own origin; nginx proxies it to bob)..gitea/workflows/deploy.yml(deploy-bench-ui) builds and rsyncsdist/to/var/www/bench.helexa.aion every deploy.- The nginx vhost (
asset/nginx/bench.helexa.ai.conf) and the Let's Encrypt cert are one-time host setup inscript/infra-setup.sh.
To host elsewhere instead, build with
VITE_API_BASE=<bob-api-origin> and serve the static dist/.