| name | docker-compose |
| description | Work with the Oscilla Docker Compose development environment. Use when: starting or stopping services, inspecting logs, opening a shell in a container, resetting the database, or understanding the service topology. |
Docker Compose Development Environment
context7: If the mcp_context7 tool is available, resolve and load the full Docker Compose documentation before modifying compose.yaml or using advanced CLI options:
mcp_context7_resolve-library-id: "docker compose"
mcp_context7_get-library-docs: /docker/compose
The Oscilla development environment runs entirely through Docker Compose. All services are defined in compose.yaml.
Services
| Service | Role |
|---|
gateway | Caddy reverse proxy — routes traffic to backend/frontend |
backend | FastAPI application server |
frontend | Vite / SvelteKit dev server |
db | PostgreSQL database |
redis | Redis cache / task queue |
mailhog | Local SMTP sink for catching outbound emails |
Essential Commands
Start / Stop
docker compose up -d
docker compose down
docker compose down -v
docker compose restart
docker compose restart backend
Logs
docker compose logs
docker compose logs -f
docker compose logs -f backend
docker compose logs -f frontend
docker compose logs -f db
Status and Inspection
docker compose ps
docker compose exec backend bash
docker compose exec db bash
docker compose exec frontend sh
Common Workflows
Start a fresh development environment
docker compose up -d
docker compose logs -f
Full reset (wipe all data and restart)
docker compose down -v
docker compose up -d
Debug a service startup failure
docker compose logs backend --tail=50
docker compose logs -f backend
Run a one-off command inside a service
docker compose exec backend bash
Apply database migrations inside the container
docker compose exec backend uv run alembic upgrade head
Notes
- The gateway service (
Caddy) handles TLS termination and routing. Its config lives in docker/gateway/Caddyfile.
- Frontend container config lives in
docker/frontend/Dockerfile.
- All Docker-specific files (Dockerfiles, gateway config) live in the
docker/ folder.
- The developer
.env file is loaded automatically by Compose — make sure it's populated before starting.
Further Reading