Enviro Station is an air quality monitoring platform with three services:
device: Raspberry Pi runtime that reads sensors and ingests readingsbackend: Go API for ingest, storage, streaming, and AI insightsdashboard-v2: React dashboard for live and historical visibility
- Device reads Enviro+ sensors and posts to backend ingest endpoints.
- Backend validates readings, stores data in Postgres, and emits SSE updates.
- Dashboard reads history and subscribes to stream updates.
backend: Go API + Postgres migrationsdevice: Python runtime with queue-based retrydashboard-v2: Vite/React UI
Each service tracks a single template file: .env.example.
Create a local runtime file by copying it to .env.
cd backend
cp .env.example .env
docker compose up --buildBackend runs on http://localhost:8080.
cd dashboard-v2
cp .env.example .env
npm install
npm run devcd device
./install.sh
cp .env.example .env
uv run python main.pyPOST /api/ingest(requiresX-API-Key)POST /api/ingest/batch(requiresX-API-Key)GET /api/stream(SSE)GET /api/readings?limit=...GET /api/insights?analysis_limit=...&limit=...GET /healthGET /ready