Skip to content

Commit

Permalink
[FEAT] Add user and password options
Browse files Browse the repository at this point in the history
  • Loading branch information
ggfto committed Feb 7, 2024
1 parent 64339c7 commit 5c524c7
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .mqtt/mosquitto.conf
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ listener 1883
listener 9001
#socket_domain ipv4
protocol websockets
allow_anonymous true
#allow_anonymous true

# By default, a listener will attempt to listen on all supported IP protocol
# versions. If you do not have an IPv4 or IPv6 interface you may wish to
Expand Down
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
FROM eclipse-mosquitto
RUN apk add --no-cache mosquitto-clients
COPY entrypoint.sh /entrypoint.sh
COPY .mqtt/mosquitto.conf /mosquitto/config/mosquitto.conf
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 1883
EXPOSE 9001
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,31 @@
## English

### Description
MQTT Server pre configured with default options to run 'plug and play'
MQTT Server pre configured with default options to run 'plug and play'. User and password can be set with `USER` and `PASSWORD` parameters.

### How to use

Just run from a terminal:
```sh
docker run -d -p 1883:1883 -p 9001:9001 --name mosquitto ggfto/mosquitto:latest
```
With user and password:
```sh
docker run -d -p 1883:1883 -p 9001:9001 -e USER=myuser -e PASSWORD=mypassword --name mosquitto ggfto/mosquitto:latest
```

## Português

### Descrição
Servidor MQTT pré-configurado com opções padrão para rodar sem a necessidade de ajustar algo
Servidor MQTT pré-configurado com opções padrão para rodar sem a necessidade de ajustar algo. Usuário e senha podem ser configurados com os parâmetros `USER` e `PASSWORD`

### Como usar

Apenas execute a partir de um terminal:
```sh
docker run -d -p 1883:1883 -p 9001:9001 --name mosquitto ggfto/mosquitto:latest
```
Com usuário e senha:
```sh
docker run -d -p 1883:1883 -p 9001:9001 -e USER=myuser -e PASSWORD=mypassword --name mosquitto ggfto/mosquitto:latest
```
13 changes: 13 additions & 0 deletions entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/sh
if [ ! -f /mosquitto/config/pwfile ]; then
if [ -n "$USER" ] && [ -n "$PASSWORD" ]; then
mosquitto_passwd -b -c /mosquitto/config/pwfile "$USER" "$PASSWORD"
chmod 700 /mosquitto/config/pwfile
chown mosquitto:mosquitto /mosquitto/config/pwfile
echo "password_file /mosquitto/config/pwfile" >> /mosquitto/config/mosquitto.conf
echo "allow_anonymous false" >> /mosquitto/config/mosquitto.conf
else
echo "allow_anonymous true" >> /mosquitto/config/mosquitto.conf
fi
fi
exec mosquitto -c /mosquitto/config/mosquitto.conf

0 comments on commit 5c524c7

Please sign in to comment.