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