Clearnet & Tor.
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.
Prioritätsstufen
1 – High 2 – Normal 3 – Low 4 – QuietPrio 1: Vollbild-Alarm mit Ton · Prio 2/3: Heads-up + Ton · Prio 4: Stille Hintergrundmeldung
App, Empfangs-API, Web-UI und Send-API – ein abgestimmtes System für den zuverlässigen Betrieb im Einsatz.
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
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.
JSON + API-Token (cURL/HTTPS)
Titel & Nachricht AES-verschlüsselt
Request & Response in enc
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.
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.
encrypt)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
API-Token und Gruppen-Token bleiben geheim zu behandeln – sie autorisieren den Versand, ersetzen aber nicht die Nachrichtenverschlüsselung in der DB.
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
api.php und empfängt Nachrichtensend-api.php (cURL/HTTPS)Empfänger & Token
Empfänger verwalten – nach Anmeldung mit Ihrem Web-UI-Benutzerkonto:
Jeder Benutzer sieht nur seine eigenen Pager und Gruppen. Neue Geräte werden nicht automatisch freigeschaltet – die PagerId muss hier hinterlegt sein.
ÖffnenWeb-UI
Web-UI – das Sende-Formular für den laufenden Betrieb:
Von der Web-UI aus gelangen Sie direkt zur Empfängerverwaltung. Das eigene Passwort lässt sich dort ändern.
ÖffnenSend-API (Curl)
send-api.php – für Skripte, Monitoring oder Fremdsysteme:
empfaenger_token (PagerId oder Gruppen-Token)prio, titel, nachrichtAnleitung: 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
| 1 | NOTFALL – Vollbild, nicht ignorierbar |
| 2 | Wichtig – erhöhte Priorität mit Ton |
| 3 | Normal – Standardmeldung |
| 4 | Stiller Alarm – Hintergrundmeldung ohne Ton |
Wichtige Hinweise
admin.php frei.
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.
Browser
Für Versand, Verwaltung und Login: die Clearnet-URL in einem normalen Browser öffnen.
Beispiel: https://pager.w3dk.de/message.php
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
https://pager.w3dk.de/api.php
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.
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.
So funktioniert der Versand
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_token | Ihr persönliches API-Token (oder Bearer) |
empfaenger_token | PagerId oder Gruppen-Token (API erkennt automatisch) |
prio | 1 = NOTFALL · 2 = Wichtig · 3 = Normal · 4 = Still |
titel | Betreff (Pflicht) |
nachricht | Text (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.
Android-App, Self-Hosting-Paket und Erweiterungsdateien für den eigenen Serverbetrieb.
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.
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.
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.
Vom Download bis zum ersten Alarm – App, Freischaltung und Versand.
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.
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.
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.
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.
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
{
"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).