Development Workflows
The repo supports a few distinct loops. Picking the right one avoids unnecessary Docker rebuilds and keeps debugging targeted.
Mode Comparison
| Mode | Command | Use it for | Primary env file |
|---|---|---|---|
| Local development | make dev-all | Fast backend/frontend iteration with Docker-backed infra | .env |
| Infra only | make infra | Running backend or frontend by hand against Postgres/Redis/MinIO | .env |
| Full stack | make stack-build | Container parity across backend, sandbox server, tool server, worker, and frontend | docker/.stack.env |
| Docs only | make docs-dev | Editing the Docusaurus site without touching the product stack | docs/docusaurus/* |
Recommended Daily Loop
- Run
make setuponce per checkout. - Populate
.envand model config. - Use
make dev-allfor most code changes. - Use targeted backend/frontend commands when isolating one layer.
- Switch to
make stack-buildwhen validating the complete containerized topology.
Key Commands
Bootstrap
make setup
Creates .env and frontend/.env if missing, then installs backend and frontend dependencies.
Start local development
make dev-all
This starts Postgres, Redis, and MinIO in Docker, then runs:
- backend on
http://localhost:8000 - frontend on
http://localhost:1420 - MinIO console on
http://localhost:9001
Bring up the full stack
make stack-build
This uses scripts/run_stack.sh and docker/.stack.env to start:
postgresredistool-serversandbox-serverbackendceleryfrontend
Docs loop
make docs-install
make docs-dev
make docs-build
Environment File Boundaries
.envdrives host-native development.frontend/.envdrives the Vite dev server.docker/.stack.envdrives the full Docker stack.docs/docusaurushas its ownpackage.jsonand build output.
Do not assume one env file applies to every workflow.
Verification Checklist
Local development
curl http://localhost:8000/health
Docker stack
curl http://localhost:8000/health
curl http://localhost:1236/health
curl http://localhost:8100/health
Docs build
cd docs/docusaurus
npm run build
When To Use Which Flow
- Use
make dev-allwhen changing Python or frontend app code. - Use
make stack-buildwhen validating service-to-service env wiring. - Use
make docs-devwhen editing this site. - Use
make infrawhen you want the lightest local dependency footprint.