Development Setup
Set up local backend and frontend development for SOIT with hot reload.
SOIT uses a Python backend and a React Router frontend. Use Docker for supporting infrastructure, then run the backend and frontend development servers locally when you need hot reload. For the single-command Docker path, use the Quickstart instead.
Supporting services
The application expects PostgreSQL, Redis, Milvus, MinIO, and Vault. Start them with the Docker Compose files under docker/ in the SOIT repository:
docker compose -f docker/docker-compose.yml up -d postgres redis minio etcd milvus vaultBackend
The backend is a Python 3.11 FastAPI application managed with uv. Run backend commands from soit/server:
uv sync
uv run uvicorn app.main:app --reload --host 0.0.0.0 --port 9200Common backend checks:
uv run pytest
uv run lint-imports --config importlinter.ini
uv run ruff check app tests
uv run mypy app testslint-imports enforces the backend layer boundaries described in Backend Boundaries — it fails when a module imports across a forbidden boundary.
Frontend
The frontend is a React 19 + React Router application. Run frontend commands from soit/web:
npm install
npm run devCommon frontend checks:
npm run typecheck
npm run build
npm run test:e2eHygiene rules
- Keep local data and credentials out of commits.
- Do not commit generated evidence files, screenshots, database dumps, or environment-specific records.
- Run the full check set in Testing and Quality Gate before opening a pull request.
Next steps
- Contribution Workflow for how changes are scoped and reviewed.
- Backend Development for the engineering standard.
- Architecture Overview for how the pieces fit together.