Aller au contenu

Notifications Ntfy

Aperçu

Ntfy est un service de messagerie simple a utiliser qui prend en charge a la fois l’offre nuagique publique, https://ntfy.sh, et les serveurs prives auto-heberges.

Apprise prend en charge les schemas non securises, ntfy://, ainsi que les schemas securises, ntfys://.


Ntfy peut envoyer des notifications via les modes suivants :

La syntaxe valide est la suivante :

  • ntfy://{topic}
  • ntfy://{host}/{topic}
  • ntfy://{host}:{port}/{topics}
  • ntfy://{user}@{host}/{topics}
  • ntfy://{user}@{host}:{port}/{topics}
  • ntfy://{user}:{password}@{host}/{topics}
  • ntfy://{user}:{password}@{host}:{port}/{topics}
  • ntfy://{token}@{hostname}/{topics}

Les versions securisees sont les suivantes :

  • ntfys://{topic}
  • ntfys://{host}/{topic}
  • ntfys://{host}:{port}/{topics}
  • ntfys://{user}@{host}/{topics}
  • ntfys://{user}@{host}:{port}/{topics}
  • ntfys://{user}:{password}@{host}/{topics}
  • ntfys://{user}:{password}@{host}:{port}/{topics}
  • ntfys://{token}@{hostname}/{topics}

Vous pouvez specifier plus d’un sujet :

  • ntfy://{user}:{password}@{hostname}/{topic1}/{topic2}
VariableObligatoireDescription
userNonCompte utilisateur utilise pour l’authentification.
passwordNonMot de passe utilise pour l’authentification.
hostnameNonServeur ntfy vers lequel envoyer les notifications.
portNonLa valeur par defaut est 80 pour ntfy:// et 443 pour ntfys://.
topicOuiAu moins un sujet doit etre defini.
tokenNonJeton d’autorisation, detecte automatiquement s’il est fourni dans l’URL.
modeNonMode d’authentification, detecte automatiquement. Valeurs possibles : private, cloud.
authNonbasic, par defaut, ou token.
emailNonAssocie une adresse e-mail a la publication ntfy.
xtagsNonEtiquettes de message ntfy, envoyees dans l’en-tete X-Tags, a associer a la notification. Utilisez des virgules et/ou des espaces pour en specifier plusieurs. L’ancien parametre tags= est toujours accepte comme alias compatible. A ne pas confondre avec les tags Apprise ; voir ici pour plus de details.
attachNonURL pointant vers une piece jointe distante a referencer.
filenameNonRemplace le nom du fichier joint.
clickNonLien vers lequel les utilisateurs sont rediriges lorsqu’ils cliquent sur la notification.
priorityNonUne des valeurs max, high, default, low ou min. La valeur par defaut est default.
actionsNonDefinitions des boutons d’action ntfy.
delayNonDiffere la livraison du message.
imageNonLa valeur par defaut est Yes ; inclut un apercu de l’image lorsqu’il est disponible.
avatar_urlNonRemplace l’icone Apprise par une URL d’image personnalisee.

Si votre serveur Ntfy est heberge derriere une configuration HTTPS securisee, utilisez simplement ntfys:// :

VariableDescription
overflowCe paramètre peut être défini sur split, truncate ou upstream. Il détermine la manière dont Apprise remet le message que vous lui transmettez. Par défaut, il vaut upstream.
👉 upstream : ne fait aucune modification et transmet le message exactement tel qu’il a été reçu au service.
👉 truncate : veille à ce que le message tienne dans la limite amont documentée par le service. Si plus d’informations sont fournies que la limite définie, l’excédent est tronqué.
👉 split : similaire à truncate, sauf que si le message dépasse la limite amont documentée par le service, il est découpé en plusieurs morceaux plus petits puis envoyés séquentiellement.
formatCe paramètre peut être défini sur text, html ou markdown. Certains services prennent en charge plusieurs formats de publication du contenu. La valeur par défaut varie selon le service choisi et peut correspondre à l’un de ces trois formats. Vous pouvez facultativement forcer cette option pour vous écarter du comportement par défaut. Si le service ne prend pas en charge plusieurs formats de transmission, ce champ est ignoré.
verifyLes requêtes externes vers des emplacements sécurisés, par exemple via https, utilisent des certificats. Par défaut, Apprise vérifie la validité de ces certificats ; si ce n’est pas le cas, aucune notification n’est envoyée à la source. Dans certains cas, un utilisateur ne dispose pas d’une autorité de certification pour valider la clé ou fait simplement confiance à la source ; dans ce cas, vous pouvez définir ce drapeau sur no. Par défaut, il vaut yes.
ctoSignifie Socket Connect Timeout. Il s’agit du nombre de secondes pendant lesquelles Requests attend que votre client établisse une connexion avec une machine distante, ce qui correspond à l’appel connect() sur la socket. La valeur par défaut est de 4.0 secondes.
rtoSignifie Socket Read Timeout. Il s’agit du nombre de secondes pendant lesquelles le client attend que le serveur envoie une réponse. La valeur par défaut est de 4.0 secondes.
emojisActive la prise en charge des emojis, par exemple :+1: qui sera traduit en 👍. Par défaut, cette option vaut no.
Remarque : selon la configuration côté serveur, l’administrateur peut désactiver globalement la prise en charge des emojis ; mais par défaut, ce n’est pas le cas.
tzIdentifie le fuseau horaire de la base IANA que vous souhaitez utiliser. Par défaut, celui-ci est détecté à partir de la configuration du serveur qui exécute Apprise. Vous pouvez le définir sur des valeurs comme America/Toronto, ou sur tout autre fuseau correctement formaté correspondant à votre région.

