Deployment¶
Local development¶
All tooling is driven by dashboard/Makefile (Python and npm come from
pixi-managed global envs; there is no pixi.toml in this repo):
cd dashboard
make install # backend deps (pixi global sync) + frontend (npm install)
make dev # backend (:8000, granian) + frontend (:5173, vite) concurrently
Backend env (see dashboard/backend/.env.example for the full list):
BIRDCURVE_DUCKDB_PATH— read-only DuckDB fileBIRDCURVE_MODEL_RESULTS_DIR— BirdCurve NL model/forecast run directoriesBIRDCURVE_HISTORICAL_FEATURES_PATH— engineered-features glob (correlation matrix)BIRDCURVE_EUR_USD_PATH,BIRDCURVE_COAL_API2_PATH— optional sidecar CSV globs
Tests¶
cd dashboard
make test-backend # backend tests (integration tests skip without the live DuckDB)
cd frontend
npm run lint
npm run build # tsc -b + vite build = the API contract check
CI (.github/workflows/ci.yml) runs the frontend lint + build and the
backend test suite on every push and pull request.
Docs site (this site)¶
Built with MkDocs Material + mkdocstrings. Two deploy targets are configured:
GitHub Pages (primary)¶
.github/workflows/docs.yml builds on every push to main and deploys via actions/deploy-pages@v4. Site at https://maykthewessen.github.io/birdcurve-dashboard/.
ReadTheDocs (mirror)¶
.readthedocs.yaml at repo root tells RTD how to build the same site. Connect the repo on readthedocs.org once and it will publish to birdcurve-dashboard.readthedocs.io.