Files
docker-compose/__swarm/home-assistant/home-assistant-swarm.yml
2025-12-01 00:45:31 +01:00

221 lines
6.2 KiB
YAML

services:
homeassistant:
network_mode: host
image: ${DOCKER_REGISTRY:-}ghcr.io/home-assistant/home-assistant:latest
volumes:
- ha_config:/config
- /var/run/docker.sock:/var/run/docker.sock
- /run/dbus:/run/dbus:ro
privileged: true
environment:
DISABLE_JEMALLOC: value
TZ: Europe/Bratislava
dns:
- 192.168.77.101
deploy:
labels:
com.centurylinklabs.watchtower.enable: 'true'
homepage.group: Smarthome
homepage.name: Home Assistant
homepage.weight: '1'
homepage.icon: home-assistant.png
homepage.href: https://ha.sectorq.eu
homepage.description: 3D Printing
homepage.server: my-docker-swarm
homepage.container: HomeAssistant
homepage.widget.type: homeassistant
homepage.widget.url: https://ha.sectorq.eu
homepage.widget.key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIzOTk5NGJjYjIzYjk0YzExYmM5OWZiNTBlNzU0N2M2YyIsImlhdCI6MTc0MDM5OTY4NCwiZXhwIjoyMDU1NzU5Njg0fQ.LDebvPGreyZzlWT1CylHSdSt8i_cWO72HnNCsCAIaG8
wud.watch: 'true'
wud.watch.digest: 'true'
replicas: 1
placement:
constraints:
- node.role == manager
esphome:
image: ${DOCKER_REGISTRY:-}esphome/esphome:latest
volumes:
- esphome_config:/config
- /etc/localtime:/etc/localtime:ro
privileged: true
network_mode: host
environment:
USERNAME: jaydee
PASSWORD: jaydee1
deploy:
labels:
com.centurylinklabs.watchtower.enable: 'true'
homepage.group: Smarthome
homepage.name: ESPHome
homepage.weight: '1'
homepage.icon: esphome.png
homepage.href: https://esphome.sectorq.eu
homepage.description: 3D Printing
homepage.server: my-docker-swarm
homepage.container: esphome
homepage.widget.type: esphome
homepage.widget.url: https://esphome.sectorq.eu
homepage.widget.username: jaydee
homepage.widget.password: jaydee1
wud.watch: 'true'
wud.watch.digest: 'true'
replicas: 1
placement:
constraints:
- node.role == manager
wyoming-piper-en:
image: ${DOCKER_REGISTRY:-}rhasspy/wyoming-piper
ports:
- target: 10200
published: 10200
protocol: tcp
mode: ingress
volumes:
- piper_data:/data
command: --data-dir /data --voice en_US-lessac-medium
deploy:
labels:
com.centurylinklabs.watchtower.enable: 'true'
wud.watch: 'true'
wud.watch.digest: 'true'
replicas: 1
placement:
constraints:
- node.role == manager
wyoming-whisper-en:
image: ${DOCKER_REGISTRY:-}rhasspy/wyoming-whisper
ports:
- target: 10300
published: 10300
protocol: tcp
mode: ingress
volumes:
- whisper_data:/data
command: --data-dir /data --model tiny-int8 --language en
deploy:
labels:
com.centurylinklabs.watchtower.enable: 'true'
wud.watch: 'true'
wud.watch.digest: 'true'
replicas: 1
placement:
constraints:
- node.role == manager
openwakeword:
image: ${DOCKER_REGISTRY:-}rhasspy/wyoming-openwakeword:latest
command: --preload-model 'ok_nabu' --custom-model-dir /custom --model 'ok nabu'
--model 'ok_nabu' --uri 'tcp://0.0.0.0:10400' --threshold 0.7 --trigger-level
2 --debug
volumes:
- openwakeword_data:/data
- openwakeword_data:/custom
environment:
TZ: Europe/Bratislava
ports:
- target: 10400
published: 10400
protocol: tcp
mode: ingress
deploy:
labels:
com.centurylinklabs.watchtower.enable: 'true'
wud.watch: 'true'
wud.watch.digest: 'true'
replicas: 1
placement:
constraints:
- node.role == manager
matter-server:
image: ${DOCKER_REGISTRY:-}ghcr.io/home-assistant-libs/python-matter-server:stable
security_opt:
- apparmor=unconfined
volumes:
- matter-server:/data
- /run/dbus:/run/dbus:ro
network_mode: host
deploy:
labels:
com.centurylinklabs.watchtower.enable: 'true'
wud.watch: 'true'
wud.watch.digest: 'true'
replicas: 1
placement:
constraints:
- node.role == manager
music-assistant-server:
image: ${DOCKER_REGISTRY:-}ghcr.io/music-assistant/server:latest
network_mode: host
volumes:
- music_assistant_server_data:/data/
cap_add:
- SYS_ADMIN
- DAC_READ_SEARCH
security_opt:
- apparmor:unconfined
environment:
LOG_LEVEL: info
deploy:
labels:
com.centurylinklabs.watchtower.enable: 'true'
wud.watch: 'true'
wud.watch.digest: 'true'
homepage.group: Smarthome
homepage.name: music-assistant
homepage.weight: '1'
homepage.icon: music-assistant.png
homepage.href: https://music.sectorq.eu
homepage.description: Music
homepage.server: my-docker-swarm
homepage.container: music-assistant-server
replicas: 1
placement:
constraints:
- node.role == manager
influxdb:
ports:
- target: 8086
published: 8086
protocol: tcp
mode: ingress
volumes:
- influxdb2_data:/var/lib/influxdb2
- influxdb2_config:/etc/influxdb2
secrets:
- ha_influxdb2_admin_token
environment:
DOCKER_INFLUXDB_INIT_MODE: setup
DOCKER_INFLUXDB_INIT_USERNAME: ha
DOCKER_INFLUXDB_INIT_PASSWORD: haHAhaHA
DOCKER_INFLUXDB_INIT_ORG: ha
DOCKER_INFLUXDB_INIT_BUCKET: ha
#DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: mytoken123
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN_FILE: /run/secrets/ha_influxdb2_admin_token
image: ${DOCKER_REGISTRY:-}influxdb:2
healthcheck:
test: echo test > /var/lib/influxdb2/hc || exit 1
interval: 10s
timeout: 3s
retries: 2
deploy:
labels:
com.centurylinklabs.watchtower.enable: 'true'
wud.watch: 'true'
wud.watch.digest: 'true'
replicas: 1
placement:
constraints:
- node.role == manager
volumes:
influxdb2_data:
influxdb2_config:
music_assistant_server_data:
matter-server:
ha_config:
esphome_config:
piper_data:
whisper_data:
openwakeword_data:
secrets:
ha_influxdb2_admin_token:
external: true