Le parametre xtags= ci-dessus fait reference uniquement aux tags de message ntfy, envoyes dans l’en-tete X-Tags. L’ancienne orthographe tags= reste acceptee pour des raisons de compatibilite ascendante, mais xtags= est desormais a privilegier.

Ces tags sont envoyes directement au serveur ntfy et apparaissent sous forme d’etiquettes ou d’emojis sur la notification livree.

Ils ne correspondent pas aux tags de routage Apprise.

Les tags de routage Apprise sont configures dans votre fichier de configuration Apprise, avec tag: ou tags: en YAML, et determinent quels services de notification sont declenches. Ils n’ont aucun effet sur l’en-tete X-Tags envoye au serveur ntfy.

Voici un exemple de message Ntfy envoye avec des tags :

Fenêtre de terminal
apprise -vv -t "Failure" -b "Un probleme est survenu" \
"ntfy://localhost/mytopic?priority=high&xtags=warning"

Voici un exemple reprenant le precedent pour montrer que plusieurs tags Ntfy sont egalement pris en charge :

Fenêtre de terminal
apprise -vv -t "Alert" -b "Espace disque faible" \
"ntfy://localhost/mytopic?priority=high&xtags=warning,storage"

Les fichiers de configuration YAML d’Apprise peuvent parfois preter a confusion puisqu’ils utilisent eux aussi des tags. L’exemple ci-dessous montre clairement la difference entre tag: dans Apprise et xtags= dans ntfy.

apprise.yaml
urls:
- ntfy://localhost/mytopic?priority=high&xtags=warning:
tag: ntfy-alert

Dans l’exemple ci-dessus :

  • xtags=warning : tag de message Ntfy, qui definit l’en-tete X-Tags: warning

  • tag: ntfy-alert : tag de routage Apprise ; il serait ensuite utilise lors du declenchement suivant :

    Fenêtre de terminal
    apprise -vv -t "Alert" -b "Espace disque faible" \
    --tag=ntfy-alert --config=apprise.yaml

Envoyer une notification vers un serveur Ntfy local :

Fenêtre de terminal
# Supposons que notre {hostname} soit localhost
# Supposons que notre {topic} soit great-place
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \
ntfy://localhost/great-place

Nous pouvons aussi envoyer une notification au serveur ntfy.sh, en mode cloud :

Fenêtre de terminal
# Supposons que notre {topic} soit great-place
apprise -vv -t "Titre du Message de Test" -b "Corps du Message de Test" \
ntfy://great-place

Ntfy prend egalement en charge Markdown ; pour en profiter, ajoutez simplement ?format=markdown a votre URL Apprise, par exemple :

Fenêtre de terminal
# Supposons que notre {hostname} soit localhost
# Supposons que notre {topic} soit great-place
# Supposons que nous voulions tirer parti de la prise en charge de markdown
apprise -vv -t "Titre du Message de Test" -b "# Markdown Support" \
"ntfy://localhost/great-place?format=markdown"

Utilisation securisee en HTTPS :

Fenêtre de terminal
# Supposons que notre {hostname} SECURISE soit localhost
# Supposons que notre {topic} soit great-topic
apprise -vv -t "Titre du Message de Test Securise" -b "Corps du Message de Test" \
ntfys://localhost/great-topic

Utilisation des boutons d’action ntfy :

Fenêtre de terminal
apprise -vv -t "Title" -b "Contenu du Message" \
ntfy://ntfy.selfhostedexample.com/mytopic?actions=view%2CGoogle%2Chttps://www.google.com%3Bview%2CBing%2Chttps://www.bing.com
Questions ou commentaires ?

Documentation

Vous avez repéré une faute de frappe ou une erreur ? Signalez-la ou proposez une correction .

Problèmes Techniques

Vous rencontrez un problème avec le code ? Ouvrez un ticket sur GitHub :

Conçu avec amour depuis le Canada