SOIT Docs
Getting Started

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 vault

Backend

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 9200

Common backend checks:

uv run pytest
uv run lint-imports --config importlinter.ini
uv run ruff check app tests
uv run mypy app tests

lint-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 dev

Common frontend checks:

npm run typecheck
npm run build
npm run test:e2e

Hygiene 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

On this page