Web UI — Setup and Admin
The React SPA in os/services/web/ covers both flows:
| Route | What it is | Key files |
|---|---|---|
/setup | First-boot provisioning — Wi-Fi + admin password + LLM/channel prefill | src/pages/Setup.tsx, src/components/setup/* |
/login | Admin login (bcrypt-checked against config.admin_password_hash) | src/pages/Login.tsx |
/monitor | Post-login dashboard — flow monitor, live device state | src/pages/monitor/* |
/setting | Admin settings — rotate password, edit config, channel management | src/pages/settings/* |
Setup form deep-links: the companion app pushes ?llm_api_key=…&tele_token=…
into the Setup page so operators don't retype secrets. Params are captured at
module load and stripped from the URL for privacy.