Update setup.sh and Readme

This commit is contained in:
2025-11-03 23:10:47 +00:00
parent 25a645b3ce
commit 8395c86cb8
3 changed files with 82 additions and 20 deletions

View File

@@ -57,10 +57,10 @@ nano .env
```bash
# Container starten
docker-compose up -d
docker compose up -d
# Logs anschauen
docker-compose logs -f
docker compose logs -f
```
### 3. Benutzer erstellen
@@ -69,7 +69,7 @@ docker-compose logs -f
# Setup-Script ausführbar machen
chmod +x setup.sh
# User aus .env erstellen
# Alle User aus .env erstellen
./setup.sh
```
@@ -81,6 +81,19 @@ Das Script erstellt folgende User (Credentials aus .env):
- `device2` - IoT Device 2
- `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
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
**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
# User hinzufügen/ändern
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
```bash
docker exec -it mosquitto-mqtt mosquitto_passwd -D /mosquitto/config/passwords.txt USERNAME
```
### Mosquitto neu laden (nach User-Änderungen)
```bash
docker-compose restart mosquitto
# Container neu starten
docker compose restart mosquitto
```
## ACL Konfiguration (acl.conf)
@@ -167,7 +192,7 @@ topic read public/#
Nach ACL-Änderungen Container neu starten:
```bash
docker-compose restart mosquitto
docker compose restart mosquitto
```
## Dashboard
@@ -183,7 +208,7 @@ Die Dashboard-Einstellungen werden über Umgebungsvariablen in der `.env` Datei
Nach Änderungen Container neu starten:
```bash
docker-compose restart mqttui
docker compose restart mqttui
```
## Test-Nachrichten senden
@@ -264,13 +289,13 @@ client.on('connect', () => {
```bash
# Alle Logs
docker-compose logs -f
docker compose logs -f
# Nur Mosquitto
docker-compose logs -f mosquitto
docker compose logs -f mosquitto
# Nur MQTTUI
docker-compose logs -f mqttui
docker compose logs -f mqttui
```
### In Container einsteigen
@@ -332,22 +357,22 @@ keyfile /mosquitto/config/server.key
```bash
# Starten
docker-compose up -d
docker compose up -d
# Stoppen
docker-compose stop
docker compose stop
# Neu starten
docker-compose restart
docker compose restart
# Stoppen und löschen
docker-compose down
docker compose down
# Stoppen, löschen inkl. Volumes
docker-compose down -v
docker compose down -v
# Nur mosquitto neu starten
docker-compose restart mosquitto
docker compose restart mosquitto
```
## Support & Dokumentation

Binary file not shown.

View File

@@ -2,9 +2,46 @@
# 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
# 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
if [ ! -f .env ]; then
echo "❌ Fehler: .env Datei nicht gefunden!"
@@ -48,7 +85,7 @@ fi
# Prüfe ob Container läuft
if ! docker ps | grep -q mosquitto-mqtt; then
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..."
sleep 5
fi