version: '3.8' services: dibbly-web: image: reg.dev.nervesocket.com/dibbly:latest container_name: dibbly-wemo-manager-prod restart: always ports: - "3456:3456" volumes: - dibbly-data:/data - dibbly-logs:/app/logs environment: - DATA_DIR=/data - PORT=3456 - NODE_ENV=production networks: - dibbly-network # Use host networking on Linux for Wemo SSDP discovery # Uncomment the line below if running on Linux # network_mode: host healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3456/"] interval: 30s timeout: 10s retries: 3 start_period: 40s logging: driver: "json-file" options: max-size: "10m" max-file: "3" deploy: resources: limits: memory: 256M reservations: memory: 128M # Optional: Reverse proxy for SSL termination nginx: image: nginx:alpine container_name: dibbly-nginx restart: always ports: - "80:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/ssl:/etc/nginx/ssl:ro networks: - dibbly-network depends_on: - dibbly-web profiles: - with-nginx volumes: dibbly-data: driver: local dibbly-logs: driver: local networks: dibbly-network: driver: bridge