Deployment
Deployment model
Backend deployment is defined in render.yaml and the root Dockerfile.
Relevant services:
api: Docker-based FastAPI backenddocs: static MkDocs site
render.yaml also includes admin-related services, but those are outside this backend documentation scope.
API service
Current Render API configuration:
- service type:
web - runtime: Docker
- health check:
/health - container start command comes from
Dockerfile
The API service is the only backend runtime service currently defined. There is no worker service for ingestion.
Required configuration
At minimum, production needs:
OPENAI_API_KEYPINECONE_API_KEYPINECONE_INDEX_NAMESUPABASE_URLSUPABASE_SERVICE_ROLE_KEYSUPABASE_JWT_SECRETCORS_ALLOWED_ORIGINS
Review render.yaml and app/core/config.py together before introducing new runtime settings.
Deployment checklist
Before deploy:
- ensure database migrations are applied
- ensure Pinecone index exists and matches
EMBEDDING_DIMENSIONS - run
pytest - run
python postman/check_sync.pyif routes changed - run
mkdocs build
After deploy:
- verify
GET /health - verify authenticated access to
/meor/admin/test-role - verify retrieval works against real Supabase and Pinecone data
- verify scraping and ingestion operations with an admin token if the release changed those paths
Docs deployment
The docs site is built separately with:
Render publishes the generated site/ directory for the docs service.
Rollback considerations
Rollback is mostly application-level because the repo does not define automated schema rollback tooling. For backend releases:
- keep migrations additive when possible
- validate backward compatibility of route and schema changes
- coordinate schema changes before rolling app code backward