Development setup
Two paths: local dev (./rh dev …) for day-to-day work, or all-in-one Docker (./rh start) for a full environment without local service wiring.
Prerequisites
uv for Python tooling, Node.js 18+ for the frontend and docs, and Docker for ./rh dev up and ./rh start.
Default ports
| What | Port |
|---|---|
Backend API / OpenAPI (./rh dev backend) | 8080 |
Frontend / Next.js (./rh dev frontend) | 3000 |
Documentation site (./rh dev docs) | 3001 |
Dev PostgreSQL (./rh dev up) | 11000 |
Dev Redis (./rh dev up) | 11001 |
Mock LLM server (./rh dev mock-llm) | 18080 |
Mock Chatbot server (./rh dev mock-chatbot) | 18090 |
./rh worktree <name> shifts the backend, frontend, Postgres, Redis and Flower ports by 10 per worktree and gives it its own Postgres and Redis containers, so several checkouts can run at the same time. The offset is recorded in .rhesis-ports at the worktree root; ./rh dev status prints it. The mock servers, chatbot, Polyphemus and docs site keep the ports above — one instance serves every checkout.
Clone the repo
Path 1: Local dev (recommended)
From the repo root:
./rh dev init writes apps/backend/.env and apps/frontend/.env.local. If those files already exist and were not created by init, the script may prompt before overwriting.
Tip: ./rh dev tmux starts all of the above in one tmux session, one window per service. Run ./rh help or ./rh dev for the full command list (./rh dev docs, ./rh dev status, etc.).
Optionally, start the mock servers (see LLM access):
LLM access
Rhesis relies on LLMs for test generation and evaluation. Three options:
- Use the LLM provided by Rhesis.ai (recommended) — create an account at app.rhesis.ai , generate an API key, and paste it into
apps/backend/.env:
- Bring your own LLM — add your model under Model → Add → Language Model, and set it as the default for generation, evaluation, and execution.
- Use the mock LLM — single-turn only, still in development and may be buggy. Start it with
./rh dev mock-llmand./rh dev mock-chatbot.
Path 2: Full stack with Docker
Frontend at http://localhost:3000 , API at http://localhost:8080/docs . Manage the stack with ./rh logs, ./rh stop, ./rh restart (add --build to rebuild), and ./rh delete. This mode is aimed at local testing, including convenient sign-in behavior. For production deployment, see the deployment documentation.
Branching, commits, and checks
- Feature branches and Conventional Commits
uvx pre-commit installbefore your first commit- Run
make format,make lint, andmake testfromapps/backend/,sdk/, orapps/frontend/as appropriate
Troubleshooting
./rh dev upfails: ensure Docker is running and nothing else is bound to the dev Postgres/Redis ports above- Backend database errors: run
./rh dev upafter./rh dev init; for non-local databases, see Environment config - Stale Python env: from
apps/backend, runuv syncagain and useapps/backend/.venv - Still stuck? Ask on Discord