- Docker Desktop (or Docker Engine + Compose plugin)
- Ports
3000and8000available
- Copy environment file:
cp .env.example .env- Edit
.envfor staging values.
Recommended minimum:
HOWLHOUSE_ENV=stagingHOWLHOUSE_LOG_JSON=trueHOWLHOUSE_METRICS_ENABLED=trueHOWLHOUSE_SANDBOX_ALLOW_LOCAL_FALLBACK=false
Staging note:
stagingis treated as production-like for agent runtime policy.- Backend startup expects Docker to be available.
- Only use
HOWLHOUSE_ALLOW_DEGRADED_START_WITHOUT_DOCKER=truefor an explicit degraded startup.
docker compose up -d --buildOptional with dedicated workers:
docker compose -f docker-compose.yml -f docker-compose.workers.yml up -d --buildServices:
- Frontend:
http://localhost:3000 - Backend:
http://localhost:8000 - Backend data volume:
./data -> /app/data(SQLite) - Replay volume:
./replays -> /app/replays
Compose health behavior:
- backend has a
/healthzhealthcheck - frontend starts after backend is healthy
- both services use
restart: unless-stopped
curl -sS http://localhost:8000/healthz
curl -sS http://localhost:8000/matches
curl -sS http://localhost:8000/metrics # when HOWLHOUSE_METRICS_ENABLED=trueOpen browser:
http://localhost:3000
- Pull latest code / checkout target SHA.
- Rebuild and restart:
docker compose up -d --build- Re-run smoke checks.
- Checkout previous known-good commit.
- Rebuild and restart compose.
- Restore SQLite backup if schema/data rollback is required.
See docs/runbooks/rollback.md for detailed steps.