version: '3' services: homeassistant: image: homeassistant/home-assistant:{{ homeassistant.version }} volumes: # We do not yes manage configs with ansible - ./config/homeassistant:/config - /etc/localtime:/etc/localtime:ro restart: unless-stopped environment: TZ: Europe/Berlin network_mode: "host" # networks: # local_network: # ipv4_address: ${SUBNET}.2 depends_on: - zigbee2mqtt - mariadb - mosquitto extra_hosts: - "zwave:${SUBNET}.3" - "zigbee2mqtt:${SUBNET}.6" - "mariadb:${SUBNET}.4" - "mosquitto:${SUBNET}.5" # ports: # - 8123:8123 # - 1400:1400 # - 1401:1401 {% if homeassistant.mqtt.zigbee2mqtt.zigbee_adapter_id %} zigbee2mqtt: # 8080 image: ghcr.io/koenkk/zigbee2mqtt:{{ homeassistant.mqtt.zigbee2mqtt.version }} restart: unless-stopped volumes: - ./data/zigbee2mqtt:/app/data - /run/udev:/run/udev:ro environment: - TZ=Europe/Berlin networks: local_network: ipv4_address: ${SUBNET}.6 exposed: devices: # Make sure this matched your adapter location - /dev/serial/by-id/{{ homeassistant.mqtt.zigbee2mqtt.zigbee_adapter_id }}:/dev/ttyUSB0 labels: traefik.enable: true traefik.http.routers.homeassistant-mqtt.entrypoints: https traefik.http.routers.homeassistant-mqtt.rule: Host(`{{ homeassistant.mqtt.zigbee2mqtt.domain }}`) traefik.http.services.homeassistant-mqtt.loadbalancer.server.port: 8080 traefik.http.routers.homeassistant-mqtt.tls: "true" traefik.http.routers.homeassistant-mqtt.tls.certresolver: hetzner traefik.http.routers.homeassistant-mqtt.middlewares: local-only@file {% endif %} mosquitto: image: eclipse-mosquitto:{{ homeassistant.mqtt.mosquitto.version }} restart: unless-stopped user: "1883:1883" volumes: - ./config/mosquitto:/mosquitto/config:ro - ./data/mosquitto:/mosquitto/data - ./data/mosquitto/log:/mosquitto/log environment: - TZ=Europe/Berlin networks: local_network: ipv4_address: ${SUBNET}.5 mariadb: image: mariadb:10.11.2 volumes: - ./data/mariadb:/var/lib/mysql - ./config/mariadb:/etc/mysql/conf.d - /etc/localtime:/etc/localtime:ro restart: unless-stopped environment: MARIADB_ROOT_PASSWORD: {{ homeassistant.mariadb.password }} MARIADB_MYSQL_LOCALHOST_USER: "yes" MARIADB_MYSQL_LOCALHOST_GRANTS: "yes" MARIADB_AUTO_UPGRADE: "yes" MARIADB_DISABLE_UPGRADE_BACKUP: "yes" TZ: Europe/Berlin networks: local_network: ipv4_address: ${SUBNET}.4 networks: local_network: ipam: driver: default config: - subnet: ${SUBNET}.0/24 exposed: name: traefik_exposed external: true