Installer ntfy avec Docker
ntfy

Installer ntfy avec Docker

Table des matières

GitHub - binwiederhier/ntfy: Send push notifications to your phone or desktop using PUT/POST
Send push notifications to your phone or desktop using PUT/POST - binwiederhier/ntfy

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!

💡
Cela fonctionnera pas sans HTTPS, utilisez votre méthode habituelle pour en obtenir. Il est vivement conseillé de lier ntfy à un domaine/sous-domaine.

⚡ 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

  1. Créez votre compose.yml dans le dossier ou vous comptez installer ntfy:
sudo nano compose.yml
  1. 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.
  1. On va déployer l'application:
docker compose up -d
  1. 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.
Sending messages - ntfy
Send push notifications to your phone via PUT/POST

📧 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:

Configurer le SMTP pour envoyer un mail avec une application Docker
Tutoriel pour configurer le SMTP afin d’envoyer un mail à partir de vos applications self-hosted.

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

Emojis 🥳 🎉 - ntfy
Send push notifications to your phone via PUT/POST

🛎️ 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:

Integrations + projects - ntfy
Send push notifications to your phone via PUT/POST

📱 Accessibilité

Par votre navigateur

Utilisez votre navigateur préféré.

Android

Par F-Droid:

ntfy - PUT/POST to your phone | F-Droid - Free and Open Source Android App Repository
Send notifications to your phone from any script using PUT/POST requests

Par le Google Play

ntfy - PUT/POST to your phone - Apps on Google Play
Send notifications to your phone from any script or app using PUT/POST requests

iOS

‎ntfy
‎Send push notifications to your phone from any Bash or PowerShell script, or from your own app using PUT/POST requests, e.g. via curl on Linux or Invoke-WebRequest. ntfy is a client for https://ntfy.sh, a free and open source HTTP-based pub-sub service. You can subscribe to topics in this app, and…

zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.