diff --git a/README.md b/README.md index 5bf3304..90d8489 100644 --- a/README.md +++ b/README.md @@ -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 +./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 { ```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 diff --git a/data/mosquitto.db b/data/mosquitto.db index 366600b..3964f80 100644 Binary files a/data/mosquitto.db and b/data/mosquitto.db differ diff --git a/setup.sh b/setup.sh index bb466f1..5c68b77 100644 --- a/setup.sh +++ b/setup.sh @@ -2,9 +2,46 @@ # MQTT Setup Script - Erstellt User für Mosquitto # ================================================ +# +# Verwendung: +# ./setup.sh - Erstellt alle User aus .env +# ./setup.sh create - 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 " + 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