Initial commit

This commit is contained in:
Thomas Lovén 2020-03-07 23:29:09 +01:00
commit 05c8d61e0a

112
docker-compose.yaml Normal file
View File

@ -0,0 +1,112 @@
version: "3.5"
networks:
web:
external: true
iot:
external: true
lan:
external: true
services:
hass:
container_name: hass
image: homeassistant/home-assistant
restart: always
networks:
default:
web:
iot:
lan:
volumes:
- /data/files/hass:/config
depends_on:
- db
working_dir: /config
labels:
traefik.enable: true
traefik.docker.network: web
traefik.http.services.hass.loadbalancer.server.port: 8123
traefik.http.routers.hass.rule: HOST(`${HASS_ROOT}`)
traefik.http.routers.hass.tls.certResolver: le
environment:
TZ: Europe/Stockholm
db:
image: mariadb
restart: always
volumes:
- ./db:/var/lib/mysql
- /etc/timezone:/etc/timezone
environment:
MYSQL_INITDB_SKIP_TZINFO: "true"
MYSQL_DATABASE: hass
MYSQL_USER: hass
MYSQL_PASSWORD: hass
MYSQL_ROOT_PASSWORD: hass
mqtt:
image: eclipse-mosquitto:latest
restart: always
networks:
default:
iot:
ipv4_address: ${MQTT_IP}
volumes:
- ./mqtt/data:/mosquitto/data
- ./mqtt/log:/mosquitto/log
grafana:
image: grafana/grafana
restart: always
volumes:
- ./grafana:/var/lib/grafana
- /etc/timezone:/etc/timezone
networks:
web:
default:
user: "0"
labels:
traefik.enable: true
traefik.docker.network: web
traefik.http.routers.grafana.rule: HOST(`grafana.${HASS_ROOT}`)
traefik.http.routers.grafana.tls.certResolver: le
influx:
image: influxdb
restart: always
volumes:
- ./influx:/var/lib/influxdb
- /etc/timezone:/etc/timezone
# Only needed during initial setup
# environment:
# INFLUXDB_DB: hass
# INFLUXDB_USER: hass
# INFLUXDB_USER_PASSWORD: hass
# Devices
deconz:
image: marthoc/deconz:amd64
restart: always
devices:
- /dev/conbee:/dev/ttyUSB0
volumes:
- ./deconz:/root/.local/share/dresden-elektronik/deCONZ
- /etc/timezone:/etc/timezone
networks:
web:
default:
# vnc:
environment:
DECONZ_VNC_MODE: 1
DECONZ_VNC_PASSWORD: secret
labels:
traefik.enable: true
traefik.docker.network: web
traefik.http.services.deconz.loadbalancer.server.port: 80
traefik.http.routers.deconz.rule: HOST(`deconz.avagen.${PRIVATE_DOMAIN}`)
traefik.http.routers.deconz.tls.certResolver: le
# mysensors:
# rflink: