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

1.3 KiB

Portainer Stack:

---
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