
ntfy partout : la voix de tout le labo
Dès que ntfy tourne (voir Homelab : ntfy), n'importe quel script peut joindre votre téléphone d'une seule requête HTTP. La partie intéressante vient après : décider ce qui mérite de sonner, et faire que chaque notification mène quelque part d'utile. Voici comment ntfy est devenu la voix de tout notre labo.
Ce que vous y gagnez. Un téléphone qui vous dit ce qui compte et rien d'autre : un agent qui attend votre oui, un service qui a échoué, un nouveau message d'un visiteur. Touchez la notification et vous arrivez exactement sur le bon écran. Aucun service Google en jeu.
Un peu d'histoire
Les téléphones reçoivent leurs notifications par un service de push tenu par la plateforme : celui de Google sur Android, celui d'Apple sur iOS. Chaque appli qui veut réveiller votre téléphone passe par lui. ntfy, un projet libre de Philipp Heckel publié pour la première fois en 2021, a renversé la logique : un tout petit serveur que vous hébergez, où publier est une simple requête HTTP et s'abonner une appli qui garde sa propre connexion. En parallèle, le projet UnifiedPush a défini un standard ouvert pour que n'importe quelle appli Android reçoive ses notifications par un distributeur de votre choix, ntfy compris.
1. Un sujet par usage
- Les alertes du parc : seulement les événements de gravité error ou critical, tirés de la table d'événements du labo.
- Les agents : une session de code qui demande une autorisation, une tâche finie, une demande de fusion prête à lire.
- Le contact : un nouveau message du formulaire du site auquel le tri n'a pas su répondre seul.
Des sujets séparés permettent d'en couper un sans perdre les autres, et de donner à chacun son propre son sur le téléphone.
2. La gravité décide si ça sonne
Chaque événement porte une gravité. Info ne sonne jamais : c'est là quand vous regardez. Warning arrive en silence. Error et critical sonnent. Un « je suis vivant » quotidien de chaque machine est une info ; le silence d'une machine trop longtemps est une erreur (voir des pannes qui vous appellent).
curl -H "Priority: high" -H "Tags: warning" \
-d "backup.service a échoué sur le serveur" https://ntfy.votre-labo.example/fleet-alerts
3. Des liens qui ouvrent le bon écran
Une notification peut porter une action au toucher : une adresse web, ou une adresse qui ouvre votre propre appli. Notre console sur téléphone déclare son propre schéma, si bien qu'une notification « session en attente d'accord » ouvre exactement cette session dans l'appli, à un tap de la valider (voir Inari).
curl -H "Click: swarmfox://session/4182" -d "L'agent demande à lancer les tests" https://ntfy.votre-labo.example/agents
4. Sans Google
Sur Android, l'appli ntfy garde sa propre connexion à votre serveur, et peut servir de distributeur UnifiedPush : d'autres applis (la nôtre comprise) reçoivent leurs notifications par elle au lieu du service de push de Google. Rien de votre labo ne passe par un tiers.
Pièges
La lassitude des notifications est réelle : une semaine d'alertes bruyantes et vous cessez de les lire. Signalez une panne une fois et son retour à la normale une fois ; ne répétez jamais chaque minute.
Gardez le serveur joignable depuis le téléphone par votre réseau privé, et fermez la publication aux inconnus : un sujet ouvert permet à n'importe qui de vous envoyer des notifications.
Sources
Utile ? Dites-nous ce qu'il faut mesurer ensuite.