Update setup.sh and Readme
This commit is contained in:
63
README.md
63
README.md
@@ -57,10 +57,10 @@ nano .env
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Container starten
|
# Container starten
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
|
|
||||||
# Logs anschauen
|
# Logs anschauen
|
||||||
docker-compose logs -f
|
docker compose logs -f
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Benutzer erstellen
|
### 3. Benutzer erstellen
|
||||||
@@ -69,7 +69,7 @@ docker-compose logs -f
|
|||||||
# Setup-Script ausführbar machen
|
# Setup-Script ausführbar machen
|
||||||
chmod +x setup.sh
|
chmod +x setup.sh
|
||||||
|
|
||||||
# User aus .env erstellen
|
# Alle User aus .env erstellen
|
||||||
./setup.sh
|
./setup.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -81,6 +81,19 @@ Das Script erstellt folgende User (Credentials aus .env):
|
|||||||
- `device2` - IoT Device 2
|
- `device2` - IoT Device 2
|
||||||
- `monitor` - Read-Only
|
- `monitor` - Read-Only
|
||||||
|
|
||||||
|
**Einzelnen User über CLI erstellen:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Syntax: ./setup.sh create <username> <password>
|
||||||
|
./setup.sh create myuser secret123
|
||||||
|
```
|
||||||
|
|
||||||
|
⚠️ **WICHTIG**: Nach dem Erstellen eines neuen Users musst du:
|
||||||
|
1. Die ACL-Regeln in `config/acl.conf` für den neuen User anpassen
|
||||||
|
2. Mosquitto neu starten: `docker compose restart mosquitto`
|
||||||
|
|
||||||
|
Ohne ACL-Eintrag hat der neue User keine Zugriffsrechte!
|
||||||
|
|
||||||
### 4. Dashboard öffnen
|
### 4. Dashboard öffnen
|
||||||
|
|
||||||
Web Dashboard: **http://localhost:5000**
|
Web Dashboard: **http://localhost:5000**
|
||||||
@@ -123,21 +136,33 @@ docker exec mosquitto-mqtt mosquitto_sub -h localhost -t "#" -v -u admin -P <ADM
|
|||||||
|
|
||||||
### Neuen User hinzufügen
|
### Neuen User hinzufügen
|
||||||
|
|
||||||
|
**Empfohlen - Via Setup-Script:**
|
||||||
|
```bash
|
||||||
|
# Einzelnen User erstellen
|
||||||
|
./setup.sh create username password123
|
||||||
|
```
|
||||||
|
|
||||||
|
⚠️ **Danach ACL anpassen**: Bearbeite `config/acl.conf` und füge Regeln für den neuen User hinzu, dann:
|
||||||
|
```bash
|
||||||
|
docker compose restart mosquitto
|
||||||
|
```
|
||||||
|
|
||||||
|
**Alternativ - Manuell:**
|
||||||
```bash
|
```bash
|
||||||
# User hinzufügen/ändern
|
# User hinzufügen/ändern
|
||||||
docker exec -it mosquitto-mqtt mosquitto_passwd -b /mosquitto/config/passwords.txt USERNAME PASSWORD
|
docker exec -it mosquitto-mqtt mosquitto_passwd -b /mosquitto/config/passwords.txt USERNAME PASSWORD
|
||||||
|
|
||||||
|
# ACL in config/acl.conf anpassen und Container neu starten
|
||||||
|
docker compose restart mosquitto
|
||||||
```
|
```
|
||||||
|
|
||||||
### User löschen
|
### User löschen
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker exec -it mosquitto-mqtt mosquitto_passwd -D /mosquitto/config/passwords.txt USERNAME
|
docker exec -it mosquitto-mqtt mosquitto_passwd -D /mosquitto/config/passwords.txt USERNAME
|
||||||
```
|
|
||||||
|
|
||||||
### Mosquitto neu laden (nach User-Änderungen)
|
# Container neu starten
|
||||||
|
docker compose restart mosquitto
|
||||||
```bash
|
|
||||||
docker-compose restart mosquitto
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## ACL Konfiguration (acl.conf)
|
## ACL Konfiguration (acl.conf)
|
||||||
@@ -167,7 +192,7 @@ topic read public/#
|
|||||||
|
|
||||||
Nach ACL-Änderungen Container neu starten:
|
Nach ACL-Änderungen Container neu starten:
|
||||||
```bash
|
```bash
|
||||||
docker-compose restart mosquitto
|
docker compose restart mosquitto
|
||||||
```
|
```
|
||||||
|
|
||||||
## Dashboard
|
## Dashboard
|
||||||
@@ -183,7 +208,7 @@ Die Dashboard-Einstellungen werden über Umgebungsvariablen in der `.env` Datei
|
|||||||
|
|
||||||
Nach Änderungen Container neu starten:
|
Nach Änderungen Container neu starten:
|
||||||
```bash
|
```bash
|
||||||
docker-compose restart mqttui
|
docker compose restart mqttui
|
||||||
```
|
```
|
||||||
|
|
||||||
## Test-Nachrichten senden
|
## Test-Nachrichten senden
|
||||||
@@ -264,13 +289,13 @@ client.on('connect', () => {
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Alle Logs
|
# Alle Logs
|
||||||
docker-compose logs -f
|
docker compose logs -f
|
||||||
|
|
||||||
# Nur Mosquitto
|
# Nur Mosquitto
|
||||||
docker-compose logs -f mosquitto
|
docker compose logs -f mosquitto
|
||||||
|
|
||||||
# Nur MQTTUI
|
# Nur MQTTUI
|
||||||
docker-compose logs -f mqttui
|
docker compose logs -f mqttui
|
||||||
```
|
```
|
||||||
|
|
||||||
### In Container einsteigen
|
### In Container einsteigen
|
||||||
@@ -332,22 +357,22 @@ keyfile /mosquitto/config/server.key
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Starten
|
# Starten
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
|
|
||||||
# Stoppen
|
# Stoppen
|
||||||
docker-compose stop
|
docker compose stop
|
||||||
|
|
||||||
# Neu starten
|
# Neu starten
|
||||||
docker-compose restart
|
docker compose restart
|
||||||
|
|
||||||
# Stoppen und löschen
|
# Stoppen und löschen
|
||||||
docker-compose down
|
docker compose down
|
||||||
|
|
||||||
# Stoppen, löschen inkl. Volumes
|
# Stoppen, löschen inkl. Volumes
|
||||||
docker-compose down -v
|
docker compose down -v
|
||||||
|
|
||||||
# Nur mosquitto neu starten
|
# Nur mosquitto neu starten
|
||||||
docker-compose restart mosquitto
|
docker compose restart mosquitto
|
||||||
```
|
```
|
||||||
|
|
||||||
## Support & Dokumentation
|
## Support & Dokumentation
|
||||||
|
|||||||
Binary file not shown.
39
setup.sh
39
setup.sh
@@ -2,9 +2,46 @@
|
|||||||
|
|
||||||
# MQTT Setup Script - Erstellt User für Mosquitto
|
# MQTT Setup Script - Erstellt User für Mosquitto
|
||||||
# ================================================
|
# ================================================
|
||||||
|
#
|
||||||
|
# Verwendung:
|
||||||
|
# ./setup.sh - Erstellt alle User aus .env
|
||||||
|
# ./setup.sh create <username> <password> - Erstellt einzelnen User
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
# CLI-Modus: Einzelnen User erstellen
|
||||||
|
if [ "$1" == "create" ]; then
|
||||||
|
if [ -z "$2" ] || [ -z "$3" ]; then
|
||||||
|
echo "❌ Fehler: Username und Passwort erforderlich!"
|
||||||
|
echo "Verwendung: $0 create <username> <password>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
USERNAME="$2"
|
||||||
|
PASSWORD="$3"
|
||||||
|
|
||||||
|
# Prüfe ob Docker läuft
|
||||||
|
if ! docker info > /dev/null 2>&1; then
|
||||||
|
echo "❌ Fehler: Docker ist nicht gestartet!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prüfe ob Container läuft
|
||||||
|
if ! docker ps | grep -q mosquitto-mqtt; then
|
||||||
|
echo "❌ Fehler: Mosquitto Container läuft nicht!"
|
||||||
|
echo "Starte zuerst die Container mit: docker compose up -d"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "📝 Erstelle User: $USERNAME"
|
||||||
|
docker exec mosquitto-mqtt mosquitto_passwd -b /mosquitto/config/passwords.txt "$USERNAME" "$PASSWORD"
|
||||||
|
echo "✅ User $USERNAME erfolgreich erstellt/aktualisiert!"
|
||||||
|
echo ""
|
||||||
|
echo "⚠️ Vergiss nicht, ACL-Regeln in config/acl.conf anzupassen!"
|
||||||
|
echo "Und Mosquitto neu zu starten: docker compose restart mosquitto"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Lade Umgebungsvariablen aus .env
|
# Lade Umgebungsvariablen aus .env
|
||||||
if [ ! -f .env ]; then
|
if [ ! -f .env ]; then
|
||||||
echo "❌ Fehler: .env Datei nicht gefunden!"
|
echo "❌ Fehler: .env Datei nicht gefunden!"
|
||||||
@@ -48,7 +85,7 @@ fi
|
|||||||
# Prüfe ob Container läuft
|
# Prüfe ob Container läuft
|
||||||
if ! docker ps | grep -q mosquitto-mqtt; then
|
if ! docker ps | grep -q mosquitto-mqtt; then
|
||||||
echo "⚠️ Mosquitto Container läuft nicht. Starte Container..."
|
echo "⚠️ Mosquitto Container läuft nicht. Starte Container..."
|
||||||
docker-compose up -d mosquitto
|
docker compose up -d mosquitto
|
||||||
echo "⏳ Warte 5 Sekunden bis Mosquitto gestartet ist..."
|
echo "⏳ Warte 5 Sekunden bis Mosquitto gestartet ist..."
|
||||||
sleep 5
|
sleep 5
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user