Cockpit-Datenmodus in Produktion (Render)
Checkliste für den Dashboard-Service mallos-dashboard auf Render (dashboard.cockpit-os.de) — Sales-Demos vs. echte Live-Integrationen.
Grundregel
| Szenario | COCKPIT_DATA_MODE | Erwartung |
|---|---|---|
| Sales-Demo (volle Cockpits ohne Partner) | simulator | Footfall, Parking, Signage, Revenue, Expenses, Energy liefern Demo-Daten |
| Produktion / Pilot ohne Simulator | off | Nur echte Quellen oder leere KPIs mit Setup-Hinweis |
| Strikt nur Live | live | Wie off, kein Simulator-Fallback |
Live hat immer Vorrang: Ist z. B. Parking in der DB belegt oder Umami konfiguriert, werden diese Daten genutzt — unabhängig vom Modus.
UI-Toggle: Footfall-Seite → Cockpit-Datenmodus (DataSimulatorSettings). Env COCKPIT_DATA_MODE überschreibt den globalen DB-Default; pro-Domäne-Overrides (z. B. Footfall Simulator, Revenue aus) bleiben in der DB editierbar.
PATCH /api/system/data-mode Body-Beispiel:
{
"domains": {
"revenue": "off",
"footfall": null
}
}
null entfernt den Override (Domäne folgt wieder dem globalen Modus).
Env-Checkliste (Render → mallos-dashboard)
Pflicht / häufig
| Variable | Zweck |
|---|---|
DATABASE_URL | Shadow-/Produktions-DB |
COCKPIT_DATA_MODE | simulator für Demos, off für „nur echt“ |
Website (kein Simulator)
| Variable | Zweck |
|---|---|
UMAMI_PASSWORD | Server-seitige Umami-Abfragen (Website + Companion) |
Center: umamiWebsiteId in der Center-Konfiguration.
Domänen mit optionalem Live-Adapter
Partner-APIs sind vorbereitet (fetchLive*()); ohne Spec liefern sie null → Simulator oder leer.
| Domäne | Env (Auszug) |
|---|---|
| Footfall | FOOTFALL_PROVIDER, FOOTFALL_API_BASE_URL, FOOTFALL_API_KEY |
| Signage | SIGNAGE_API_BASE_URL, SIGNAGE_API_KEY — Produktion ohne URL: keine localhost-Fallbacks |
| Revenue | REVENUE_PROVIDER, REVENUE_API_BASE_URL, REVENUE_API_KEY |
| Expenses | EXPENSES_PROVIDER, EXPENSES_API_BASE_URL, EXPENSES_API_KEY |
| Energy | ENERGY_PROVIDER, ENERGY_API_BASE_URL, ENERGY_API_KEY |
Parking und Property nutzen DB-Daten (ParkingZone, Flächen) — keine separaten Env-Keys.
Vollständige Liste: apps/dashboard/.env.example
Empfohlene Demo-Konfiguration
COCKPIT_DATA_MODE=simulator
UMAMI_PASSWORD=<secret>
# SIGNAGE_API_BASE_URL nur setzen, wenn Signage-Service live ist
- HQ, Finance, Data-Business zeigen konsistente Demo-Streams (Revenue, Expenses, Energy).
- Website-KPIs nur mit echtem Demo-Center + Umami — nicht simuliert.
Empfohlene Produktions-Konfiguration (ohne Demo-Zahlen)
COCKPIT_DATA_MODE=off
SIGNAGE_API_BASE_URL=https://<signage-service>/api
UMAMI_PASSWORD=<secret>
# Partner-APIs nach Spec ergänzen
UI zeigt dann „Keine Daten“ / Setup-Hinweise statt erfundener Werte.
Verifikation nach Deploy
- Footfall-Seite — Datenmodus-Badge und Toggle prüfen.
- HQ-Cockpit — Footfall, Revenue, Auslastung, Energieeffizienz: Quelle-Badge (
live/simulator/ leer). - Data-Business — Footfall, Revenue, Expenses, Energy (
*StreamStatus), Parking wie konfiguriert; pro Domäne Overrides in den Datenmodus-Einstellungen testen. - Digital Signage → Analytics — bei fehlender API: Companion-Umami oder Hinweis, kein stiller localhost-Fallback in Prod.
Verwandt
Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /en/developer-guide/cockpit-data-mode-production