Ce tutoriel n'a pas été de tout repos. Pour la base de la base, pas de problème, ça se règle en quelques minutes, avoir une notification, point. Yahou, c'est facile.En regardant de plus près, j'ai constaté qu'il y avait des fonctions intéressantes qui ne ...fonctionnaient pas bien, voir par du tout avec une configuration rapide, de base.
Dans ce tutoriel, je vous propose de configurer ntfy de manière plus poussée, sécurisée et complète.
Aujourd'hui nous allons parler de ntfy! ntfy va vous permet d'envoyer des notifications sur votre téléphone ou votre bureau.
Il fait le même job, dans les grandes lignes, que Gotify, mais pas que!
⚡ Caractéristiques
- Envoyez des notifications push depuis votre application.
- Recevez des notifications sur votre téléphone.
- Soyez notifié sur votre ordinateur.
- Attachez à la notification des fichiers vidéos, audio, des documents,...
- Notifications par e-mail.
- Divers sons de notification, smileys.
- Protections des "sujets".
💾 L'installation
- Créez votre compose.yml dans le dossier ou vous comptez installer ntfy:
sudo nano compose.yml
- Et collez ça dedans:
version: '3'
services:
ntfy:
image: binwiederhier/ntfy
container_name: ntfy
restart: unless-stopped
environment:
NTFY_BASE_URL: https://ntfy.mondomaine.com
NTFY_CACHE_FILE: /var/lib/ntfy/cache.db
NTFY_AUTH_FILE: /var/lib/ntfy/auth.db
NTFY_AUTH_DEFAULT_ACCESS: deny-all
NTFY_BEHIND_PROXY: true
NTFY_ATTACHMENT_CACHE_DIR: /var/lib/ntfy/attachments
NTFY_ENABLE_LOGIN: true
NTFY_UPSTREAM_BASE_URL: https://ntfy.mondomaine.com
NTFY_WEB_PUSH_FILE: /var/lib/ntfy/webpush.db
NTFY_WEB_PUSH_PUBLIC_KEY:
NTFY_WEB_PUSH_PRIVATE_KEY:
NTFY_WEB_PUSH_EMAIL_ADDRESS: zarev@belginux.com
NTFY_ATTACHMENT_FILE_SIZE_LIMIT: 100M
volumes:
- ./:/var/lib/ntfy
ports:
- 7171:80
command: serve
Il faudra générer des clés, mais nous y viendrons un peu plus tard.
Veillez à compléter:
- NTFY_BASE_URL: https://ntfy.mondomaine.com => Remplacez http://ntfy.mondomaine.com par votre domaine complet.
- NTFY_UPSTREAM_BASE_URL: https://ntfy.mondomaine.com => Remplacez http://ntfy.mondomaine.com par votre domaine complet.
- NTFY_WEB_PUSH_EMAIL_ADDRESS: zarev@belginux.com => Remplacez zarev@belginux.com par votre adresse e-mail.
- NTFY_ATTACHMENT_FILE_SIZE_LIMIT: 100M => Choisissez la taille maximale des fichiers joints.
- On va déployer l'application:
docker compose up -d
- Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 7171 dans ce cas. Pour l'instant cela ne vaut pas encore la peine d'y aller. On a encore des étapes à faire.
http://ip:7171/
ou votre domaine:
https://ntfy.mondomaine.com
🔑 Générer des clés
Nous allons créer un paire de clés pour compléter le compose.yml pour la fonction Web Push.
Web Push permet à ntfy de recevoir des notifications push, même lorsque l'application Web ntfy (ou même le navigateur, selon la plateforme) est fermée. Lorsqu'elle est activée, l'utilisateur peut activer les notifications en arrière-plan pour ses sujets dans l'application wep sous Paramètres.
Dans un terminal, tapez cette commande pour entrer dans le container:
docker exec -it ntfy sh
Maintenant nous allons générer des clés en tapant cette commande:
ntfy webpush keys
Ce qui donne:
Notez ces deux clés précieusement, tapez exit et validez avec la touche Entrée de votre clavier pour sortir du container. Allons éditer le compose.yml:
sudo nano compose.yml
Complétez les lignes suivants qui étaient restées vides, avec les deux clés générées à l'instant, laissez un espace entre les : et le début des clés:
NTFY_WEB_PUSH_PUBLIC_KEY:
NTFY_WEB_PUSH_PRIVATE_KEY:
- NTFY_WEB_PUSH_PUBLIC_KEY: BJfcDZDseMkcx0eEH-ARPRaoVPGBOwm6IKryB0x2Dg-x9zOH_Nv7QeFv0K_AZBHyFYrpKWwct0qy1pB8iY2_I-E
- NTFY_WEB_PUSH_PRIVATE_KEY: 3g68f6HHXbfwrN4xO7KQGFOQr5mytn5YKod-C2-qOMo
Terminez avec:
docker compose up -d
👤 Créer un compte administrateur
Nous allons faire en sorte de sécuriser un maximum l'accès à vos "sujets", le sujet c'est un "salon" dans lequel les notifications seront publiées, ici le sujet est Test:
Nous allons créer un compte administrateur en premier, dans un terminal, tapez cette commande:
docker exec -it ntfy sh
Maintenant créons l’administrateur, remplacez zarev par votre nom d'utilisateur:
ntfy user add --role=admin zarev
Quand vous entrez la commande, il faudra choisir un mot de passe et le confirmer.
Tapez exit et validez avec la touche Entrée de votre clavier pour sortir du container.
🌐 Se connecter avec son compte administrateur
Maintenant que tout ça est fait, nous pouvons nous connecter, lancez ntfy:
Cliquez en haut à droite sur SE CONNECTER:
- Identifiant => Indiquez le nom d'utilisateur de votre compte administrateur que vous avez créé.
- Mot de passe => Indiquez le mot de passe de votre compte administrateur que vous avez créé.
🗒️ Créer un sujet
Il faudra un canal, un sujet, pour que vos notifications soient publiées. Cliquez dans le menu de gauche sur:
Ce qui va ouvrir une fenêtre à remplir:
Nommez votre sujet, dans mon exemple, Test. Cliquez sur S'ABONNER:
Le sujet Test est bien créé.
Nous allons envoyer une notification de test, cliquez en haut à droite sur les trois points verticaux et choisissez l'option Envoyer une notification de test:
Tout est en ordre:
👥 Ajouter un utilisateur
Par le terminal
Si vous voulez ajouter un utilisateur qui puisse utiliser votre instance, tapez cette commande dans un terminal:
docker exec -it ntfy sh
Pour créer l'utilisateur:
ntfy user add goldorak
- Remplacez goldorak par le nom d'utilisateur souhaité, il sera demandé de
Quand vous entrez la commande, il faudra choisir un mot de passe et le confirmer.
Donner l'accès à un sujet
Il faudra également donner l'accès aux sujets à cet utilisateur, tapez cette commande:
ntfy access goldorak NomDuSujet rw
- rw => Si vous mettez rw à la fin, l'utilisateur pourra non seulement lire mais également écrire dans le sujet.
- ro => Si vous mettez ro à la fin, l'utilisateur pourra seulement lire le sujet.
Quand tout est terminé, tapez exit et validez avec la touche Entrée de votre clavier pour sortir du container.
L'utilisateur peut s’inscrire lui-même
Il suffit d'ajouter au docker compose la valeur d'environnement suivante:
NTFY_ENABLE_SIGNUP: true
Et de terminer par:
docker compose up -d
Vous aurez l'option permettant à l'utilisateur de s'inscrire:
Il faudra néanmoins autoriser l'utilisateur à joindre un ou vos sujets.
Supprimer un utilisateur
Pour supprimer un utilisateur, tapez cette commande:
ntfy user del goldorak
- Remplacez goldorak par l'utilisateur à supprimer.
🛎️ Envoyer une notification par ligne de commande
dfgdfgdf
curl -d "Mon beau message! 😀" ntfy.mondomaine.sh/Test
- "Mon beau message! 😀" => Indiquez votre message entre les " ".
- ntfy.mondomaine.sh/Test => Indiquez votre domaine/sous-domaine suivi d'un / et le nom du sujet.
📧 Configurer le serveur mail
Si vous souhaitez recevoir une copie des notifications par e-mail il faudra configurer le serveur mail.
Si vous avez votre propre serveur mail, vous connaissez déjà les informations de celui-ci qu'il faudra indiquer plus bas.
Si vous n'avez pas votre propre serveur mail il est possible d'utiliser ceux de Gmail, Outlook, Infomaniak,.. Je vous invite à lire l'article suivant pour avoir les informations nécessaires:
On va commencer par éditer le compose.yml:
sudo nano compose.yml
Et vous ajouterez ce bloc à la suite des autres entrées d'environnement:
NTFY_SMTP_SENDER_ADDR: smtp.xxx.xxx:587
NTFY_SMTP_SENDER_USER: zarev@belginux.com
NTFY_SMTP_SENDER_PASS: MonMotDePasse
NTFY_SMTP_SENDER_FROM: zarev@belginux.com
- NTFY_SMTP_SENDER_ADDR: smtp.xxx.xxx:587 => Remplacez smtp.xxx.xxx:587 par votre serveur smtp suivi de : et du port.
- NTFY_SMTP_SENDER_USER: zarev@belginux.com => Remplacez zarev@belginux.com par votre adresse e-mail.
- NTFY_SMTP_SENDER_PASS: MonMotDePasse => Remplacez MonMotDePasse par votre mot de passe.
- NTFY_SMTP_SENDER_FROM: zarev@belginux.com => Remplacez zarev@belginux.com par votre adresse e-mail ou celle qui va envoyer l'e-mail.
Terminez avec un:
docker compose up -d
🔔 Possibilités de notification par l'Ui
Si vous avez d'autres utilisateurs sur votre instance, vous serez peut-être ravi d'apprendre qu'il est possible d'envoyer plus qu'une simple notification.
Lorsque vous êtes dans un sujet, cliquez ici:
Cela va ouvrir une fenêtre:
- Titre => Donnez un titre à votre notification.
- Message => Indiquez un message.
- Étiquettes => Vous pouvez éventuellement agrémenter la notification d'une étiquette, un smiley.
- Autres fonctionnalités => Cliquez sur une URL, transférer car une adresse e-mail, joindre un fichier par URL ou un fichier local, mettre un retard sur l'envoie de la notification, ou changer de sujet.
Une image:
Un lien à cliquer:
Transférer vers un "courriel":
Côté e-mail:
Autre exemple de fichier joint:
Listes des smileys qoue vous pouvez intégrer dans un message
🛎️ Exemple de notification avec Uptime Kuma
Rendez-vous sur Uptimer Kuma, cliquez sur un service et ensuite sur Créer une notification:
Remplissez comme ceci:
- Type de notification => Choisissez ntfy.
- Nom d'affichage => Nommez la notification.
- Topic ntfy => Indiquez dans quel "sujet" la notification doit apparaître.
- URL du serveur => Indiquez l'URL de votre serveur ntfy.
- Méthode d'authentification => Il est préférable de le faire par jeton d'accès pour ne pas mettre vos identifiants.
- Jeton d'accès => Vous trouverez votre jeton ici:
Maintenant que tout est complété, cliquez sur Tester avant de Sauvegarder:
Voici les intégrations possibles:
📱 Accessibilité
Par votre navigateur
Utilisez votre navigateur préféré.
Android
Par F-Droid:
Par le Google Play