[V4.0.1] Push notification service - self hosted mit NTFY
Verfasst: So Sep 15, 2024 10:30 pm
Hallo zusammen,
da es ja immer wieder auch Anfragen gibt, wie man sich auf verschiedenen Endgeräten über Ereignisse benachrichtigen lassen kann wollte ich kurz "https://docs.ntfy.sh/install/#docker" hier mal erwähnen, den ich mir heute erstmalig als Docker Container eingerichtet habe.
NTFY ist ein Push-Service der komplett selbst (z.B. auf Docker) gehostet werden kann (kleine Einschränkung gibt es bei iOS als Empfangsgeräte) und dieser Dienst ist enorm vielfältig und mächtig und in diversen anderen Diensten bereits integriert (z.B. Uptime-Kuma).
Mein Ziel war es, einen einzelnen Service zu nutzen bei dem auch längere Outputs geliefert werden können inkl. Attachments und der mir bzgl. Privacy taugt. Da ich NTFY selbst hosten kann ist das gegeben, der Aufbau der Mitteilungs-Struktur ist ähnlich wie MQTT nach Topics (Benachrichtigungs-Kanäle) möglich und mittels eines Authentification-Systems sogar ganz granular einsetzbar mit Benutzerberechtigungen nur für bestimmte Topics, auch noch unterscheidbar nach read/write (also Subscribe/Publish in MQTT-Sprache). Es handelt sich aber nicht um einen MQTT-Service, lediglich erinnert der Aufbau etwas daran.
Vorteile:
- alle Nachrichteninhalte die versendet werden bleiben komplett "privat" wenn man den Dienst selbst betreibt. Für iOS muss man jedoch (kostenfrei) den Upstream-Server von NTFY (https://ntfy.sh) bemühen und hat eine gewisse Verfügbarkeitsabhängigkeit davon (Inhalte laufen nicht darüber, nur die Message-ID für die iOS Push Notifications, da iOS einen registrierten Dienst braucht), aber Störungen sind eher unwahrscheinlich/selten.
- einfache http(s) Requests (PUT/POST und GET) reichen aus um Nachrichten zu versenden, so können auch mit curl Kommandos beliebige Linux Befehle ergänzt werden (Dinge die länger laufen, etc.) und nach Abschluss kommt eine Push-Meldung rein und benachrichtigt darüber. Auch einfache Integration mit TWS ist damit möglich.
- Einfache Integration mit node-RED möglich.
- Umfangreiche Benutzerverwaltung möglich.
- Als Docker-Container verfügbar.
- Bereits in manche Monitoring-Dienste wie Uptime-Kuma als Benachrichtigungsdienst integriert.
- und bestimmt noch einiges mehr was mir gerade nur nicht einfällt.
Nachteile:
- Etwas Einarbeitung erforderlich
- Benutzerverwaltung etwas komplexer aufzusetzen
Der Post dient lediglich dazu eine Lösung die ich für sehr gut befinde hier publik zu machen, da ich noch nichts dazu gefunden habe. Ich erweitere derzeit mein Monitoring der Smart Home IT und dadurch stoße ich immer wieder auf einige neue, interessante Dienste.
da es ja immer wieder auch Anfragen gibt, wie man sich auf verschiedenen Endgeräten über Ereignisse benachrichtigen lassen kann wollte ich kurz "https://docs.ntfy.sh/install/#docker" hier mal erwähnen, den ich mir heute erstmalig als Docker Container eingerichtet habe.
NTFY ist ein Push-Service der komplett selbst (z.B. auf Docker) gehostet werden kann (kleine Einschränkung gibt es bei iOS als Empfangsgeräte) und dieser Dienst ist enorm vielfältig und mächtig und in diversen anderen Diensten bereits integriert (z.B. Uptime-Kuma).
Mein Ziel war es, einen einzelnen Service zu nutzen bei dem auch längere Outputs geliefert werden können inkl. Attachments und der mir bzgl. Privacy taugt. Da ich NTFY selbst hosten kann ist das gegeben, der Aufbau der Mitteilungs-Struktur ist ähnlich wie MQTT nach Topics (Benachrichtigungs-Kanäle) möglich und mittels eines Authentification-Systems sogar ganz granular einsetzbar mit Benutzerberechtigungen nur für bestimmte Topics, auch noch unterscheidbar nach read/write (also Subscribe/Publish in MQTT-Sprache). Es handelt sich aber nicht um einen MQTT-Service, lediglich erinnert der Aufbau etwas daran.
Vorteile:
- alle Nachrichteninhalte die versendet werden bleiben komplett "privat" wenn man den Dienst selbst betreibt. Für iOS muss man jedoch (kostenfrei) den Upstream-Server von NTFY (https://ntfy.sh) bemühen und hat eine gewisse Verfügbarkeitsabhängigkeit davon (Inhalte laufen nicht darüber, nur die Message-ID für die iOS Push Notifications, da iOS einen registrierten Dienst braucht), aber Störungen sind eher unwahrscheinlich/selten.
- einfache http(s) Requests (PUT/POST und GET) reichen aus um Nachrichten zu versenden, so können auch mit curl Kommandos beliebige Linux Befehle ergänzt werden (Dinge die länger laufen, etc.) und nach Abschluss kommt eine Push-Meldung rein und benachrichtigt darüber. Auch einfache Integration mit TWS ist damit möglich.
- Einfache Integration mit node-RED möglich.
- Umfangreiche Benutzerverwaltung möglich.
- Als Docker-Container verfügbar.
- Bereits in manche Monitoring-Dienste wie Uptime-Kuma als Benachrichtigungsdienst integriert.
- und bestimmt noch einiges mehr was mir gerade nur nicht einfällt.
Nachteile:
- Etwas Einarbeitung erforderlich
- Benutzerverwaltung etwas komplexer aufzusetzen
Der Post dient lediglich dazu eine Lösung die ich für sehr gut befinde hier publik zu machen, da ich noch nichts dazu gefunden habe. Ich erweitere derzeit mein Monitoring der Smart Home IT und dadurch stoße ich immer wieder auf einige neue, interessante Dienste.