Version 1.0.69 (Build 72)

Clearnet & Tor.

Nachrichten empfangen.
Sofort reagieren.

PAGER verbindet Android-Geräte mit einer Web-UI: Empfänger verwalten, Nachrichten senden – per Browser oder Curl-API – und zuverlässig alarmieren mit vier Prioritätsstufen. AES-256-Verschlüsselung in DB und Empfangs-API, per HTTPS – auch im Hintergrund und auf dem Sperrbildschirm.

PAGER-App auf einem Android-Smartphone mit Alarm-Benachrichtigung

Prioritätsstufen

1 – High 2 – Normal 3 – Low 4 – Quiet

Prio 1: Vollbild-Alarm mit Ton · Prio 2/3: Heads-up + Ton · Prio 4: Stille Hintergrundmeldung

Warum PAGER?

App, Empfangs-API, Web-UI und Send-API – ein abgestimmtes System für den zuverlässigen Betrieb im Einsatz.

Prio-1 Vollbild-Alarm auf dem Smartphone-Sperrbildschirm
Web-UI und App im Zusammenspiel – Nachrichtenverwaltung und Versand
🔔

Prio-1 Vollbild

NOTFALL-Prio erscheint über dem Sperrbildschirm mit lautem Ton. „Ton aus“ stoppt den Alarm, der Dienst läuft weiter.

📡

API-Polling

Die App fragt regelmäßig api.php ab und empfängt neue Nachrichten zuverlässig im Hintergrund.

🎧

Eigene Töne

Pro Priorität eine Audiodatei wählen – oder unsere mitgelieferten MP3-Alarmtöne als Startpunkt nutzen.

📱

Web-UI

Über die Web-UI senden Sie mit Login an einzelne Pager oder Gruppen – inkl. NOTFALL-Bestätigung bei Prio 1.

👥

Empfänger & Gruppen

Unter manage_pager.php legen Sie Pager an, ordnen sie per Drag & Drop Gruppen zu und verwalten API- sowie Gruppen-Tokens.

Send-API

Mit send-api.php versenden Sie Nachrichten per Curl – der empfaenger_token ist PagerId oder Gruppen-Token, die API erkennt das automatisch.

🔒

AES-256-Verschlüsselung

Nachrichten und API-Verkehr der Empfangs-API sind verschlüsselt – in der Datenbank und auf dem Draht zur App. Mehr erfahren

Sicherheit · Datenschutz

Verschlüsselung in jeder Schicht

PAGER schützt Inhalte durch AES-256-CBC mit SHA-256-Schlüsselableitung – identisch in App und Server. Klartext-Nachrichten landen nicht in der Datenbank; die Empfangs-API spricht ausschließlich im verschlüsselten enc-Format.

Versand send-api.php

JSON + API-Token (cURL/HTTPS)

Speicher Datenbank

Titel & Nachricht AES-verschlüsselt

Abruf api.php

Request & Response in enc

Gerät PAGER-App

Entschlüsselung & Alarm

1 · Transport

Der Verkehr läuft über HTTPS im Clearnet – weder Absender noch Empfänger müssen ihre Server-IP preisgeben. Die App verbindet sich direkt per HTTPS mit Ihrer API-URL.

  • Hidden Service für Web-UI und APIs (HTTPS)
  • TLS-Zertifikat am Clearnet-Host (z. B. Let’s Encrypt)
  • Kein Klartext auf der Leitung (HTTPS)
  • Self-Hosting auf eigenem Server

2 · Empfangs-API (api.php)

Jeder Request und jede Antwort wird als JSON verschlüsselt und im Feld enc übertragen – auch leere Polls und Fehlermeldungen. Sniffer sehen nur Base64-Blobs, keine PagerIds oder Nachrichtentexte.

Request (App → Server):

{
  "enc": "Base64( IV + AES-256-CBC( JSON ) )"
}

Klartext-Inhalt nach Entschlüsselung z. B.: {"pagerid":"…"}

3 · Datenbank

In der Messages-Tabelle werden Titel und Nachricht mit zufälligem IV pro Eintrag verschlüsselt. Die PagerId wird deterministisch verschlüsselt, damit Abfragen möglich bleiben, ohne sie im Klartext zu speichern.

  • Algorithmus: AES-256-CBC (OpenSSL / Dart encrypt)
  • Schlüssel: SHA-256-Ableitung, App & Server identisch
  • DB-Dump allein enthält keine lesbaren Meldungen

Send-API vs. Empfangs-API

send-api.php api.php
Zweck Nachrichten senden Nachrichten abrufen
Auth API-Token (64 Zeichen) Verschlüsselter Body
Wire-Format Klartext-JSON {"enc":"…"}
Speicher AES-256 verschlüsselt

