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.
