MQTT Dashboard Stack – Mosquitto + Auth (TOTP/Email) + Web-Dashboard
  • Python 58.3%
  • HTML 37.4%
  • Shell 3%
  • Vim Snippet 0.8%
  • Dockerfile 0.5%
Find a file
2026-05-13 19:18:35 +02:00
.forgejo ci: DELETE response fix – kein json.load bei 204 2026-05-13 16:28:17 +00:00
app refactor: ein Image (Auth + Dashboard) via supervisord 2026-05-13 10:50:43 +00:00
mosquitto/config feat: initial mqtt dashboard stack 2026-05-13 10:41:25 +00:00
.env.example feat: initial mqtt dashboard stack 2026-05-13 10:41:25 +00:00
.gitignore refactor: ein Image (Auth + Dashboard) via supervisord 2026-05-13 10:50:43 +00:00
build-and-push.sh refactor: ein Image (Auth + Dashboard) via supervisord 2026-05-13 10:50:43 +00:00
Caddyfile.snippet feat: initial mqtt dashboard stack 2026-05-13 10:41:25 +00:00
deploy.sh ci: Source-Release statt Docker-Build im Runner 2026-05-13 11:05:57 +00:00
docker-compose.yml docker-compose.yml aktualisiert 2026-05-13 19:18:35 +02:00
README.md feat: initial mqtt dashboard stack 2026-05-13 10:41:25 +00:00

MQTT Dashboard Setup-Guide

Architektur

Browser → Caddy → mqtt-auth:8089 (Login/TOTP/Email-Token)
                       │ (nach Auth)
                       ▼
              mqtt-dashboard:8088 (Flask API)
                       │
                       ▼
              mosquitto:1883 (MQTT Broker)

Nur mqtt-auth ist via Caddy nach außen erreichbar.


Portainer-Deployment (Git-Repo, empfohlen)

  1. Repo auf git.pfeiffer-privat.de anlegen (z.B. ppfeiffer/mqtt-dashboard-stack)
  2. Alle Dateien pushen
  3. In Portainer: Stacks → Add Stack → Git Repository
    • URL: https://git.pfeiffer-privat.de/ppfeiffer/mqtt-dashboard-stack
    • Branch: master
    • Compose path: docker-compose.yml
    • Auth: Forgejo-Token
  4. Environment-Variablen setzen (siehe .env.example)
  5. Deploy

Portainer-Deployment (Editor, Fallback)

  • Stacks → Add Stack → Web editor
  • docker-compose.yml einfügen
  • Env-Variablen im unteren Bereich setzen

Pflicht-Env-Variablen

Variable Beschreibung
SECRET_KEY python3 -c "import secrets; print(secrets.token_hex(32))"
ADMIN_PASSWORD Erstes Admin-Passwort
ADMIN_EMAIL Admin-E-Mail
CADDY_NETWORK_NAME Name des externen Caddy-Netzes (Standard: caddy-net)

Erster Login & TOTP einrichten

  1. https://mqtt.meshdresden.eu öffnen
  2. Login mit admin / ADMIN_PASSWORD
  3. Konto → TOTP einrichten → QR-Code mit Aegis/FreeOTP scannen
  4. 6-stelligen Code bestätigen → fertig

SMTP später konfigurieren

Stack in Portainer editieren, Env-Vars ergänzen:

SMTP_HOST=mail.example.com
SMTP_PORT=587
SMTP_USER=user@example.com
SMTP_PASS=geheim
SMTP_TLS=starttls

Stack neu deployen keine Datenverlust.


Caddy-Integration

Caddyfile.snippet in bestehende Caddyfile eintragen. CADDY_NETWORK_EXTERNAL=true, CADDY_NETWORK_NAME=caddy-net setzen.


Security

  • SECRET_KEY niemals in Git committen
  • TOTP für Admin sofort aktivieren
  • SMTP-Passwort nur als Portainer Env-Var