Die Send-API ist für automatisierte Systeme mit Token-Auth gedacht; der eigentliche Nachrichteninhalt ist trotzdem nur verschlüsselt in der DB und wird zur App ausschließlich über die verschlüsselte Empfangs-API geliefert.

Was das für Sie bedeutet

  • Abgehörte API-Polls zeigen keine Klartext-Inhalte – weder Betreff noch Meldungstext.
  • Gestohlene Datenbank-Backups liefern ohne Schlüssel keine verwertbaren Nachrichten.
  • HTTPS + Verschlüsselung ergänzen sich: Transportschutz und Inhalts-Schutz auf Anwendungsebene.
  • Gleicher Code in App und Server – keine proprietäre Sonderlösung, sondern bewährte AES-256-CBC-Implementierung.

API-Token und Gruppen-Token bleiben geheim zu behandeln – sie autorisieren den Versand, ersetzen aber nicht die Nachrichtenverschlüsselung in der DB.

Web-UI & Bedienung

Drei Oberflächen arbeiten zusammen: Empfänger pflegen, manuell alarmieren oder automatisiert aus anderen Systemen anstoßen – erreichbar nur über HTTPS (Clearnet).

Clearnet & Tor

Web-UI / Send-API: per HTTPS im Clearnet (diese Installation). Android-App: Dual-Modus – Clearnet-URL = direkter HTTPS-Zugriff, .onion-URL = eingebettetes Tor. Kurzanleitung

Ablauf im Überblick

  1. App installieren und PagerId unter Info ablesen
  2. Verwalter trägt die PagerId unter Empfänger verwalten ein
  3. App pollt api.php und empfängt Nachrichten
  4. Versand über Web-UI oder send-api.php (cURL/HTTPS)
Verwaltung

Empfänger & Token

Empfänger verwalten – nach Anmeldung mit Ihrem Web-UI-Benutzerkonto:

  • Pager mit PagerId und Klarnamen anlegen
  • Gruppen erstellen und Pager per Drag & Drop zuordnen
  • API-Token (64 Zeichen) für Curl-Versand kopieren
  • Gruppen-Token (16 Zeichen) pro Gruppe für Sammelalarme

Jeder Benutzer sieht nur seine eigenen Pager und Gruppen. Neue Geräte werden nicht automatisch freigeschaltet – die PagerId muss hier hinterlegt sein.

Öffnen
Manuell

Web-UI

Web-UI – das Sende-Formular für den laufenden Betrieb:

  • Empfänger wählen: einzelner Pager oder Gruppe
  • Priorität 1–4 (NOTFALL, Wichtig, Normal, Stiller Alarm)
  • Titel und Nachrichtentext eingeben
  • Bei Prio 1: Passwort-Bestätigung und Warnhinweis

Von der Web-UI aus gelangen Sie direkt zur Empfängerverwaltung. Das eigene Passwort lässt sich dort ändern.

Öffnen
Automatisiert

Send-API (Curl)

send-api.php – für Skripte, Monitoring oder Fremdsysteme:

  • Authentifizierung per API-Token (Parameter oder Bearer-Header)
  • Ziel: empfaenger_token (PagerId oder Gruppen-Token)
  • Parameter: prio, titel, nachricht

Anleitung: ausführliche Anleitung

curl -X POST "https://pager.w3dk.de/send-api.php" \
  -k \
  -H "Content-Type: application/json" \
  -d '{"api_token":"IHR_TOKEN","empfaenger_token":"Ihr_Empfaenger_Token","prio":2,"titel":"Einsatz","nachricht":"Bitte antreten."}'

Prioritäten in der Web-UI

1NOTFALL – Vollbild, nicht ignorierbar
2Wichtig – erhöhte Priorität mit Ton
3Normal – Standardmeldung
4Stiller Alarm – Hintergrundmeldung ohne Ton

Wichtige Hinweise

  • Die App zeigt unbekannte PagerIds eine Hinweismeldung (Prio 3) – kein Echtbetrieb ohne Freischaltung.
  • API-Token und Gruppen-Token sind geheim – nicht in Repositories oder Logs ablegen.
  • Gruppen-Token sind 16-stellig; das User-API-Token hat 64 Zeichen.
  • Neue Benutzer beantragen ein Konto in der Web-UI – der Administrator schaltet es in admin.php frei.
  • Mehrere Web-UI-Benutzer können parallel arbeiten – jeder mit eigenen Empfängern.

Einrichten

Web-UI und Send-API laufen im Clearnet über HTTPS. Die Android-App unterstützt Clearnet und Tor: normale Hosts per HTTPS, .onion automatisch über eingebettetes Tor.

Web-Oberfläche

Browser

Für Versand, Verwaltung und Login: die Clearnet-URL in einem normalen Browser öffnen.

Beispiel: https://pager.w3dk.de/message.php

cURL / Skripte

Send-API per HTTPS

Automatisierter Versand über send-api.php läuft per HTTPS. API-Token und Empfänger-Token aus der Verwaltung verwenden.

Details und Beispiele: Send-API.

Android-App

  1. APK installieren (unbekannte Quellen erlauben).
  2. API-URL per QR-Code scannen (Clearnet dieser Installation) oder manuell eine Clearnet- oder Onion-API-URL eintragen: https://pager.w3dk.de/api.php
  3. PagerId unter Info ablesen und vom Verwalter freischalten lassen.
  4. Akku-Optimierung für Pager deaktivieren (Hintergrund-Polling).

cURL-Test

Send-API erreichbar?

curl -X POST "https://pager.w3dk.de/send-api.php" \
  -H "Content-Type: application/json" \
  -d '{"api_token":"IHR_TOKEN","empfaenger_token":"EMPFAENGER","prio":3,"titel":"Test","nachricht":"Hallo"}'

Bei selbst-signierten Zertifikaten ggf. -k ergänzen. Produktionsumgebungen sollten gültige TLS-Zertifikate nutzen.

Clearnet · Automatisierung

Alarme per cURL (HTTPS)

Skripte, Monitoring und Leitsoftware stoßen PAGER-Nachrichten direkt an – ohne Browser, ohne Klartext-Leitung. Die send-api.php nimmt Ihren API-Token entgegen; Nachrichten werden verschlüsselt gespeichert und von der App über die Empfangs-API abgerufen.

Automatisierter Versand per cURL an die PAGER Send-API
Von Skript oder Monitoring per cURL über HTTPS – AES-verschlüsselt bis zur App.

So funktioniert der Versand

  1. API-Token holen – nach Login unter Empfänger verwalten (64 Zeichen, geheim halten).
  2. PagerId eintragen – die Geräte-ID aus der App (Info) muss dem Konto zugeordnet sein, sonst lehnt die API ab.
  3. HTTPS erreichbar – Server und DNS müssen die Clearnet-URL auflösen.
  4. POST an send-api.php – JSON mit Token, Ziel, Prio, Titel und Nachricht.
  5. App empfängt – das Gerät pollt api.php und alarmiert je nach Prio-Stufe (Vollbild bei Prio 1).

Clearnet-Endpunkt:

https://pager.w3dk.de/send-api.php

cURL-Beispiel (empfohlen)

Ersetzen Sie IHR_API_TOKEN und Ihr_Empfaenger_Token (PagerId oder Gruppen-Token). Die API ist per HTTPS erreichbar. Bei selbst-signierten Zertifikaten in cURL mit -k akzeptieren.

curl -X POST "https://pager.w3dk.de/send-api.php" \
  -k \
  -H "Content-Type: application/json" \
  -d '{
    "api_token": "IHR_API_TOKEN",
    "empfaenger_token": "Ihr_Empfaenger_Token",
    "prio": 2,
    "titel": "Einsatz",
    "nachricht": "Bitte antreten."
  }'

Alternative: Bearer-Header

curl -X POST "https://pager.w3dk.de/send-api.php" \
  -k \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer IHR_API_TOKEN" \
  -d '{"empfaenger_token":"Ihr_Empfaenger_Token","prio":1,"titel":"NOTFALL","nachricht":"Sofort antreten."}'

Derselbe Befehl für Einzel-Pager und Gruppen: empfaenger_token ist entweder die PagerId aus der App oder der Gruppen-Token aus der Empfängerverwaltung.

Erfolgreiche Antwort

{
  "success": true,
  "prio": 2,
  "titel": "Einsatz",
  "pager_ids": ["BE2A250530026F3"],
  "created": 1,
  "updated": 0,
  "timestamp": "2026-07-12 12:19:22",
  "target": "pager"
}

Die API-Antwort ist Klartext-JSON (Bestätigung). Titel und Nachricht werden in der Datenbank verschlüsselt abgelegt; die App erhält sie über die verschlüsselte Empfangs-API.

Parameter & Prioritäten

api_tokenIhr persönliches API-Token (oder Bearer)
empfaenger_tokenPagerId oder Gruppen-Token (API erkennt automatisch)
prio1 = NOTFALL · 2 = Wichtig · 3 = Normal · 4 = Still
titelBetreff (Pflicht)
nachrichtText (Pflicht)

