Zum Inhalt springen
Tarev
Push-Notifications

VAPID-Keys einrichten — Push-Notifications aktivieren

Schritt-für-Schritt: VAPID-Keypair generieren, in .env.production eintragen, Backend neu starten, Test-Push verifizieren.

Aktualisiert: 21.5.2026

Push-Notifications brauchen ein einmaliges Schlüsselpaar (VAPID). Damit signiert das Backend jede Push-Anfrage an Google FCM / Mozilla Autopush / Apple WebPush. Ein Pair pro Service-Domain reicht — Tarev nutzt es für Pusteblume-Florist-Push, Order-Status-Push und Anlass-Reminder.

Schritt 1 — Keypair generieren

Auf dem Dev-Rechner aus dem Repo-Root:

npx tsx scripts/gen-vapid.ts

Das Skript ruft web-push generate-vapid-keys --json und gibt dir drei ENV-Zeilen zum Kopieren aus. Beispiel-Output:

NEXT_PUBLIC_PUSTEBLUME_VAPID_PUBLIC_KEY=BF4Zkm...
PUSTEBLUME_VAPID_PRIVATE_KEY=REPLACE_WITH_REAL_PRIVATE_KEY
PUSTEBLUME_VAPID_SUBJECT=mailto:info@pusteblume-halle.de

Schritt 2 — In .env.production eintragen

  1. SSH auf den Prod-Server: ssh root@tarev.de
  2. /opt/tarev/.env.production öffnen
  3. Die drei Zeilen aus Schritt 1 anhaengen
  4. Datei speichern

Alternative — Automatik mit dem Skript:

TAREV_DEPLOY_HOST=root@tarev.de npx tsx scripts/gen-vapid.ts --apply

Das prüft erst per SSH ob die Keys schon gesetzt sind (kein Overwrite), haengt sie sonst an und startet das Backend neu. Idempotent.

[Screenshot: SSH-Session mit angehaengten VAPID-Keys in .env.production]

Schritt 3 — Backend neu starten + Frontend rebuilden

Backend lädt VAPID beim Boot — also Neustart nötig:

ssh root@tarev.de "cd /opt/tarev && docker compose -f docker-compose.prod.yml restart backend"

Frontend embedet den Public-Key zur Build-Zeit (NEXT_PUBLIC_*). Nach dem Setzen einmal redeployen, damit der Key im Bundle landet.

Schritt 4 — Test-Push verifizieren

  1. Browser auf https://pusteblume.tarev.de öffnen
  2. Auf der Florist-Admin-Konsole bei "Push aktivieren" zustimmen
  3. Im Backend einen Test-Push triggern:
curl -X POST https://tarev.de/api/pusteblume-florist-push/test \
  -H "Authorization: Bearer $PUSTEBLUME_ADMIN_TOKEN"
  1. Innerhalb von 5 Sekunden sollte die Notification aufpoppen

Troubleshooting: "Test-Push kommt nicht an"

  • Browser-Permission verweigert? chrome://settings/content/notifications

prüfen — pusteblume.tarev.de muss auf "Erlauben" stehen.

  • iOS Safari? Push geht NUR wenn die Seite vorher zum

Home-Screen hinzugefügt wurde (siehe Artikel "Push-Permission auf dem iPhone").

  • VAPID-Subject ungültig? Muss mailto: oder https:// sein,

sonst lehnt FCM die Subscription ab.

  • Subscription veraltet? Push-Endpoints können vom Browser

invalidiert werden. Im Service-Worker einmal abmelden + neu abonnieren.

  • Backend-Log prüfen:
ssh root@tarev.de "cd /opt/tarev && docker compose logs backend --tail 50 | grep -i push"

Verwandte Artikel

  • Push-Permission auf dem iPhone (für Floristen)
  • Floristen-Mobile-Dashboard nutzen
  • Backup wiederherstellen (Disaster-Recovery)
pushvapidnotificationssetuppusteblumeenv
Hilft dir das nicht? support@tarev.de