Besoin de notifications push de votre serveur ? Cet outil est meilleur que Discord
Sommaire
Résumé
-
ntfy.sh est un service de notification gratuit et multiplateforme.
-
C'est idéal pour recevoir des notifications de serveurs, de domotique et de vos projets Raspberry Pi.
-
Utilisez n'importe quel script, code ou webhook capable d'envoyer une requête HTTP POST à l'API ntfy.sh.
ntfy.sh vous permet d'envoyer des notifications à vos appareils à partir de vos propres scripts, laboratoires à domicile ou projets d'automatisation. C'est gratuit et fait tout le travail de transmission des notifications à plusieurs plates-formes. Tout ce que vous avez à faire est de savoir comment l'appeler.
Qu'est-ce que ntfy.sh ?
ntfy.sh est une application de notification gratuite qui fonctionne sur les appareils mobiles Apple et Android, ainsi que pour envoyer des notifications aux navigateurs Web de bureau. Son principal cas d'utilisation est que les administrateurs informatiques et les passionnés de technologie obtiennent des mises à jour en direct de l'état de leur infrastructure, mais vous pouvez l'utiliser pour recevoir des alertes de pratiquement n'importe quel script ou morceau de code, ou de tout service prenant en charge les webhooks.
Habituellement, pour recevoir ce type de notifications push, vous devez développer une application complète et passer par le processus d'approbation de l'App Store, ou configurer une application Web avec Web Push, donc avoir quelque chose qui a déjà fait tout cela pour vous vous évite beaucoup de tracas.
Pourquoi est-ce que j’utilise ntfy.sh ?
J'utilise ntfy.sh pour quelques choses utiles et moins utiles : je reçois des notifications lorsque les sauvegardes réussissent et échouent, et si l'un de mes sites Web cesse de répondre ou si un serveur a besoin d'un redémarrage. Mon NAS signale quand le disque ou la mémoire commence à s'épuiser, et j'ai même un capteur de température qui y est connecté, donc je sais si les choses deviennent trop chaudes dans mon armoire de serveur. Du côté le moins utile, je reçois une notification souriante lorsqu'un nouvel utilisateur s'inscrit à l'une de mes applications.
La surveillance des serveurs n'est pas la limite de cet outil. Vous pouvez l'intégrer dans n'importe quelle domotique ou script pour lui faire envoyer des notifications. Tout ce que vous avez à faire est d'ajouter la commande ntfy.sh appropriée à vos scripts Bash ou Python.
Vous pouvez l'intégrer à un capteur sur votre machine à laver pour recevoir une notification lorsque c'est terminé, ou recevoir une alerte si votre porte de garage reste ouverte pendant plus de quelques minutes. Vous pouvez connecter plusieurs capteurs à un Raspberry Pi et l'utiliser pour être informé de toutes sortes de choses dans la maison.
Comment utilisez-vous ntfy.sh ?
Vous pouvez appeler ntfy.sh à partir de n'importe quel script, code ou webhook capable d'envoyer une requête HTTP POST à son API.
Cela fonctionne comme ceci : vous créez un sujet sur un serveur ntfy.sh et vous y abonnez sur l'application ntfy.sh (recherchez les liens de l'App Store sur le site Web ntfy.sh ou cliquez sur « Application » pour utiliser la version basée sur le navigateur). Le nom du sujet doit être unique et secret, car toute personne le connaissant peut lire les notifications (donc, dans les exemples ci-dessous, assurez-vous de le remplacer !).
Ensuite, à partir de vos scripts, vous envoyez simplement des notifications à ce sujet et tous les appareils abonnés reçoivent la notification. Vous pouvez utiliser gratuitement le serveur public ntfy.sh ou remplacer l'URL dans les scripts par votre propre instance auto-hébergée. Vous pouvez en savoir plus sur la façon de l'utiliser dans la documentation ntfy.sh.
Il existe une règle importante : n'y publiez pas d'informations sensibles : envoyez uniquement des alertes, n'incluez pas d'informations d'identification ou d'informations d'identification dans vos notifications, car elles pourraient être lues et interceptées par d'autres. L'authentification est disponible, mais généralement le nom du sujet fait office de mot de passe, ce qui ne constitue pas une sécurité suffisante pour les informations importantes.
Voici quelques exemples basés sur les extraits que j'utilise dans mes propres scripts.
Utilisation de ntfy.sh pour notifier l'échec du script Bash
Voici les commandes que je colle dans mes scripts Bash pour envoyer des notifications ntfy.sh si le script échoue à un moment donné. Il utilise curl pour effectuer la requête HTTP.
#!/bin/bash
set -Eeuo pipefail
NTFY_URL="https://ntfy.sh/my_super_secret_topic"
TITLE_OK="Job COMPLETED"
MESSAGE_OK="Finished successfully on $(hostname)"
TITLE_FAIL="Job FAILED"
MESSAGE_FAIL="Script interrupted on $(hostname)"
notify() {
local title="$1"
local message="$2"
curl -fsS -H "Title: ${title}" -d "${message}" "${NTFY_URL}" || true
}
# Notify on any error and exit with the same status
trap 'rc=$?; notify "$TITLE_FAIL" "Script failed on $(hostname) (exit ${rc})"; exit "${rc}"' ERR
# Notify if user hits Ctrl+C and exit with 130 (SIGINT)
trap 'notify "$TITLE_FAIL" "$MESSAGE_FAIL"; exit 130' INT
# -----------------------------
# Your script goes here
# Any non-zero exit triggers the ERR trap above
# -----------------------------
# Notify on success
notify "$TITLE_OK" "$MESSAGE_OK"
La commande trap détecte les erreurs et appelle la fonction notify(), qui envoie une requête à NTFY_URL, en lui transmettant les valeurs TITLE_OK et TITLE_FAIL pour les afficher sur votre appareil.
Utilisation de ntfy.sh avec PowerShell et le planificateur de tâches Windows
Le Planificateur de tâches Windows ne fonctionne pas seulement sur une minuterie, il peut également effectuer des actions lorsque des événements spécifiques sont déclenchés. Des événements tels que le manque d'espace disque de votre PC ou la nécessité de redémarrer après les mises à jour peuvent être utilisés pour déclencher des scripts PowerShell.
Le script PowerShell ci-dessous doit être enregistré dans son propre fichier (par exemple my_ntfy_script.ps1). Il accepte un titre, un message et une URL pour un serveur ntfy.sh, puis envoie la notification fournie.
param(
(string)$Title = "Windows Event",
(string)$Message = "Triggered",
(string)$Url = "https://ntfy.sh/my_super_secret_topic"
)
try {
# Make HTTP Request to ntfy.sh API
Invoke-RestMethod -Method Post -Uri $Url -Headers @{ Title = $Title } -Body $Message -ErrorAction Stop
} catch {
# Write to the Application log on failure
Write-EventLog -LogName Application -Source "Windows PowerShell" `
-EventId 3001 -EntryType Warning `
-Message "ntfy.sh notify failed: $($_.Exception.Message)"
}
Vous pouvez ensuite créer une tâche déclenchée par un événement dans le Planificateur de tâches Windows. Cet exemple envoie une notification lorsqu'un utilisateur tente de se connecter sans succès, ce qui crée un événement avec l'ID 4625 dans le journal de sécurité.
Pour créer une tâche planifiée à cet effet, ouvrez le Planificateur de tâches en le recherchant dans le menu Démarrer de Windows, puis sélectionnez Action > Créer une tâche de base dans la barre d'outils. Dans la boîte de dialogue Créer une tâche, renseignez le nom et la description facultative de la tâche (par exemple, Notification d'échec de connexion à ntfy.sh), cliquez sur « Suivant », puis définissez le déclencheur sur « Lorsqu'un événement spécifique est enregistré », puis cliquez à nouveau sur « Suivant ».
Pour déclencher une notification au redémarrage de votre PC, définissez la valeur du journal sur Sécuritéet définissez l'EventID sur 4625et encore une fois, appuyez sur « Suivant ».
Ensuite, sélectionnez l'action pour démarrer un programme et appuyez à nouveau sur le bouton Suivant. Copiez la commande ci-dessous dans le champ Programme/script, en remplaçant le chemin d'accès à votre script et le nom de la rubrique.
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:Scriptsmy_ntfy_script.ps1" -Title "Login failed" -Message "Someone tried to access your PC" -Url "https://ntfy.sh/my_super_secret_topic"
Cliquez à nouveau sur « Suivant ». Un avertissement peut s'afficher concernant les arguments fournis dans la zone de texte Programme : ce n'est pas grave, ils seront convertis en arguments lors de l'enregistrement. Cliquez sur Terminer sur l'écran suivant lorsque vous avez terminé.
Lorsque vous avez terminé, la nouvelle tâche devrait apparaître dans la liste de la bibliothèque de planification des tâches, comme indiqué ci-dessus. Pour tester, vous pouvez cliquer avec le bouton droit sur la tâche et sélectionner « Exécuter ».
Notez que ces notifications ne contiennent aucune information révélatrice, telle que des adresses IP ou des noms d'utilisateur. Je sais ce que signifient les notifications, mais si quelqu'un d'autre devait deviner le nom du sujet ntfy.sh, il ne pourrait rien faire avec les informations.
ntfy.sh et macOS Automator
L’outil Automator fourni avec macOS est souvent négligé, voire négligé, mais il peut vraiment faire beaucoup. Il vous permet d'automatiser les tâches courantes avec un minimum de codage, et vous pouvez même vous enregistrer en train de faire des choses et les répéter ensuite. Vous pouvez également incorporer des scripts Bash, de sorte que l'extrait fourni ci-dessus puisse également être utilisé ici.
S'abonner à partir des applications ntfy.sh
Depuis l'application ntfy.sh sur votre appareil mobile (ou à l'aide de l'application Web de votre navigateur), appuyez sur Ajouter un abonnement, puis saisissez le nom de votre sujet (et l'adresse du serveur personnalisé si vous en utilisez un).
Le sujet auquel vous êtes abonné apparaîtra alors dans la liste…
… Et lorsque vos scripts seront exécutés, vous serez averti !
Assez simple ! Et certainement utile.
Projets de bricolage dont vous voudrez entendre parler loin de chez vous
Si vous n'avez encore rien sur quoi envoyer des notifications, pourquoi ne pas démarrer un homelab (ils sont très utiles et vous permettent d'auto-héberger un tas d'applications, y compris ntfy.sh) ?
Vous pouvez également exécuter votre maison intelligente à partir d'un Raspberry Pi à l'aide de Home Assistant, qui prend en charge ntfy.sh pour les notifications. Si vous voulez bricoler, vous pouvez essayer certains de ces projets Raspberry Pi du week-end (et quelques autres projets ici et ici !) et voir s'il y a quelque chose que vous pouvez ajouter à ntfy.sh qui n'a pas encore été fait.
