services:
  zigbee2mqtt:
    # mosquitto runs with network_mode: host on chelsty-infra.
    # extra_hosts maps the 'mosquitto' hostname to the host gateway IP so that
    # mqtt://mosquitto:1883 in configuration.yaml reaches the host-networked
    # mosquitto process. Requires Docker 20.10+ (present on chelsty-infra).
    extra_hosts:
      - "mosquitto:host-gateway"
    environment:
      - TZ=Europe/Warsaw
    healthcheck:
      test: ["CMD-SHELL", "wget -qO- http://localhost:8080 > /dev/null 2>&1 || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 90s
    # Note: volumes NOT overridden here.
    # The base docker-compose.yml mounts /opt/homelab/data/zigbee2mqtt/data:/app/data
    # (read-write). configuration.yaml must be placed in that directory on the node:
    #   /opt/homelab/data/zigbee2mqtt/data/configuration.yaml
    # z2m rewrites this file during migrations — read-only mount is not viable.
