# dashboard service

This window does not run claude. It runs the existing Flask server +
cloudflared tunnel that powers `omidlab.net` (which serves the project site,
mobile chat, agents dashboard, and live paper PDF — all from one Flask
process at different routes).

## What to run in this window

```bash
cd /data/cameron/para/.agents/reports
source /data/cameron/agents_stuff/.env  # loads ANTHROPIC_API_KEY etc.
python serve.py --port 8090 &
while true; do
  cloudflared tunnel --url http://localhost:8090 run para-dashboard
  echo 'Tunnel died, restarting in 3s...'
  sleep 3
done
```

`bootstrap.sh` prints this command into the window as a banner — start it
manually so secrets aren't auto-injected by an unattended script.

## Routes served

- `omidlab.net/` — main agents dashboard
- `omidlab.net/para_website` — PARA project site
- `omidlab.net/chat` — mobile chat interface (paired with the `mobile_chat` agent)
- `omidlab.net/paper` — live LaTeX paper PDF
- `omidlab.net/agents` — agent terminal viewer (password protected)
- `omidlab.net/data_viewer` — dataset viewer (built by `data_visualizer`)
- `omidlab.net/browse/` — file browser

## Splitting later

If you want to break out into separate service windows (e.g., `project_site`,
`mobile_chat_site`, `agents_dashboard`), add entries to `services:` in
`config.yaml`. Each can run its own server on a different port; an
nginx/cloudflared front routes paths to backends.
