services:
#######  H O M E  -  A S S I S T A N T  ##### 
  home-assistant:
    container_name: home-assistant
    #image: homeassistant/home-assistant:latest
    image: ghcr.io/home-assistant/home-assistant:stable
    restart: unless-stopped
    depends_on:
      - mqtt
    environment:
      - TZ=Europe/Brussels
      - PUID=1000
      - PGID=1000
      - UMASK=007
      - PACKAGES=iputils
    cap_drop: 
      - ALL
    cap_add:
      - CHOWN
      - DAC_OVERRIDE
      - FSETID
      - FOWNER
      - SETGID
      - SETUID
      - SYS_CHROOT
      - KILL
      - NET_RAW
      - NET_ADMIN
    security_opt:  
      - no-new-privileges
    ports:
      - 8123:8123
    volumes:
      - ${PROJECT_DIR:-./}homeassistant/config:/config
      - /etc/localtime:/etc/localtime:ro
    healthcheck:
      test: curl --fail http://0.0.0.0:8123/auth/providers || exit 1
      interval: 90s
      retries: 5
      start_period: 5s
      timeout: 15s
#    privileged: false
    networks:
      - outside
 
 
 
#######  M Q T T  -  B R O K E R  ##### 
  mqtt:
    container_name: mqtt-broker
    image: eclipse-mosquitto:2
    restart: unless-stopped
    expose:
      - 1883
    volumes:
      - ${PROJECT_DIR:-./}mosquitto/config:/mosquitto/config
      - ${PROJECT_DIR:-./}mosquitto/data:/mosquitto/data
    networks:
      - outside

      

#######  T S U N  -  P R O X Y  ######      
  tsun-proxy:
    container_name: tsun-proxy
    image: ghcr.io/s-allius/tsun-gen3-proxy:latest
    # image: ghcr.io/s-allius/tsun-gen3-proxy:rc
    restart: unless-stopped
    depends_on:
      - mqtt
    environment:
      - TZ=Europe/Brussels
      - UID=${UID:-1000}
      - GID=${GID:-1000}
    dns:
      - ${DNS1:-8.8.8.8}
      - ${DNS2:-4.4.4.4}
    ports: 
      - 5005:5005
      - 8127:8127
      - 10000:10000
    volumes:
      - ${PROJECT_DIR:-./}tsun-proxy/log:/home/tsun-proxy/log 
      - ${PROJECT_DIR:-./}tsun-proxy/config:/home/tsun-proxy/config 
    healthcheck:
      test: wget --no-verbose --tries=1 --spider  http://127.0.0.1:8127/-/healthy || exit 1
      interval: 10s
      timeout: 3s    
    networks:
      - outside


#######  N E T W O R K S  ######          

networks:
  outside:
    name: home-assistant
          