Files
home-assistant/docker-compose.yml
T
2019-01-09 01:47:33 +03:00

145 lines
3.5 KiB
YAML

version: '3'
services:
mosquitto:
image: "monster1025/alpine86-mosquitto:latest"
container_name: mosquitto
env_file: ./mosquitto/settings/mqtt.env
ports:
- "1883:1883"
restart: always
mysql:
image: mariadb
container_name: mysql
env_file: ./mysql/settings/mysql.env
ports:
- "3306:3306/tcp"
restart: unless-stopped
volumes:
- /srv/mysql:/var/lib/mysql
hass:
image: homeassistant/home-assistant
container_name: hass
volumes:
- ./hass/settings:/config
- ./hass/settings/hosts.txt:/etc/hosts:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "8123:8123"
- "9898:9898/udp"
- "4321:4321/udp"
- "51827:51827" #Homekit
depends_on:
- mysql
- mosquitto
- broadlink
network_mode: "host"
restart: always
logging:
driver: json-file
options:
max-size: 50m
appdaemon:
image: monster1025/appdaemon
build:
context: ./appdaemon/docker
args:
VERSION: 3.0.2
container_name: appdaemon
depends_on:
- hass
volumes:
- ./appdaemon/settings:/conf
- ./hass/settings/secrets.yaml:/conf/secrets.yaml:ro
- ./hass/settings/hosts.txt:/etc/hosts:ro
- /etc/localtime:/etc/localtime:ro
restart: always
links:
- "hass"
logging:
driver: json-file
options:
max-size: "10m"
max-file: "5"
nginx:
image: nginx
hostname: nginx
container_name: nginx
links:
- "hass"
- "appdaemon"
env_file: ./nginx/settings/nginx.env
volumes:
- ./hass/settings/hosts.txt:/etc/hosts:ro
- ./nginx/settings/site-confs:/etc/nginx/conf.d.source:ro
- /srv/ssl:/config/keys
ports:
- "80:80"
- "443:443"
command: |
/bin/bash -c "cp -R /etc/nginx/conf.d.source/* /etc/nginx/conf.d && \
sed -i \"s/%DOMAIN%/$$HASS_DOMAIN/g\" /etc/nginx/conf.d/*.conf && \
sed -i \"s/%PASS%/$$HASS_PASSWORD/g\" /etc/nginx/conf.d/*.conf && \
sed -i \"s/%SERVER_IP%/$$SERVER_IP/g\" /etc/nginx/conf.d/*.conf && \
nginx -g 'daemon off;'"
restart: always
logging:
driver: json-file
options:
max-size: "10m"
max-file: "5"
certbot:
image: certbot/certbot
restart: always
container_name: certbot
volumes:
- ./certbot/docker/update_certs.sh:/update_certs.sh:ro
- /srv/ssl:/etc/letsencrypt
- /var/lib/letsencrypt:/var/lib/letsencrypt
- /etc/localtime:/etc/localtime:ro
ports:
- "8081:80"
entrypoint: ["/update_certs.sh"]
#command: certonly --standalone --agree-tos --standalone-supported-challenges http-01 --email admin@yandex5.ru -d home.yandex5.ru
logging:
driver: json-file
options:
max-size: "10m"
max-file: "5"
broadlink:
image: monster1025/broadlink
container_name: broadlink
links:
- "mosquitto"
env_file: ./broadlink/settings/broadlink.env
restart: always
logging:
driver: json-file
options:
max-size: 50m
###########################
# GRAFANA #
###########################
grafana:
image: grafana/grafana
container_name: grafana
volumes:
- "/srv/grafana:/var/lib/grafana"
environment:
- GF_SECURITY_ADMIN_PASSWORD=grafanapass
links:
- "mysql:mysql"
ports:
- "3000:3000"
restart: always
logging:
driver: json-file
options:
max-size: 50m