services: roborock-server: image: ghcr.io/python-roborock/local_roborock_server:latest container_name: roborock_server restart: unless-stopped # host-Netzwerk ist zwingend erforderlich für mDNS (Staubsauger-Erkennung) network_mode: host environment: - REGION=${ROBOROCK_REGION:-de} - TIMEZONE=${ROBOROCK_TIMEZONE:-Europe/Berlin} - ROBOROCK_SERVER_LISTENER_MODE=external_tls # Der Container lauscht direkt auf dem Host auf diesen Ports: - ROBOROCK_SERVER_HTTPS_PORT=${ROBOROCK_SERVER_HTTPS_PORT:-8888} - ROBOROCK_SERVER_MQTT_PORT=${ROBOROCK_SERVER_MQTT_PORT:-8884} # Unverschlüsseltes MQTT für HAProxy-Backend volumes: - roborock_data:/data # Aus Robustheitsgründen mit wget (oft eher in Python/Alpine-Images enthalten als curl) healthcheck: test: [ "CMD", "wget", "--no-check-certificate", "-q", "-O", "-", "http://127.0.0.1:${ROBOROCK_SERVER_HTTPS_PORT:-8888}/admin" ] interval: ${ROBOROCK_HEALTHCHECK_INTERVAL:-30s} timeout: ${ROBOROCK_HEALTHCHECK_TIMEOUT:-5s} retries: ${ROBOROCK_HEALTHCHECK_RETRIES:-5} start_period: ${ROBOROCK_HEALTHCHECK_START_PERIOD:-20s} volumes: roborock_data: name: ${ROBOROCK_VOLUME_NAME:-roborock_data}