Connection map for the cdpr framework. The local checkout is the development workspace; GitHub is the source of truth; each external service redeploys from a single watched branch.
┌────────────────────────────────────────────────┐
│ Local dev machine │
│ ── editor + pytest + smoke_phase*.py + git ── │
└───────────────────────┬────────────────────────┘
│ git push
▼
┌─────────────────────────────────────────────────────────┐
│ GitHub: Tachia/cdpr_simulator (branch: main) │
│ CI: .github/workflows/ci.yml (lint + pytest) │
└──┬──────────────┬─────────────────┬────────────────┬────┘
│ │ │ │
webhook ▼ webhook ▼ webhook ▼ webhook ▼
┌──────────────────┐ ┌──────────────┐ ┌────────────────┐ ┌─────────────┐
│ Render │ │ Streamlit │ │ Cloudflare │ │ Supabase │
│ cdpr-api │ │ Community │ │ Pages │ │ (optional) │
│ FastAPI │ │ Cloud │ │ docs/ │ │ metadata │
│ Dockerfile │ │ streamlit_ │ │ index.html │ │ + uploads │
│ render.yaml │ │ app.py │ │ │ │ │
└──────────────────┘ └──────────────┘ └────────────────┘ └─────────────┘
│ │ ▲
│ /simulate /workspace /plot /robots /health │
└────────────────────►◄─────────────────────────────────┘
| Layer | Hosting | What's needed |
|---|---|---|
| FastAPI backend | Render (Docker web service) | Render account; connect to the GitHub repo; first deploy uses render.yaml |
| Streamlit console | Streamlit Community Cloud | Streamlit account (free); point at streamlit_app.py, set CDPR_BACKEND_URL to the Render URL |
| Static docs | Cloudflare Pages | Cloudflare account; connect the repo; output directory docs/; no build command |
| Storage | Supabase (optional) | Supabase project; copy URL + service-role key into Render env |
| Local physics | MuJoCo on the dev machine | pip install mujoco |
| CI | GitHub Actions | Configured at .github/workflows/ci.yml |
render.yaml and proposes the cdpr-api web service./health check.CDPR_BACKEND_URL.main / streamlit_app.py.CDPR_BACKEND_URL.docs.supabase/schema.sql.edit src/cdpr/...
pytest tests/
git add ... && git commit
git push # → GitHub Actions, Render, Streamlit, Cloudflare all rebuild