From 43329a0caa1032507b89f41278617d757af2d13b Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 25 Jun 2026 22:57:12 -0700 Subject: [PATCH] refactor(homeassistant): parameterize domain references and frigate cert paths --- homeassistant.yaml | 136 ++++----------------------------------------- 1 file changed, 10 insertions(+), 126 deletions(-) diff --git a/homeassistant.yaml b/homeassistant.yaml index 0f74e3e..d958938 100755 --- a/homeassistant.yaml +++ b/homeassistant.yaml @@ -10,9 +10,9 @@ services: # dns_search: # - traefik_backend dns: - - 127.0.0.11 # Docker embedded DNS first + - 127.0.0.11 # Docker embedded DNS first # - 192.168.4.30 # Your VIP as fallback (or your Pi-hole/router IP) - - 1.1.1.1 # Public fallback for external resolution + - 1.1.1.1 # Public fallback for external resolution # network_mode: host ports: - 8123:8123 @@ -41,7 +41,7 @@ services: # - node.hostname == docker-3 labels: - traefik.enable=true - - traefik.http.routers.hass.rule=Host(`home.bryanmail.net`) + - traefik.http.routers.hass.rule=Host(`home.${DOMAIN}`) - traefik.http.routers.hass.tls=true - traefik.http.routers.hass.tls.certresolver=letsencrypt - traefik.http.routers.hass.entrypoints=websecure @@ -49,7 +49,7 @@ services: - traefik.swarm.network=traefik_backend - traefik.http.services.hass.loadbalancer.server.scheme=https - traefik.http.routers.hass.middlewares=crowdsec@file -# - traefik.http.routers.wss.rule=Host(`ws.${HOST}`) +# - traefik.http.routers.wss.rule=Host(`ws.${DOMAIN}`) # - traefik.tcp.services.wss.loadbalancer.server.port=443 # - traefik.http.routers.wss.entrypoints=websecure - autoheal=true @@ -75,8 +75,8 @@ services: - /etc/localtime:/etc/localtime:ro - /volume1/docker/frigate/config:/config - /volume1/docker/frigate/media:/media/frigate - - /volume1/docker/letsencrypt/certs/certs/nvr.bryanmail.net.crt:/etc/letsencrypt/live/frigate/fullchain.pem - - /volume1/docker/letsencrypt/certs/private/nvr.bryanmail.net.key:/etc/letsencrypt/live/frigate/privkey.pem + - /volume1/docker/letsencrypt/certs/certs/nvr.${DOMAIN}.crt:/etc/letsencrypt/live/frigate/fullchain.pem + - /volume1/docker/letsencrypt/certs/private/nvr.${DOMAIN}.key:/etc/letsencrypt/live/frigate/privkey.pem - /dev/dri/renderD128:/dev/dri/renderD128 # For intel hwaccel, needs to be updated for your hardware # - /dev/dri:/dev/dri - type: tmpfs ## Optional: #1GB of memory, reduces SSD/SD Card wear @@ -110,8 +110,8 @@ services: # - node.hostname == docker-3 labels: - traefik.enable=true - - traefik.http.routers.frigate-auth.rule=Host(`nvr.bryanmail.net`) - - traefik.http.routers.frigate-ip.rule=Host(`nvr.bryanmail.net`) && ClientIP(`10.0.0.0/8`) + - traefik.http.routers.frigate-auth.rule=Host(`nvr.${DOMAIN}`) + - traefik.http.routers.frigate-ip.rule=Host(`nvr.${DOMAIN}`) && ClientIP(`10.0.0.0/8`) - traefik.http.routers.frigate-auth.tls=true - traefik.http.routers.frigate-ip.tls=true - traefik.http.routers.frigate-auth.tls.certresolver=letsencrypt @@ -219,7 +219,7 @@ services: # endpoint_mode: dnsrr #removed during frigate integration testing labels: - traefik.enable=true - - traefik.http.routers.zigbee.rule=Host(`zb.bryanmail.net`) + - traefik.http.routers.zigbee.rule=Host(`zb.${DOMAIN}`) - traefik.http.routers.zigbee.tls=true - traefik.http.routers.zigbee.tls.certresolver=letsencrypt - traefik.http.routers.zigbee.entrypoints=websecure @@ -253,7 +253,7 @@ services: # endpoint_mode: dnsrr #removed during frigate integration testing labels: - traefik.enable=true - - traefik.http.routers.esphome.rule=Host(`esp.bryanmail.net`) + - traefik.http.routers.esphome.rule=Host(`esp.${DOMAIN}`) - traefik.http.routers.esphome.tls=true - traefik.http.routers.esphome.tls.certresolver=letsencrypt - traefik.http.routers.esphome.entrypoints=websecure @@ -267,122 +267,6 @@ services: cpus: '10' memory: 4G -# wyze-bridge: -## restart: always -# image: mrlt8/wyze-bridge:latest -# hostname: cams -# volumes: -# - /volume1/docker/wyze-bridge/data:/data -# - /volume1/docker/wyze-bridge/config:/config -# - /volume1/docker/wyze-bridge/tokens:/tokens -# networks: -# - traefik_backend -## - host -# ports: -# - 1935:1935 # RTMP -# - 8554:8554 # RTSP -# - 8888:8888 # HLS -# - 8889:8889 #WebRTC -# - 8189:8189/udp # WebRTC/ICE -## - 5000:5000 # WEB-UI -# environment: -# # [OPTIONAL] (Can be set in the WebUI): -# # - WYZE_EMAIL= -# # - WYZE_PASSWORD= -# # - TOTP_KEY= -# # [OPTIONAL] IP Address of the host to enable WebRTC e.g.,: -# # - WB_IP=192.168.1.122 -# # [OPTIONAL] Wyze API credentials: -# # - API_ID= -# # - API_KEY= -# - WB_RTSP_URL=rtsp://cams.bryanmail.net:1234/ -# - WB_RTMP_URL=rtmp://cams.bryanmail.net:5678/ -# - WB_HLS_URL=http://cams.bryanmail.net:9090/ -# - WB_WEBRTC_URL=http://cams.bryanmail.net:9091/ -# - NET_MODE=LAN -# - MQTT_HOST=tasks.mqtt:1883 -# - MQTT_TOPIC=wyze-bridge -# - MQTT_DTOPIC=homeassistant -# - ENABLE_AUDIO=True -# - AUDIO_CODEC=AAC -# - FILTER_NAMES=Pan Cam, Baby Monitor -# - WB_AUTH=False -# deploy: -# endpoint_mode: dnsrr -# labels: -# - traefik.enable=true -# - traefik.http.routers.wb-auth.rule=Host(`cams.bryanmail.net`) -# - traefik.http.routers.wb-ip.rule=Host(`cams.bryanmail.net`) && ClientIP(`10.0.1.0/16`) -# - traefik.http.routers.wb-auth.tls=true -# - traefik.http.routers.wb-ip.tls=true -# - traefik.http.routers.wb-auth.tls.certresolver=letsencrypt -# - traefik.http.routers.wb-ip.tls.certresolver=letsencrypt -# - traefik.http.routers.wb-auth.entrypoints=websecure -# - traefik.http.routers.wb-ip.entrypoints=websecure -# - traefik.http.services.wb.loadbalancer.server.port=5000 -## - traefik.http.routers.wb-auth.middlewares=wb-basicauth -## - traefik.http.middlewares.wb-basicauth.basicauth.users=test:$$2a$$12$$1sIFlNKcNrEApe2IScpFwukd7l1j/uvfxk0GeuqIk0BBcO9Mk2F2u -## - traefik.http.services.wb.loadbalancer.server.scheme=https -# - traefik.swarm.network=traefik_backend -# - traefik.http.routers.wb-auth.middlewares=forwardAuth-authentik@file, crowdsec@file -## - traefik.enable=true -## - traefik.http.routers.wyze-bridge-auth.rule=Host(`cams.bryanmail.net`) -## - traefik.http.routers.wyze-bridge-ip.rule=Host(`cams.bryanmail.net`) && ClientIP(`10.0.1.0/16`) -## - traefik.http.routers.wyze-bridge-auth.tls=true -## - traefik.http.routers.wyze-bridge-ip.tls=true -## - traefik.http.routers.wyze-bridge-auth.tls.certresolver=letsencrypt -## - traefik.http.routers.wyze-bridge-ip.tls.certresolver=letsencrypt -## - traefik.http.routers.wyze-bridge-auth.entrypoints=websecure -## - traefik.http.routers.wyze-bridge-ip.entrypoints=websecure -## - traefik.http.services.wyze-bridge.loadbalancer.server.port=5000 -## - traefik.http.routers.wyze-bridge-auth.middlewares=frigate-basicauth -## - traefik.http.middlewares.wyze-bridge-basicauth.basicauth.users=test:$$2a$$12$$1sIFlNKcNrEApe2IScpFwukd7l1j/uvfxk0GeuqIk0BBcO9Mk2F2u -## - traefik.http.services.wyze-bridge.loadbalancer.server.scheme=https -## - traefik.swarm.network=traefik_backend -## - traefik.http.routers.wyze-bridge-auth.middlewares=forwardAuth-authentik@file -## resources: -## limits: -## cpus: '0.001' -## memory: 128M - -# homebridge: -# image: homebridge/homebridge:latest -# restart: always -# networks: -# - traefik_backend -# ports: -# - 8581:8581 -# volumes: -# - /volume1/docker/HomeBridge:/homebridge -# logging: -# driver: json-file -# options: -# max-size: "10mb" -# max-file: "1" -# deploy: -# resources: -# limits: -## cpus: '0.001' -# memory: 128M - -# openwakeword: -# hostname: openWakeWord -# image: dalehumby/openwakeword-rhasspy:latest -# volumes: -# - /volume1/docker/openWakeWord/config:/config -# environment: -# - TZ=America/Pacific -# restart: always -# networks: -# - traefik_backend -# ports: -# - 12202:12202/udp -# deploy: -# resources: -# limits: -## cpus: '0.001' -# memory: 1024M - networks: postgresql_db-backend: external: true