wiki/docs/docker-compose/MQTT-Mosquitto.md
2024-05-04 17:03:07 +02:00

66 lines
1.3 KiB
Markdown

Portainer Stack:
```yaml
---
version: "3.9"
services:
mqtt:
container_name: mqtt
hostname: mqtt
image: eclipse-mosquitto:${TAG-latest}
restart: ${RST-unless-stopped}
network_mode: ${NET-bridge}
user: "1000:1000"
environment:
- TZ=${TZ-Europe/Amsterdam}
volumes:
- /etc/localtime:/etc/localtime:ro
- /mqtt/config:/mosquitto/config
- /mqtt/data:/mosquitto/data
- /mqtt/log:/mosquitto/log
ports:
- 9001:9001
- 1883:1883
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```
Mosquitto configuration file `/mosquitto/config/mosquitto.conf`:
```
listener 1883
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
log_dest stdout
log_type all
allow_anonymous false
password_file /mosquitto/config/passwd
```
Create empty file `/mosquitto/config/passwd`
And from the terminal create user sending:
```
docker exec -it mqtt usr/bin/mosquitto_passwd -c /mosquitto/config/passwd USERNAME
```
And if you want to add more users use:
```
docker exec -it mqtt usr/bin/mosquitto_passwd -b /mosquitto/config/passwd NEW_USERNAME PASSWORD
```