Push-Benachrichtigungen mit ntfy: Ein simpler HTTP-Call, und dein Handy meldet sich

ntfy bringt Push-Benachrichtigungen auf jedes System – pur über HTTP. Von Monitoring-Alerts bis zum Kontaktformular dieser Website: ein Topic, ein POST, dein Handy meldet sich.
Push-Benachrichtigungen mit ntfy: Ein simpler HTTP-Call, und dein Handy meldet sich
Computersysteme reden ständig miteinander – aber fast nie mit uns. Jobs laufen durch, Backups beenden sich, Server erreichen kritische Werte – und niemand bekommt eine Nachricht, bis es zu spät ist. Genau hier setzt ntfy an: Ein minimalistischer Push-Dienst, der über simple HTTP-Requests funktioniert. Kein SDK, kein Messenger, keine komplizierte App-Infrastruktur. Du schickst eine Nachricht an einen Topic, und dein Smartphone zeigt sie an.
Das Prinzip: Publish & Subscribe in zwei Schritten
Das Konzept ist absurd einfach. Auf der einen Seite stehst du – oder eines deiner Skripte – und sendest eine Nachricht:
curl -d "Backup von mailsrv13 erfolgreich" https://ntfy.insenity.de/zuhauseAuf der anderen Seite sitzt das Handy: Einmal die ntfy-App installieren, den Topic zuhause abonnieren – fertig. Ab sofort landet jede Nachricht auf dem Gerät. Es gibt keine Registrierung, keine Firebase-Cloud, keine Push-Token-Verwaltung. Ein HTTP-POST auf einen Topic-Namen, mehr ist es nicht.
Das Schöne daran: Für die Empfängerseite brauchst du nicht einmal ein Handy. Du kannst einen Topic genauso gut per Webbrowser, CLI oder einer REST-API abonnieren. Damit eignet sich ntfy als Rückgrat für beliebige Benachrichtigungsketten.
Warum ntfy? Eine Frage der Philosophie
- Barrierefrei: Jede Sprache kann HTTP, und jede Sprachbibliothek kann
POST. Es gibt nichts zu integrieren, keinen Client SDK zu pflegen. - Schnell: Eine Nachricht raus ist der Aufwand einer HTTP-Request – drei Zeilen in jeder Pipeline, jedem Cron-Job.
- Reich: Titel, Prioritäten, Emoji-Tags, Markdown, Action-Buttons, Anhänge – über HTTP-Header lässt sich viel konfigurieren:
curl -H "Title: Disk fast full" \
-H "Priority: urgent" \
-H "Tags: warning" \
-H "Click: https://proxmox.example.org" \
-d "Filesystem /var on radius: 92% used (47GB free of 581GB)." \
https://ntfy.insenity.de/server_alerts- Selbst gehostet (und damit datenschutzfreundlich): Die Nachricht muss nicht durch fremde Cloud-Dienste laufen, wenn du es nicht willst.
- Push Notification auf's Smartphone


