version: '3' services: zigbee2mqtt: container_name: zigbee2mqtt networks: - backend image: koenkk/zigbee2mqtt volumes: - ${DIR}/zigbee2mqtt:/app/data - ./zigbee2mqtt/configuration.yaml:/app/data/configuration.yaml devices: - /dev/ttyUSB0:/dev/ttyACM0 restart: always environment: - TZ=Europe/Stockholm mqtt: image: eclipse-mosquitto container_name: mqtt networks: - frontend - backend restart: always ports: - "1883:1883" - "9001:9001" volumes: - ./mosquitto/mosquitto.conf:/mqtt/mosquitto.conf - ${DIR}/mqtt/data:/mqtt/data - ${DIR}/mqtt/log:/mqtt/log labels: - "traefik.http.routers.mqtt.rule=Host(`mqtt.${DOMAIN}`)" - "traefik.http.routers.mqtt.entrypoints=mqtt" - "traefik.http.services.mqtt-service.loadbalancer.server.port=9001" - "traefik.enable=true" node-red: image: nodered/node-red:latest container_name: "node-red" networks: - backend environment: - TZ=Europe/Stockholm ports: - "1881:1880" #devices: #- /dev/ttyAMA0 restart: unless-stopped user: ${UID} volumes: - ${DIR}/nodered:/data labels: - "traefik.http.routers.node-red.rule=Host(`nodered.${DOMAIN}`)" - "traefik.http.routers.node-red.entrypoints=web" - "traefik.http.services.node-red-service.loadbalancer.server.port=1880" - "traefik.http.routers.node-red-secure.entrypoints=web-secure" - "traefik.http.routers.node-red-secure.rule=Host(`nodered.${DOMAIN}`)" - "traefik.http.routers.node-red-secure.tls.certresolver=milvert" - "traefik.enable=true" reverse-proxy: # The official v2.0 Traefik docker image image: traefik container_name: "traefik" networks: - backend - frontend ports: # The HTTP port - "80:80" - "443:443" - "8080:8080" volumes: # So that Traefik can listen to the Docker events - /var/run/docker.sock:/var/run/docker.sock - ./traefik.yml:/etc/traefik/traefik.yml - ./static_config.yml:/etc/traefik/static_config.yml # - "./log.json:/etc/traefik/log.json" #- ./acme.json:/acme.json - ./letsencrypt:/letsencrypt dns: - 8.8.8.8 labels: - "traefik.enable=true" - "traefik.http.routers.traefik.rule=Host(`tra.${DOMAIN}`)" - "traefik.http.routers.traefik-secure.entrypoints=web-secure" - "traefik.http.routers.traefik-secure.rule=Host(`tra.${DOMAIN}`)" - "traefik.http.routers.traefik-secure.tls.certresolver=milvert" - "traefik.http.routers.traefik-secure.tls=true" - "traefik.http.services.traefik-service.loadbalancer.server.port=8080" - "traefik.http.routers.traefik-secure.middlewares=traefik-auth" - "traefik.http.middlewares.traefik-auth.basicauth.users=simon:$$apr1$$o3vIe.DX$$3XExiBMe8rUo3HujDSYEo0" networks: frontend: external: true backend: external: false