Skip to content

Commit ab763cc

Browse files
committed
allow anonymous mqtt
cf #42
1 parent 623afd7 commit ab763cc

File tree

4 files changed

+17
-7
lines changed

4 files changed

+17
-7
lines changed

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "Emoncms addon devcontainer",
33
"image": "ghcr.io/home-assistant/devcontainer:2-addons",
4-
"appPort": ["7123:8123", "7357:4357"],
4+
"appPort": ["7123:8123", "7357:4357", "9883:9883"],
55
"postStartCommand": "bash devcontainer_bootstrap",
66
"runArgs": ["-e", "GIT_EDITOR=code --wait", "--privileged"],
77
"containerEnv": {

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ RUN set -x;\
104104
make symodule name=sync;\
105105
make symodule name=postprocess;\
106106
make symodule name=backup;\
107-
make module name=device
107+
make module name=device
108108

109109
# redis and mosquitto conf : simple
110110
# build-base is required to compile with gcc
@@ -229,6 +229,7 @@ ENV \
229229
MYSQL_DATABASE=emoncms \
230230
MYSQL_USER=emoncms \
231231
MYSQL_PASSWORD=emonpiemoncmsmysql2016 \
232+
MQTT_ANONYMOUS=0 \
232233
MQTT_USER=emonpi \
233234
MQTT_PASSWORD=emonpimqtt2016 \
234235
MQTT_HOST=localhost \

config.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ ports:
2222
1883/tcp: 9883
2323
options:
2424
TZ: Europe/Paris
25+
MQTT_ANONYMOUS: false
2526
MQTT_HOST: localhost
2627
MQTT_BASETOPIC: emon
2728
MQTT_USER: emonpi
@@ -35,6 +36,7 @@ options:
3536
CNAME: localhost
3637
schema:
3738
TZ: str
39+
MQTT_ANONYMOUS: bool
3840
MQTT_HOST: str
3941
MQTT_BASETOPIC: str
4042
MQTT_USER: str

emoncms_pre.sh

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ if [ -f $OPTIONS_JSON ]; then
3838
PASSWORD=$(jq --raw-output '.MQTT_PASSWORD // empty' $OPTIONS_JSON)
3939
LOG_LEVEL=$(jq --raw-output '.MQTT_LOG_LEVEL // empty' $OPTIONS_JSON)
4040
HOST=$(jq --raw-output '.MQTT_HOST // empty' $OPTIONS_JSON)
41+
MQTT_ANONYMOUS=$(jq --raw-output 'if .MQTT_ANONYMOUS==true then 1 else 0 end' $OPTIONS_JSON)
4142
if [ "$USER" ]; then MQTT_USER=$USER; fi
4243
if [ "$PASSWORD" ]; then MQTT_PASSWORD=$PASSWORD; fi
4344
if [ "$LOG_LEVEL" ]; then MQTT_LOG_LEVEL=$LOG_LEVEL; fi
@@ -117,9 +118,13 @@ echo "datadir=$EMONCMS_DATADIR/mysql" >> /etc/my.cnf
117118
echo "CREATING MQTT CONF"
118119
echo "persistence false" > "$MQTT_CONF"
119120
{
120-
echo "allow_anonymous false"
121121
echo "listener 1883"
122-
echo "password_file /etc/mosquitto/passwd"
122+
if [ "$MQTT_ANONYMOUS" -eq 1 ]; then
123+
echo "allow_anonymous true"
124+
else
125+
echo "allow_anonymous false"
126+
echo "password_file /etc/mosquitto/passwd"
127+
fi
123128
echo "log_dest stdout"
124129
echo "log_timestamp_format %Y-%m-%dT%H:%M:%S"
125130
for level in $MQTT_LOG_LEVEL; do echo "log_type $level"; done;
@@ -172,9 +177,11 @@ fi
172177
} >> settings.ini
173178
cp settings.ini "$WWW/emoncms/settings.ini"
174179

175-
echo "CREATING USER/PWD FOR MOSQUITTO"
176-
touch /etc/mosquitto/passwd
177-
mosquitto_passwd -b /etc/mosquitto/passwd "$MQTT_USER" "$MQTT_PASSWORD"
180+
if [ "$MQTT_ANONYMOUS" -ne 1 ]; then
181+
echo "CREATING USER/PWD FOR MOSQUITTO"
182+
touch /etc/mosquitto/passwd
183+
mosquitto_passwd -b /etc/mosquitto/passwd "$MQTT_USER" "$MQTT_PASSWORD"
184+
fi
178185

179186
echo "GENERATING config.cfg for BACKUP MODULE"
180187
echo "user=$DAEMON" > config.cfg

0 commit comments

Comments
 (0)