ntfy : envoyer une notification push avec une seule requête curl
Un service de notifications push open-source qui se déclenche depuis un script shell, un cron ou une alerte de monitoring — sans SDK, sans compte, sans configuration.
Recevoir une notification quand un script de sauvegarde échoue, qu'un cron termine, ou qu'un capteur domotique déclenche une alerte demande normalement d'intégrer un SDK, créer une app, ou configurer un service tiers avec ses quotas. ntfy réduit tout ça à une requête HTTP POST — le service le plus simple de cette liste, et probablement celui qu'on branche le plus souvent une fois découvert.
ntfy est un service de publication/abonnement (pub/sub) pour notifications push. Un script publie un message sur un "topic" via une requête HTTP, et tous les appareils abonnés à ce topic (via l'app mobile, le navigateur, ou un simple curl en écoute) reçoivent la notification en quelques secondes. Pas de compte à créer, pas de clé API à générer pour un usage basique — le topic lui-même sert d'identifiant.
Envoyer une notification en une ligne
curl -d "Sauvegarde terminée avec succès" ntfy.sh/mon-topic-secret-xyz123Ça fonctionne immédiatement contre l'instance publique ntfy.sh, gratuite et sans compte — le "topic" (mon-topic-secret-xyz123) fait office de canal privé par obscurité. Pour un usage sérieux ou des données sensibles, l'auto-hébergement reste recommandé.
Auto-héberger son instance
services:
ntfy:
image: binwiederhier/ntfy
restart: always
command:
- serve
environment:
TZ: Europe/Paris
volumes:
- ./ntfy-cache:/var/cache/ntfy
- ./ntfy-config:/etc/ntfy
ports:
- "8080:80"base-url: "https://ntfy.mondomaine.fr"
auth-file: "/etc/ntfy/auth.db"
auth-default-access: "deny-all"auth-default-access: deny-all force chaque topic à être explicitement autorisé — sans ça, n'importe qui connaissant l'URL de l'instance peut publier ou s'abonner à n'importe quel topic.
docker exec ntfy ntfy user add monuser
docker exec ntfy ntfy access monuser mon-topic-secret rwS'abonner depuis mobile ou desktop
L'app officielle (Android, iOS) s'abonne à un ou plusieurs topics et affiche les notifications comme n'importe quelle app native. Côté navigateur, une simple page web ouverte reste abonnée en arrière-plan via Web Push. Pour un terminal, curl en mode streaming affiche les messages en direct :
curl -s ntfy.mondomaine.fr/mon-topic-secret/rawBrancher ntfy sur un cron ou un script
#!/bin/bash
# backup.sh
if pg_dump -U postgres mabase > /backups/dump-$(date +%F).sql; then
curl -H "Title: Backup réussie" \
-H "Priority: low" \
-d "Dump PostgreSQL terminé sans erreur" \
https://ntfy.mondomaine.fr/backups-monsite
else
curl -H "Title: Backup ÉCHOUÉE" \
-H "Priority: urgent" \
-H "Tags: warning,skull" \
-d "Le dump PostgreSQL a échoué, vérifier les logs" \
https://ntfy.mondomaine.fr/backups-monsite
fiLe header Priority: urgent force une notification sonore même en mode silencieux sur mobile — utile pour distinguer un échec critique d'une notification de routine.
Intégration avec Uptime Kuma et Grafana
ntfy figure dans la liste de notifications supportées nativement par Uptime Kuma et se configure comme n'importe quel autre canal — email, Discord, webhook générique.
Uptime Kuma > Notifications > Ajouter > ntfy
URL serveur : https://ntfy.mondomaine.fr
Topic : monitoring-serveur
Priorité : élevéePour Grafana, un contact point de type webhook générique pointe directement vers l'URL du topic ntfy — aucune intégration native nécessaire, juste une requête HTTP standard.
Notifications riches : actions et pièces jointes
Au-delà du texte brut, ntfy supporte des boutons d'action cliquables directement depuis la notification, et des pièces jointes (images, captures d'écran).
curl -H "Title: Mouvement détecté" \
-H "Actions: view, Voir la caméra, https://camera.mondomaine.fr, clear=true" \
-T /tmp/capture.jpg \
https://ntfy.mondomaine.fr/securite-maisonCe niveau de détail rapproche ntfy d'un vrai système d'alerte domotique plutôt qu'un simple envoi de texte — utile combiné à Home Assistant pour des alertes de capteurs avec image jointe.
ntfy vs Gotify vs Pushover
| Critère | ntfy | Gotify | Pushover |
|---|---|---|---|
| Self-hosted | Oui | Oui | Non (SaaS) |
| Coût | Gratuit | Gratuit | Licence unique par plateforme |
| App mobile officielle | Oui | Oui | Oui |
| Topics multiples sans compte | Oui | Non (token par app) | Non |
| Actions cliquables | Oui | Non | Oui |
Gotify est l'alternative self-hosted la plus proche, mais impose de créer une "application" avec token dédié pour chaque source de notification — un peu plus rigide que le modèle de topics ouverts de ntfy, où n'importe quel script peut publier vers un topic existant sans configuration préalable côté serveur.
ntfy est probablement le plus petit projet de cette liste, et c'est sa force : dix minutes d'installation, aucune API complexe à apprendre, et une utilité immédiate dans n'importe quel script qui tourne déjà sur le serveur. Une fois branché sur les crons de sauvegarde et les alertes de monitoring, c'est le genre d'outil dont on se demande comment on s'en passait avant.