Files
hamlab/examples/external-demo

External demo

index.html is a stranger's page: one file, no build, no framework, served from a different origin than Ham Lab. It knows a base URL and a read-only sensor token (config.js, not in git) and nothing else. Each tab is one shaped query POSTed to /api/sensors/query?full=1 on an interval; sparklines are seeded from /api/sensors/history; the Fleet tab is one call to /api/fleet/sensors/query.

// config.js
window.HAMLAB = { base: 'http://10.0.0.234:8100', token: '<read-only sensor token>' }

Anyone who can load the page can read the token, so serve it only where that's acceptable (it can read sensors and nothing else). Deployed on core as the hamlab-demo stack — see Hamlet docs/docker.md. Update it with cp examples/external-demo/index.html /home/core/apps/hamlab-demo/site/.

To link it from the Widgets tab, set "demo_url": "http://…" in the hub's config.json and restart Ham Lab.