ntfy

Application web : liste des topics abonnés et notification prioritaire avec la photo d'un tournesol en pièce jointe.

Topics publiés en HTTP, lus sur téléphone ou navigateur

ntfy est un service de notifications pub-sub qui passe entièrement par HTTP. Un script publie par PUT ou POST sur l'URL d'un topic, et chaque abonné reçoit le message : applications Android et iOS, application web, commande ntfy subscribe ou simple client HTTP. Un topic existe dès qu'on y publie ou qu'on s'y abonne. Le serveur public ntfy.sh se passe d'inscription, et le même serveur, écrit en Go, s'installe chez soi.

curl -d "Sauvegarde terminée" ntfy.sh/mon-topic

Priorités, boutons d'action et modèles pour webhooks

  • Mise en forme par en-têtes : titre, priorité de 1 à 5, tags affichés en emojis, icône, lien ouvert au clic et Markdown, rendu sur Android et dans l'application web.
  • Boutons d'action : ouvrir une page ou une application, envoyer un broadcast Android, lancer une requête HTTP ou copier un texte.
  • Envoi programmé : At accepte un horodatage, une durée ou une expression comme tomorrow, 3pm, avec fuseau horaire depuis la v2.29.0. Le message reste modifiable ou annulable avant son départ.
  • Webhooks JSON sans pont : les modèles Go intégrés github, grafana et alertmanager en tirent un titre et un message ; des modèles maison se déposent dans /etc/ntfy/templates.
  • Autres canaux : publication par e-mail, renvoi vers une adresse e-mail, appel vocal pour les comptes au numéro vérifié. ntfy sert aussi de distributeur UnifiedPush, sans Firebase Cloud Messaging, et de passerelle Matrix.
  • Installation : binaire lié statiquement pour amd64, armv7 et arm64, paquets deb et rpm, image Docker, chart Helm. SQLite par défaut, sans dépendance externe, ou PostgreSQL.

Sauvegardes, supervision et domotique branchées sur un topic

  • Fin de sauvegarde ou de tâche cron : un curl en dernière ligne du script, et borgmatic figure parmi les intégrations officielles listées par la documentation.
  • Supervision : Uptime Kuma, Gatus et Healthchecks.io sont dans la même liste, comme Home Assistant pour la domotique.
  • Alertes Grafana ou Alertmanager et événements GitHub, mis en forme par les modèles intégrés.

Serveur ouvert par défaut et relais ntfy.sh pour iOS

Sans configuration, le serveur accepte tout le monde. ntfy serve démarre sur le port 80 sans fichier de configuration : n'importe qui lit et écrit sur n'importe quel topic, et les messages restent 12 heures en mémoire, perdus au redémarrage. Une instance privée demande une base d'utilisateurs (auth-file ou database-url) et auth-default-access: deny-all. Sur ntfy.sh, tous les topics sont publics : sans ACL, le nom du topic est le mot de passe.

Sur iPhone, une instance auto-hébergée dépend encore de ntfy.sh. iOS bridant le travail en arrière-plan, le serveur transmet à ntfy.sh (upstream-base-url) l'identifiant du message et l'empreinte SHA-256 de l'URL du topic, ntfy.sh relaie par Firebase et APNs, puis l'iPhone récupère le message. Sans ce relais, la livraison peut prendre des heures. Sur Android, l'application garde une connexion permanente avec tout serveur autre que ntfy.sh.

Le service gratuit ntfy.sh plafonne à 250 messages par jour, avec des pièces jointes de 2 Mo. Les formules payantes commencent à 5 dollars par mois, et la première, Supporter, monte à 2 500 messages par jour. La FAQ les destine à qui ne veut pas s'auto-héberger ou veut des quotas plus hauts ; tout le code reste sous double licence Apache 2.0 et GPLv2, facturation Stripe comprise.

La dernière version est la v2.34.0, du 24 octobre 2026, la huitième étiquetée en octobre. La plupart de ces versions préparent le clustering sur une base PostgreSQL partagée, que la documentation déclare expérimental et « not ready for production ». La v2.31.0 a corrigé des pertes de messages à la reconnexion des clients : en test de charge avec redémarrages et plantages, elles sont passées de 465 à 2 sur environ 615 000 messages.

SOURCES

DÉPÔThttps://github.com/binwiederhier/ntfy
SITEhttps://ntfy.sh
LICENCEApache-2.0 OR GPL-2.0