services: soundtouch-service: image: ghcr.io/gesellix/bose-soundtouch:${SOUNDTOUCH_VERSION:-latest} # build: . container_name: soundtouch-service # Linux only, required for discovery. Swarm requires host network at the task level. # network_mode: host ports: - "8000:8000" - "8443:8443" environment: - PORT=8000 - HTTPS_PORT=8443 - DATA_DIR=/app/data - LOG_PROXY_BODY=false - REDACT_PROXY_LOGS=true - RECORD_INTERACTIONS=true - DISCOVERY_INTERVAL=5m - SERVER_URL=http://${SOUNDTOUCH_HOSTNAME:-soundtouch.local}:8000 - HTTPS_SERVER_URL=https://${SOUNDTOUCH_HOSTNAME:-soundtouch.local}:8443 volumes: - soundtouch-data:/app/data # Use host volume for local development if preferred: # - ./data:/app/data restart: unless-stopped deploy: replicas: 1 restart_policy: condition: on-failure resources: limits: cpus: '0.50' memory: 512M reservations: cpus: '0.25' memory: 128M volumes: soundtouch-data: # Named volumes are preferred in Swarm. For multi-node persistence, # consider using a volume driver like NFS or GlusterFS.