So funktioniert das hier: Das Kontaktformular
Diese Website nutzt ntfy für einen sehr praktischen Zweck: Jedes Mail, das jemand über das Kontaktformular schreibt, landet sofort als Push-Benachrichtigung auf meinem Handy. Kein E-Mail-Check, kein Dashboard, keine Ausnahme. Sobald ein Besucher eine Anfrage absendet, klingelt das Telefon.
Auf Serverseite ist das nur ein fetch mit ein paar HTTP-Headern:
const response = await fetch(NTFY_URL, {
method: 'POST',
headers: {
'Authorization': `Basic ${auth}`,
'Title': `New Inquiry: ${cleanName}`,
'Tags': 'email,incoming_envelope',
'Click': `mailto:${email}`,
'Content-Type': 'text/plain; charset=utf-8'
},
body: `Name: ${name}\nEmail: ${email}\n\nMessage:\n${message}`
});Drei Header machen den Unterschied: Title gibt der Notification einen aussagekräftigen Kopf, Tags sorgt für ein Sprechblasen-Emoji, und Click öffnet bei Berühren des Pings direkt das Mailprogramm – mit mailto: und vorausgefülltem Empfänger. Die Anfrage eines Interessenten wird so zu einer einzigen, sofort beantwortbaren Nachricht. Genau darum geht es: Reibungsverluste zwischen System und Mensch eliminieren.
Unendliche Use Cases
Das Kontaktformular ist nur der Anfang. Die naheliegenden und die exotischen Anwendungen:
- Backup-Benachrichtigungen: „Nightly backup of $HOST finished ✓" – mit Tag
heavy_check_markfür ein grünes Häkchen, oderwarningsamt hoher Priorität, wenn ein Job fehlschlug. - System- & Prozess-Überwachung: Ein Check alle paar Minuten, der nur dann klingelt, wenn ein Parameter außerhalb des Grenzbereichs liegt – z.B. Temperatur im Serverraum, Disk-Usage einer VM oder der Status eines wichtigen Docker-Containers.
- Job-Fertigstellung: Langlaufende Builds, Datenmigrationen oder Render-Jobs senden am Ende „Job X erfolgreich abgeschlossen" – man wartet nicht mehr gebannt auf dem Terminal, bis das Ergebnis da ist.
- Deploy-Pipelines: CI/CD-Stages stoßen bei Erfolg oder Rollback eine Notification an, ggf. mit
Actions-Button „Logs ansehen" (→view-Action) oder gar „Deploy zurückrollen" (→http-Action). - Smart-Home-Integrationen über Node-RED oder n8n: Wenn der Briefkasten leer ist oder jemand an der Tür klingelt, kommt ein Ping.
- Web-Scraping & Preisalarme: Ein Skript beobachtet eine Seite und meldet, wenn sich etwas ändert.
Der gemeinsame Nenner ist immer derselbe: Ein beliebiges Skript oder System kann in einer einzigen Zeile HTTP eine Nachricht an den Menschen dahinter übermitteln.
Selbst hosten: LXC-Container auf Proxmox
Der Dienst, auf dem diese Seite hier läuft, ist selbst gehostet – bei mir als LXC-Container auf einem Proxmox-Server. Das ist rekursiv schön: Die Software, die über die Infrastruktur wacht, läuft selbst auf der Infrastruktur, über die sie wacht.
Konkret heißt das:
- Ressourcen: ntfy ist ein einzelnes Go-Binary. Ein LXC-Container mit 512 MB RAM und minimalen CPU-Zuteilungen reicht locker.
- Betrieb: Ein Systemd-Service startet den Server beim Boot mit.
- Upstream & Downstream: Die Instanz ist per Reverse-Proxy (z.B. Traefik oder Caddy) mit TLS nach außen erreichbar – Zugriff nur mit Benutzername/Passwort, damit keine fremden Clients auf private Topics schreiben können.
Security-Hinweis: Öffentliche Topics sind per Design public. Wer selbst hostet, sollte immer Access Control aktivieren –
auth-Variablen in der Konfiguration, serverseitigAuthorization: Basicwie im Code-Beispiel oben. Wer öffentlich braucht, sollte unverräterische Topic-Namen wählen (der Topic ist de facto das Passwort).
Die Quintessenz
ntfy klingt zu gut, um wahr zu sein, weil es so einfach ist. Kein Messaging-Protokoll, keine SDK-Einbindung, keine Listen, keine Registrierungen – nur HTTP in, Notification raus. Etwas, das auf jedem System, in jeder Sprache und in jeder Denkweise funktioniert. Ob Monitoring-Alert, Backup-Report oder Kontaktformular-Benachrichtigung: Sobald diese Schleife steht, ist man erstaunt, wie viele Systeme sich melden, wenn man ihnen endlich eine Stimme gibt.
Und das Kontaktformular unten? Wenn du es ausfüllst, bekomme ich ziemlich sicher in den nächsten Sekunden einen Ping auf dem Handy. Probier's gerne aus. 😉
Schlagworte
War dieser Beitrag hilfreich?
Kommentar senden
Dein Feedback wird direkt als Push-Nachricht auf mein Handy gesendet.