version: '3.8' services: backend: build: context: . dockerfile: backend/Dockerfile container_name: retro-backend ports: - "0.0.0.0:3001:3001" environment: - NODE_ENV=production - PORT=3001 - DATABASE_PATH=/app/data/retro.db - SESSION_CLEANUP_INTERVAL=3600000 - MAX_SESSION_AGE=86400000 volumes: - sqlite-data:/app/data restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3001/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: - retro-network frontend: build: context: . dockerfile: frontend/Dockerfile container_name: retro-frontend ports: - "0.0.0.0:3000:3000" environment: - NODE_ENV=production - NEXT_PUBLIC_API_URL=http://localhost:3001 - NEXT_PUBLIC_SOCKET_URL=http://localhost:3001 depends_on: backend: condition: service_healthy restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000"] interval: 30s timeout: 10s retries: 3 networks: - retro-network volumes: sqlite-data: driver: local networks: retro-network: driver: bridge