# Minimal SleepLab compose file — no .env required. # See compose.advanced.yaml for a fully documented example with all options. name: sleeplab services: postgres: image: postgres:16 environment: POSTGRES_DB: cpap POSTGRES_USER: cpap POSTGRES_PASSWORD: cpap volumes: - sleeplab_postgres_data:/var/lib/postgresql/data ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U cpap -d cpap"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped app: image: joshuaaaronmyers/sleeplab:latest depends_on: postgres: condition: service_healthy environment: DATABASE_URL: postgresql+psycopg2://cpap:cpap@postgres:5432/cpap SECRET_KEY: ${SECRET_KEY:-change-me-in-production} DISABLE_USER_REGISTRATION: ${DISABLE_USER_REGISTRATION:-false} MCP_ENABLED: ${MCP_ENABLED:-false} ports: - "8080:8080" healthcheck: test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8000/health || exit 1"] interval: 30s timeout: 5s retries: 5 start_period: 20s restart: unless-stopped volumes: sleeplab_postgres_data: