Standalone repository for the new AirTrace core: v2 API, Python SSR web app, Postgres-backed alerts, Telegram delivery, and production deployment assets.
- Production domain: https://nande.webhop.me
- Web UI: https://nande.webhop.me
- API docs: https://nande.webhop.me/docs
- Health: https://nande.webhop.me/api/v2/health
- Stable public readonly API:
GET /v2/currentGET /v2/forecastGET /v2/historyGET /v2/trendsGET /v2/health
- Alert write paths:
POST /v2/alertsGET /v2/alertsGET /v2/alerts/{id}PATCH /v2/alerts/{id}DELETE /v2/alerts/{id}
- Python SSR web:
- city pages
- history and trends pages
- compare UI
- alerts settings UI
- explainability blocks
- Production foundation:
- Docker deployment profile
- Postgres + Redis stack
- Sentry integration
- GitHub Actions safety net
- VPS runbook
api/v1/ legacy compatibility adapter
api/v2/ stable public v2 API
application/ use cases, queries, SSR web layer
domain/ AQI, NMU, confidence, pollutants
infrastructure/ DB, repositories, cache, providers
core/ app factory, lifecycle, settings
web/ Python SSR app, templates, static assets
config/ runtime config and cities mapping
docs/ roadmap, ADRs, ops and deployment docs
tests/ regression, contract, SSR, migration gates
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python start_app.pyAfter startup:
- API: http://localhost:8000
- Web: http://localhost:3000
- Swagger: http://localhost:8000/docs
The repo supports local .env loading. Typical local variables:
ALERTS_API_KEY=...
TELEGRAM_BOT_TOKEN=...
SENTRY_DSN=...
API_BASE_URL=http://127.0.0.1:8000Main deployment assets:
mainis the active branch forAirTrace-v2- this repository is the primary home for ongoing
v2work - the original
Airtrace-RUrepo is now the legacy/historical reference
Split provenance:
- source repository: Airtrace-RU
- source branch:
airtrace-v2 - source commit:
e1170d8b53c35f6d4f00dccfaa49133cf5d205a6 - details: docs/repository_provenance.md
- docs/public_api_v2.md
- docs/production_compose_profile.md
- docs/vps_deployment_runbook.md
- docs/post_deploy_hardening.md
- openapi/airtrace-v2.openapi.json
Examples:
.\.venv\Scripts\python -m pytest tests\test_stage0_ssr_smoke.py -q
.\.venv\Scripts\python -m pytest tests\test_v2_contract.py -q
.\.venv\Scripts\python -m pytest tests\test_stage5_alerts_ui.py -qCI already checks:
- compile safety
- focused regression pack
- production compose assets
- post-deploy hardening
- alerts UX polish
- continued cleanup of remaining legacy weight inside
v2