The README still opened on "Primary School Compass", a KS2 tool for Wandsworth and Merton served by FastAPI and vanilla JavaScript with Chart.js. Every layer of that sentence is now wrong: coverage is England-wide across KS2, KS4, all-through and post-16, Next.js owns the public UI, and school data comes from dbt-built `marts.*` rather than CSVs loaded at startup. The setup instructions walked a reader into a virtualenv and a CSV import that cannot build the current schema, so following the docs produced an empty database and a wrong mental model at the same time. Replace the narrative docs with two reference documents that were checked against the code: docs/ARCHITECTURE.md for request flow, data ownership, the backend/frontend module boundaries and the real publication sequence, and docs/DEVELOPMENT.md for the checks that actually run, including the container and CI version skew that makes "just run pytest" misleading. The env examples drifted the same way. ALLOWED_ORIGINS is a JSON array, not a comma-separated list; the frontend needs FASTAPI_URL, DATABASE_URL and PAYLOAD_SECRET, none of which were documented; and RATE_LIMIT_BURST, DEFAULT_PAGE_SIZE and MAX_PAGE_SIZE were presented as tuning controls the routes do not consult. Each is now stated as it behaves. MIGRATION_SUMMARY.md keeps its content but gains a banner, because it reads like setup instructions and is not. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016y2J6bs8gbuSJbH18w7Tan
843 B
843 B
Docker deployment
The maintained deployment runbook is docs/DEPLOY.md.
- Production:
docker-compose.portainer.yml, using:prodimages. - Staging:
docker-compose.portainer.staging.yml, using:stagingimages. - Builds and deployment:
.gitea/workflows/deploy.yml. - Human-approved production promotion:
.gitea/workflows/promote.yml.
The generic docker-compose.yml is not a supported one-command onboarding path:
it still uses :latest tags that the release workflow no longer publishes and
lacks the full current CMS setup. Review the legacy inventory
before using old compose examples. Starting an empty database does not populate
school marts.
For architecture, configuration and test commands, see ARCHITECTURE.md and DEVELOPMENT.md.