1 Sicherheit Zugriffslevel
ppfeiffer edited this page 2026-04-19 18:32:44 +02:00

Sicherheit & Zugriffslevel

Das MeshCore Dashboard verwendet ein dreistufiges Benutzerkonzept mit öffentlichen, authentifizierten und rollenbasierten Zugriffsebenen.


Benutzerrollen

Rolle Beschreibung
Admin Voller Zugriff — Einstellungen, Benutzerverwaltung, alle Schreiboperationen, Setup-Wizard
Trusted Lesen + eingeschränkte Schreibrechte (Scheduler, Einstellungen). Kein Zugriff auf Benutzerverwaltung.
Guest Nur lesend — Dashboard, Contacts, Cache, Mesh Graph, Realtime, Radio, Services, Telemetry, Analyse

Seitenübersicht nach Zugriffslevel

Seite Öffentlich Guest Trusted Admin
/ Dashboard ✅ ✅ ✅ ✅
/contacts Contacts ✅ ✅ ✅ ✅
/mesh Mesh Graph ✅ ✅ ✅ ✅
/stats Nachrichten-Analyse ✅ ✅ ✅ ✅
/about Über ✅ ✅ ✅ ✅
/security Sicherheit ✅ ✅ ✅ ✅
/realtime Real-time Monitor — ✅ ✅ ✅
/radio Radio — ✅ ✅ ✅
/telemetry Telemetry — ✅ ✅ ✅
/cache Cache/DB-Info — ✅ ✅ ✅
/services Services — ✅ ✅ ✅
/settings/password Mein Profil — ✅ ✅ ✅
/feeds Feed Manager — — ✅ ✅
/scheduler Scheduler — — ✅ ✅
/settings/bot Bot-Konfiguration — — ✅ ✅
/settings/companion Companion-Node — — ✅ ✅
/settings/commands Bot-Befehle — — ✅ ✅
/greeter Greeter — — ✅ ✅
/settings/nina NINA-Warnungen — — ✅ ✅
/settings/mqtt MQTT-Broker — — ✅ ✅
/settings/users Benutzerverwaltung — — — ✅
/settings/admin Admin-Einstellungen — — — ✅
/api-docs API-Dokumentation — — — ✅

Öffentliche API-Endpunkte

Ohne Login erreichbar:

Endpunkt Beschreibung
GET /api/contacts Kontaktliste
GET /api/mesh/nodes Mesh-Nodes
GET /api/mesh/edges Mesh-Kanten
GET /api/mesh/stats Mesh-Statistiken
GET /api/dashboard Dashboard-Daten
GET /api/channels Kanalliste
GET /api/health Bot-Gesundheit
GET /api/message_stats/* Nachrichten-Analyse (alle Sub-Endpunkte)

Authentifizierung

  • Anmeldung über /login mit Benutzername und Passwort
  • Sitzung wird als verschlüsseltes Session-Cookie gespeichert
  • Registrierung erfordert E-Mail-Verifizierung (OTP, 15 Min. gültig)
  • Einladungen werden per E-Mail verschickt und sind zeitlich begrenzt (konfigurierbar)
  • Passwörter werden mit bcrypt gehasht
  • Der erste Benutzer (Setup-Wizard) erhält automatisch die Rolle Admin

Konfiguration

[Web_Viewer]
# Öffentliche URL der Instanz
site_url = https://dashboard.meshdresden.eu

# Standard-Rolle für selbst registrierte Benutzer
registration_default_role = guest

# Einladungs-Token-Gültigkeit in Stunden
invitation_ttl_hours = 48

# Flask-Secret-Key (auto-generiert bei leerem Wert)
secret_key =

Erreichbarkeit

  • Öffentliche URL: https://dashboard.meshdresden.eu
  • Standard-Port: 8080 (konfigurierbar in [Web_Viewer] port)
  • WebSocket: Socket.IO auf demselben Host/Port
  • API-Basis: /api/