Installer ntfy et recevoir les notifications de son serveur sur son téléphone
Installer ntfy, s'abonner depuis son téléphone, et faire parler ses scripts : fin de sauvegarde, disque presque plein, connexion SSH. Avec des sujets privés.
ntfy envoie des notifications sur votre téléphone avec une simple requête web. N’importe quel script peut donc vous prévenir : « sauvegarde terminée », « disque plein à 90 % », « quelqu’un s’est connecté en SSH ».
Installer
Dans Mon serveur, ajoutez ntfy (30 Mo de RAM, presque rien). Adresse proposée :
ntfy.mondomaine.fr.
S’abonner sur le téléphone
- Installez l’application ntfy (Android : Play Store ou F-Droid ; iOS : App Store).
- Ajoutez un abonnement : serveur
https://ntfy.mondomaine.fr, sujetserveur-a8f3k2(inventez le vôtre).
Le nom du sujet sert de mot de passe. Par défaut, toute personne qui connaît le nom d’un sujet peut y lire et y
écrire. Choisissez un nom long et impossible à deviner, jamais alertes ou test.
Envoyer sa première notification
Depuis le serveur (ou n’importe où) :
curl -d "Bonjour depuis mon serveur !" https://ntfy.mondomaine.fr/serveur-a8f3k2
Le téléphone sonne. Avec un titre, une priorité et une icône :
curl -H "Title: Sauvegarde" -H "Priority: high" -H "Tags: warning" \
-d "La sauvegarde de cette nuit a échoué" https://ntfy.mondomaine.fr/serveur-a8f3k2
Faire parler la sauvegarde de Mon serveur
Ajoutez une ligne à la fin du script de sauvegarde automatique :
sudo nano /usr/local/bin/sauvegarde-serveur
curl -s -H "Title: Sauvegarde" -d "OK : $(ls /opt/backups/*_$(date +%F).tgz | wc -l) archives, $(du -sh /opt/backups | cut -f1)" \
https://ntfy.mondomaine.fr/serveur-a8f3k2 >/dev/null
Chaque matin, une notification confirme le nombre d’archives de la nuit. Le jour où elle n’arrive pas, vous savez qu’il faut regarder.
Être prévenu d’un disque presque plein
Un petit script à planifier toutes les heures :
sudo tee /usr/local/bin/alerte-disque >/dev/null <<'EOF'
#!/bin/bash
p=$(df --output=pcent / | tail -1 | tr -dc 0-9)
[ "$p" -ge 85 ] && curl -s -H "Priority: high" -d "Disque plein à $p %" https://ntfy.mondomaine.fr/serveur-a8f3k2 >/dev/null
exit 0
EOF
sudo chmod 755 /usr/local/bin/alerte-disque
echo "0 * * * * root /usr/local/bin/alerte-disque" | sudo tee /etc/cron.d/alerte-disque
Être prévenu à chaque connexion SSH
sudo tee /usr/local/bin/alerte-ssh >/dev/null <<'EOF'
#!/bin/bash
[ "$PAM_TYPE" = "open_session" ] && curl -s -m 5 -d "Connexion SSH de $PAM_USER depuis $PAM_RHOST" https://ntfy.mondomaine.fr/serveur-a8f3k2 >/dev/null
exit 0
EOF
sudo chmod 755 /usr/local/bin/alerte-ssh
echo 'session optional pam_exec.so /usr/local/bin/alerte-ssh' | sudo tee -a /etc/pam.d/sshd
Gardez votre session SSH ouverte et testez la connexion dans un second terminal avant de fermer la première :
en cas d’erreur, vous pourrez encore corriger. Le mot optional garantit qu’un échec de la notification
n’empêche jamais la connexion.
Une connexion que vous n’avez pas faite ? Vous le saurez dans la seconde.
Uptime Kuma, Paperless et les autres
Beaucoup d’applications savent envoyer vers ntfy : Uptime Kuma (type de notification « ntfy »), Changedetection, Home Assistant… Indiquez l’adresse du serveur et votre sujet.
Aller plus loin : un vrai contrôle d’accès
Pour que seul vous puissiez lire et écrire, activez l’authentification de ntfy (fichier /opt/stacks/ntfy/etc/server.yml,
option auth-default-access: deny-all, puis création d’un utilisateur avec ntfy user add). La documentation
officielle détaille la marche à suivre ; c’est indispensable si vous partagez le serveur ntfy avec d’autres personnes.
Une commande qui ne marche pas, une explication pas claire ? Signaler une erreur dans cette page.