====Mosquitto MQTT==== ===Install=== sudo apt install mosquitto mosquitto-clients mosquitto-dev ===Disable=== Stop and disable mosquitto server for now. Later start it using `runit' /etc/init.d/mosquitto stop update-rc.d mosquitto disable systemctl disable mosquitto systemctl mask mosquitto ===Setup=== ==Private LAN== Create and edit local config vi /etc/mosquitto/conf.d/local.conf Add the following listener 1883 allow_anonymous true ==Public WAN== Create password file and add a user touch /etc/mosquitto/pwfile mosquitto_passwd -b /etc/mosquitto/pwfile username password Create and edit local config vi /etc/mosquitto/conf.d/local.conf Add the following listener 8883 allow_anonymous false password_file /etc/mosquitto/pwfile certfile /etc/mosquitto/certs/cert.pem cafile /etc/mosquitto/certs/fullchain.pem keyfile /etc/mosquitto/certs/key.pem ===Runit=== #! /bin/bash sleep 1 #LOG exec 2>&1 ulimit -l unlimited ulimit -i unlimited ulimit -q unlimited ulimit -n 8192 ulimit -aH #RUN mkdir -p /var/lib/mosquitto chown -R mosquitto:mosquitto /var/lib/mosquitto mkdir -p /var/log/mosquitto chown -R mosquitto:mosquitto /var/log/mosquitto mkdir -p /run/mosquitto chown -R mosquitto:mosquitto /run/mosquitto exec /usr/sbin/mosquitto -c ===Test=== ==Private LAN== mosquitto_sub -h 192.168.0.13 -t '#' ==Public WAN== mosquitto_sub -v -h hostname.example.com -p 8883 -u username -P password -t '#' The hostname must match the name in the TLS certificate.