Local Development
Orchestra is a monorepo driven by a justfile. This page covers running the full
stack locally and the day-to-day dev loop.
Repository layout
Section titled “Repository layout”| Path | What it is |
|---|---|
operator/ | Kubernetes operator — manages Workshop CRDs and lifecycle |
server/ | Orchestra API (FastAPI) — REST endpoints for workshop ops |
frontend/ | Web dashboard (React) |
sidecar/ | Per-pod auth/proxy sidecar (Go) |
deploy/ | Helm charts and Kubernetes manifests |
docs/ | This documentation site (Astro / Starlight) |
Prerequisites
Section titled “Prerequisites”- Docker Desktop with Kubernetes enabled (the
docker-desktopcontext). - uv for the Python services, Node.js for the frontend and docs, and Go for the sidecar.
kubectl,helm, andjust.
First-time setup
Section titled “First-time setup”-
Install all dependencies (npm + uv) and generate API types:
Terminal window just setup -
Prepare the local cluster (Traefik, CRDs, example
.envfiles):Terminal window just dev-setup -
Apply database migrations:
Terminal window just migrate
Running the stack
Section titled “Running the stack”just devThis runs the API, frontend, and operator together. Individual pieces are also
available (just dev-server, just dev-frontend, just dev-operator, just dev-docs).
| Service | URL |
|---|---|
| Frontend | http://localhost:3000 |
| API | http://localhost:8080 (OpenAPI docs at /docs) |
| Docs site | http://localhost:3003 |
Stop everything with just stop, or restart with just restart.
Tests and quality
Section titled “Tests and quality”just test # server, operator, sidecar, and frontend test suitesjust quality # ruff (Python), eslint/prettier (JS/TS), go fmtSee the Testing guide for the test strategy and where to add coverage.
Schema and types
Section titled “Schema and types”The frontend’s API types are generated from the server’s OpenAPI schema. After changing API models, regenerate them:
just sync-types