106 lines
3.0 KiB
YAML
106 lines
3.0 KiB
YAML
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
|
|
|