feat(homeassistant): Add Mosquitto MQTT broker

This commit is contained in:
Adrien Poupa 2025-01-05 00:06:31 -05:00
parent 5d6b301ec7
commit 558a758e40
6 changed files with 49 additions and 2 deletions

2
.gitignore vendored
View File

@ -1,4 +1,4 @@
.env
*.env
.idea
docker-compose.override.yml
/homepage/logs

View File

@ -2,3 +2,5 @@
!README.md
!docker-compose.yml
!backup.env.example
!mosquitto.env.example
!mosquitto/config/mosquitto.conf

View File

@ -21,6 +21,18 @@ http:
Set the `HOMEASSISTANT_ACCESS_TOKEN` for homepage support.
## MQTT
If you need to use MQTT, you can enable it by setting `COMPOSE_PROFILES=homeassistant,mqtt`.
Start the container, create a user in mosquitto with the following command and the credentials defined previously:
`docker compose exec mosquitto mosquitto_passwd -b /mosquitto/config/pwfile <username> <password>`
Restart the Mosquitto container to apply the changes.
In HomeAssistant, add the MQTT integration with hostname `localhost`, port 1883 and the username and password defined above.
## Backup
### Enable Backups in HomeAssistant

View File

@ -34,6 +34,27 @@ services:
- homepage.widget.key=${HOMEASSISTANT_ACCESS_TOKEN}
profiles:
- homeassistant
mosquitto:
container_name: mosquitto
image: eclipse-mosquitto
restart: always
user: ${USER_ID}:${GROUP_ID}
environment:
- PUID=${USER_ID}
- PGID=${GROUP_ID}
volumes:
- ${CONFIG_ROOT:-.}/homeassistant/mosquitto/config:/mosquitto/config
- ${CONFIG_ROOT:-.}/homeassistant/mosquitto/data:/mosquitto/data
- ${CONFIG_ROOT:-.}/homeassistant/mosquitto/log:/mosquitto/log
ports:
- "1883:1883"
healthcheck:
test: [ "CMD", "mosquitto_sub", "-p", "1880", "-t", "$$SYS/#", "-C", "1", "-i", "healthcheck", "-W", "3" ]
interval: 1m
timeout: 10s
retries: 3
profiles:
- mqtt
homeassistant-backup:
image: adrienpoupa/rclone-backup:latest
container_name: homeassistant-backup

View File

@ -0,0 +1,12 @@
persistence true
persistence_location /mosquitto/data
password_file /mosquitto/config/pwfile
allow_anonymous false
log_dest file /mosquitto/log/mosquitto.log
listener 1883
listener 1880 127.0.0.1
allow_anonymous true