Ntfy

Mis à jour le lundi 29 janvier 2024 par johackim

Ntfy est un logiciel de notification open-source. Il permet d'envoyer et de recevoir des notifications sur n'importe quel appareil (ordinateur, smartphone, tablette, etc.).

Installation

Vous pouvez récupérer le fichier binaire ntfy depuis le dépôt GitHub.

Et si vous êtes sur Arch Linux, vous pouvez directement installer le paquet ntfysh-bin :

yay -S --noconfirm ntfysh-bin

Ou rendez-vous sur cette page pour voir les différentes méthodes d'installation.

Envoyer un message

Pour envoyer un message, il faut utiliser la commande ntfy pub ou envoyer une requête POST via curl sur le serveur ntfy.sh.

ntfy pub mytopic "This is a message"

ou

curl -d "This is a message" ntfy.sh/mytopic

Recevoir un message

Pour recevoir un message, il faut utiliser la commande ntfy sub.

ntfy sub mytopic

Cela va afficher tous les messages au format JSON.

{"topic":"mytopic","message":"This is a message","time":1622656800}

Recevoir les messages avec notify-send

Pour afficher vos notifications directement sur votre environnement de bureau, vous pouvez utiliser la commande ntfy sub avec notify-send.

ntfy sub mytopic 'notify-send -t 0 "ntfy" "$m"'

Voir tous les anciens messages

Si vous souhaitez voir l'historique des messages, vous pouvez utiliser le paramètre -s all.

ntfy sub -s all mytopic

Sécuriser les messsages avec un mot de passe

Pour éviter que n'importe qui puisse envoyer ou recevoir des messages, vous pouvez utiliser un mot de passe.

ntfy publish -u admin:myp@ssw0rd ntfy.example.com/mytopic "This is a message"

ou

curl -u admin:myp@ssw0rd -d "This is a message" https://ntfy.example.com/mytopic

Cela implique que vous devez héberger votre propre serveur ntfy.

Héberger son propre serveur ntfy

Pour héberger votre propre serveur ntfy et ne pas dépendre du serveur ntfy.sh, il faut utiliser la commande ntfy serve.

ntfy serve

ou

docker run -p 80:80 binwiederhier/ntfy serve

N'oubliez pas de configurer votre pare-feu pour autoriser les connexions entrantes sur le port 80 (ou 443 si vous utilisez HTTPS).


Références :