Fehler: 401 Token ungültig · 400 PagerId fehlt/nicht berechtigt · Timeout → Firewall, DNS und HTTPS-Zertifikat prüfen.

Eigenen Server betreiben?

Self-Hosting ist möglich – auf eigenem Server oder im geschlossenen Netz. Kontaktieren Sie uns über das Anfrageformular.

Der Dienst läuft im Clearnet über HTTPS; Self-Hosting nutzt dieselbe API.

Download

Android-App, Self-Hosting-Paket und Erweiterungsdateien für den eigenen Serverbetrieb.

PAGER Android App

PAGER Android App

Version 1.0.69 (Build 72)

Release-APK für Android-Geräte. Nach dem Download die Datei öffnen und die Installation aus unbekannten Quellen erlauben, falls nötig.

Datei: pager.apk · 85.9 MB

APK herunterladen

Self-Hosting

Eigenen PAGER-Server betreiben? Wir stellen das Komplettpaket auf Anfrage bereit. Hinterlegen Sie unten Ihre Kontaktdaten – die Anfrage geht direkt an unser Admin-Team (Pager-Benachrichtigung).

Alarmtöne (MP3)

Vorkonfigurierte Alarmdateien für Prio 1–3. In der App unter Einstellungen → Alarmtöne auswählen oder eigene Dateien verwenden.

Keine MP3-Dateien gefunden.

Self-Hosting anfragen

Tragen Sie Ihre Kontaktdaten ein – wir erhalten die Anfrage als Pager-Meldung und melden uns bei Ihnen. Kein Konto nötig, keine öffentliche E-Mail-Adresse.

Die Nachricht wird verschlüsselt gespeichert und an unser Admin-Pager-Gerät übermittelt.

Einrichtung & Nutzung

Vom Download bis zum ersten Alarm – App, Freischaltung und Versand.

1

App installieren & API-URL setzen

Laden Sie die APK herunter und installieren Sie PAGER auf dem Android-Gerät. Unter Einstellungen die Empfangs-API eintragen:

https://pager.w3dk.de/api.php

Erlauben Sie Benachrichtigungen, Hintergrundbetrieb und – für Prio 1 – die Android-Berechtigungen Über anderen Apps einblenden und Vollbild-Intents.

2

PagerId notieren & freischalten

Die PagerId steht in der App unter Info. Ein Verwalter meldet sich unter Empfänger verwalten an und legt die PagerId mit einem Klarnamen an. Ohne diesen Schritt erhält das Gerät nur eine Hinweismeldung, keine Echtnachrichten.

3

Gruppen & Tokens einrichten

Optional: Gruppen anlegen und Pager per Drag & Drop zuordnen. Pro Gruppe entsteht ein Gruppen-Token (16 Zeichen) für Sammelalarme per Send-API. Ihr persönliches API-Token (64 Zeichen) finden Sie in derselben Oberfläche – für Curl-Versand.

4

Alarmtöne wählen

Unter Einstellungen → Alarmtöne je Priorität eine Datei auswählen. Die mitgelieferten prio1.mp3 bis prio3.mp3 eignen sich als Startpunkt oder werden durch eigene MP3s ersetzt.

5

Nachrichten senden

Manuell: Web-UI – Empfänger, Prio, Titel und Text wählen, bei NOTFALL Passwort bestätigen.

Automatisiert: send-api.php per cURL über HTTPS – siehe Send-API-Anleitung mit fertigem Befehl, API-Token und empfaenger_token.

Die App holt neue Nachrichten per Polling ab und alarmiert entsprechend der gewählten Prio-Stufe.

Empfangs-API (App-Poll)

POST · Content-Type: application/json

API-URL

In der App unter Einstellungen eintragen oder per QR-Scanner übernehmen.

https://pager.w3dk.de/api.php
{
  "pagerid": "BE2A250530026F3"
}

Endpoint: api.php · Die PagerId muss unter Empfänger verwalten eingetragen sein.

Antwort mit Nachricht:

{
  "success": true,
  "id": "…",
  "timestamp": "…",
  "prio": 2,
  "titel": "Betreff",
  "message": "Text"
}

Keine Nachricht: {"ok":1}

Send-API (cURL)

POST · JSON · Clearnet: komplette Anleitung

curl -X POST "https://pager.w3dk.de/send-api.php" \
  -k \
  -H "Content-Type: application/json" \
  -d '{"api_token":"…","empfaenger_token":"…","prio":2,"titel":"Test","nachricht":"Hallo"}'

API-Token und Empfänger-Token aus Empfänger verwalten (PagerId oder Gruppen-Token).

Bereit zum Testen?

Melden Sie sich in der Web-UI an und senden Sie eine Testnachricht.

Zur Web-UI