Desktop-Benachrichtigungen (Web Push)
Menü: Glocke → Desktop-Benachrichtigungen einrichten — oder Avatar → Meine Benachrichtigungen
Pfad: /dashboard/account/notifications (alle Rollen)
Organisatorische Kanäle (Slack, Webhooks, …): Einstellungen → Benachrichtigungen (/dashboard/settings/notifications, nur Admin-Rollen).
Echte Browser-Push-Meldungen am Desktop — auch wenn cockpitOS minimiert ist oder der Tab im Hintergrund läuft.
Was
- Web Push über Service Worker (
/push-sw.js) - Auslösung zentral bei jeder
DashboardNotification(Glocke): Freigaben, Kommentare, Token-Hinweise - Opt-in pro Nutzer und Gerät
Warum
Prüfer sollen Freigabe-Anfragen sofort sehen — ohne ständig die Glocke oder E-Mail zu prüfen.
Wer ist betroffen
| Rolle | Aktion |
|---|---|
| Prüfer / Redaktion | Push in Präferenzen aktivieren, Browser-Erlaubnis erteilen |
| IT / Betrieb | VAPID-Keys auf Render setzen, Migration ausführen |
So aktivieren (Nutzer)
- Glocke oben rechts → Desktop-Benachrichtigungen einrichten — oder Avatar → Meine Benachrichtigungen
- Desktop-Benachrichtigungen einschalten
- Im Browser Benachrichtigungen erlauben (Chrome/Edge empfohlen)
- Test: Social-Post zur Freigabe senden — Prüfer erhält Desktop-Meldung + Eintrag in der Glocke
Betrieb (IT)
Env (Render / Coolify)
npx web-push generate-vapid-keys
| Variable | Zweck |
|---|---|
VAPID_PUBLIC_KEY | Öffentlicher Schlüssel (auch an Browser) |
VAPID_PRIVATE_KEY | Geheim, nur Server |
VAPID_SUBJECT | z. B. mailto:notifications@cockpit-os.de (optional, sonst EMAIL_FROM) |
Migration (einmalig)
psql "$DATABASE_URL" -f packages/database/migrations/20260708200000_add_desktop_push_SAFE.sql
APIs
| Methode | Pfad | Zweck |
|---|---|---|
| GET | /api/users/me/push-config | VAPID Public Key, Status |
| POST | /api/users/me/push-subscription | Gerät registrieren |
| DELETE | /api/users/me/push-subscription | Gerät / alle Geräte entfernen |
| PATCH | /api/users/me/notification-preferences | desktopPushEnabled |
Push-Versand: automatisch in createDashboardNotification() — kein separater Cron.
Grenzen
- Browser muss Push unterstützen (Desktop Chrome/Edge/Firefox; iOS nur eingeschränkt)
- Nutzer muss Opt-in + OS-Benachrichtigungen erlauben
- E-Mail bleibt Fallback bei abgelaufenen Subscriptions oder fehlender Berechtigung
Siehe auch
- Social-Media-Freigabe
- Developer:
apps/dashboard/src/lib/push/dispatch-dashboard-push.ts
Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /dashboard/desktop-push-benachrichtigungen