Start the local dev stack
The local stack is defined in docker/docker-compose.local.yml. It already sets AUTH_MODE=none and ALLOW_INSECURE_LOCAL=true on the backend, so no extra env vars are needed.
Steps
Check whether containers are already running:
docker compose -f docker/docker-compose.local.yml psIf nothing is up, start the stack in the background:
docker compose -f docker/docker-compose.local.yml up -d --buildUse
--buildso code changes since the last run are picked up. Omit it if the user explicitly wants a fast restart without rebuilding.After
upreturns, confirm both services are healthy:docker compose -f docker/docker-compose.local.yml psPrint the URLs:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Backend docs (FastAPI Swagger): http://localhost:8000/docs
If the user wants live logs, tail them:
docker compose -f docker/docker-compose.local.yml logs -f
Troubleshooting
- Port 3000 or 8000 already in use: identify the holder with
lsof -i :3000/lsof -i :8000and ask the user before killing anything. - Backend can't write to
/data/db: the named volumedolls_dbis docker-managed — no host path needed. Don't propose bind-mounts unless the user asks. - Frontend hot reload not working:
Dockerfile.devrunsvitewithhost: 0.0.0.0; confirm the container has the source mounted if someone customized the compose file. - Auth errors despite
AUTH_MODE=none:ALLOW_INSECURE_LOCAL=truemust also be set — the backend refusesnonewithout it. Both are already indocker-compose.local.yml; if missing, the file was edited.
Shutting down
docker compose -f docker/docker-compose.local.yml down
Add -v only if the user explicitly wants to wipe the SQLite DB and uploaded photos.
Source: bronweg/doll-inventory — distributed by TomeVault.