services: homeassistant: image: ghcr.io/home-assistant/home-assistant:stable restart: unless-stopped privileged: true environment: - TZ=America/Chicago volumes: - /mnt/docker-data/configs/homeassistant:/config ports: - "8123:8123" dns: - 192.168.86.1 - 8.8.8.8 networks: - traefik-public logging: driver: "json-file" options: max-size: "50m" max-file: "3" deploy: mode: replicated replicas: 1 placement: constraints: - node.hostname == hf-pdocker-01 labels: - "traefik.enable=true" - "traefik.docker.network=traefik-public" - "traefik.http.services.yoda.loadbalancer.server.scheme=http" - "traefik.http.services.yoda.loadbalancer.server.port=8123" - "traefik.http.routers.yoda.rule=Host(`yoda.hobbs.farm`)" - "traefik.http.routers.yoda.entrypoints=websecure" - "traefik.http.routers.yoda.tls=true" - "traefik.http.routers.yoda.tls.certresolver=letsencrypt" - "traefik.http.routers.yoda.service=yoda" resources: limits: memory: 4G esphome: image: esphome/esphome:latest restart: unless-stopped environment: - TZ=America/Chicago volumes: - /mnt/docker-data/configs/esphome/config:/config ports: - "6052:6052" healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:6052/ || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 30s logging: driver: "json-file" options: max-size: "50m" max-file: "3" deploy: mode: replicated replicas: 1 placement: constraints: - node.hostname == hf-pdocker-01 resources: limits: memory: 2G mosquitto: image: eclipse-mosquitto:latest restart: unless-stopped volumes: - /mnt/docker-data/configs/mosquitto:/mosquitto ports: - "1883:1883" - "8883:8883" logging: driver: "json-file" options: max-size: "50m" max-file: "3" deploy: mode: replicated replicas: 1 placement: constraints: - node.hostname == hf-pdocker-01 resources: limits: memory: 128M networks: traefik-public: external: true