Skip to content
Menu
  • Accueil
  • A propos
Zorio's Hack

Notification Synology sur une instance Gotify

Posted on 26 avril 202222 septembre 2022

DSM 7 et les notifications push

Depuis la version 7 de DSM, il est possible de configurer des Webhooks.

Cependant, il y a un hic !

Les données au format JSON envoyé par le Synology ne sont pas valides.
En effet, ils ont laissé trainer des sauts de lignes au lieu d’utiliser “/n”. Gotify bête est méchant refuse catégoriquement la requête entrante.

J’ai rapporté le bug il y a quelques mois, mais même après validation de leurs parts, toujours pas de correctif à l’heure actuel.
Perdant un peu patience, j’ai donc cherché dans l’intégralité des fichiers du système du texte contenant l’adresse de mon serveur Gotify. Et, j’ai trouvé une solution !

ℹ️ Pour info

Depuis la version 7.1 de DSM le bug semble résolu. Ce tuto n’a plus lieu d’être si vous avez la version 7.1 ou supérieur installé sur votre NAS.

Passons à la pratique !

Prérequis :

Synology DSM 7.0 ou supérieur.
Un accès SSH avec les droits root au Synology.
Et, une instance Gotify… bien sûr.

Je vous épargne la création d’une App sur Gotify et la récupération du token. Si vous êtes là, c’est que vous connaissez.

Première étape, créer une notification webhook sur le Synology

Paramètres -> 1 – Notification -> 2 – Service Push -> 3 – Gérer les webhooks

Dans la fenêtre des webhooks cliquez sur “Ajouter”.

Cliquez sur “Personnalisé”

  • Nom du fournisseur : Le nom que vous souhaitez (exemple : Gotify)
  • Objet : Laisser tel quel
  • URL du webhook : L’adresse de l’API de votre serveur Gotify contenant aussi le token (exemple : https://push.machin.fr/message?token=57XXXXX_89
  • Méthode HTTP : POST

Cliquez sur “Suivant”

L’étape d’après “Modifier l’en-tête de la demande HTTP” ne va pas nous servir. Cliquez encore une fois sur “Suivant”

  • Paramètre : message
  • Valeur : hello world (oui, c’est bizarre, mais Synology l’impose pour la configuration)

Cliquez sur “Suivant”

Dernière étape dans la partie graphique

  • token : Autre
  • message : Contenu du message

Puis cliquez sur “Appliquez”. Si tout est correct, l’ajout devrait être terminé.
Ça devrait ressembler à un truc comme ça :

Maintenant la partie SSH

Connectez-vous à votre Synology via SSH. Comme pour Gotify je ne rentrerais pas dans les détails pour l’activation du Shell et la connexion SSH.

Éditer en suite le fichier /usr/syno/etc/synowebhook.conf avec les droits root.

sudo vi /usr/syno/etc/synowebhook.conf

Vous devriez avoir quelque chose qui ressemble à ceci :

"Gotify":{"needssl":true,"port":443,"prefix":"Un nouvel événement système s'est produit sur votre %HOSTNAME% le %DATE% à %TIME%.","req_header":"","req_method":"post","req_param":"{\"message\":\"@@FULLTEXT@@\"}","sepchar":" ","template":"https://push.machin.fr/message?token=57XXXXX_89","type":"custom","url":"https://push.machin.fr/message?token=57XXXXX_89"}

Pour plus de clarté dans mes explications et comme je suis un mec sympa, j’ai indenté le code. Ce qui donne :

"Gotify": {
	"needssl": true,
	"port": 443,
	"prefix": "Un nouvel événement système s'est produit sur votre %HOSTNAME% le %DATE% à %TIME%.",
	"req_header": "",
	"req_method": "post",
	"req_param": "{\"message\":\"@@FULLTEXT@@\"}",
	"sepchar": " ",
	"template": "https://push.machin.fr/message?token=57XXXXX_89",
	"type": "custom",
	"url": "https://push.machin.fr/message?token=57XXXXX_89"
}

Le but est de remplacer {\"message\":\"@@FULLTEXT@@\"} par {\"message\":\"@@PREFIX@@\\n@@TEXT@@\"}

Ça devrait ressembler à ça :

"Gotify": {
	"needssl": true,
	"port": 443,
	"prefix": "Un nouvel événement système s'est produit sur votre %HOSTNAME% le %DATE% à %TIME%.",
	"req_header": "",
	"req_method": "post",
	"req_param": "{\"message\":\"@@PREFIX@@\\n@@TEXT@@\"}",
	"sepchar": " ",
	"template": "https://push.machin.fr/message?token=57XXXXX_89",
	"type": "custom",
	"url": "https://push.machin.fr/message?token=57XXXXX_89"
}

Attention à bien conserver les bons guillemets aux bons endroits.
Si vous avez changé la mise en forme comme moi, je vous conseille de la restaurer avant de sauvegarder. Je ne sais pas comment DSM réagirai.

Il vous suffit en suite de sauvegarder.

Il est fortement déconseillé d’aller éditer les paramètres webhook depuis DSM après notre petite bidouille. Vous pouvez les éditer depuis le fichier de config sans problème, si vous souhaitez changer le token par exemple.

Pour les non-initiés à Vi

Pour passer en mode édition, appuyez sur la touche “A” de voter clavier.
Pour sauvegarde, appuyez sur “Echap” puis entrez “:wq” (write quit)
Si vous souhaitez quitter vi sans sauvegarder, entrez “:q!” (quit override)

Et, voilà, vous devriez recevoir les notifications de votre NAS directement sur Gotify.


Si vous ne savez pas quoi activer dans les règles de notification, je vous conseille de tout activer dans la colonne “Services Push” puis de les désactiver au fur et à mesure que vous les recevez si elles ne vous sont pas utiles.

4 thoughts on “Notification Synology sur une instance Gotify”

  1. baccks dit :
    4 mai 2022 à 15h46

    Hey !

    Merci pour le tuto ! Malheureusement et étonnamment sans succès de mon côté avec DSM 7.0.1.

    J’ai aussi essayé avec l’utilisation du header X-Gotify-Key à la place du query param token, ainsi qu’un header Content-Type application/json au cas où.

    Cela fonctionne-t-il donc toujours de votre côté ? Et pouvez-vous m’expliquer comment vous avez debugger ?

    En vous remerciant d’avance !

    Répondre
  2. baccks dit :
    4 mai 2022 à 16h08

    Oh, je viens juste de tomber sur votre issue en question : https://github.com/gotify/server/issues/429

    MITMProxy sera donc ma solution pour debugger…

    Répondre
  3. baccks dit :
    4 mai 2022 à 16h20

    J’ai solutionné le problème en utilisant la commande proposée (sudo sed -i -e ‘s/@@FULLTEXT@@/@@PREFIX@@\\\\n@@TEXT@@/’ /usr/syno/etc/synowebhook.conf)

    Ce qui revient exactement à ce que vous proposez dans votre tuto et que j’ai pourtant suivi mais il faut croire que mon copié/collé ne correspondait pas.

    Merci rubber duck !

    Répondre
    1. Stéphane dit :
      5 mai 2022 à 9h23

      Merci pour ton retour.
      C’est vrai que j’aurais pu utiliser directement la commande sed. Mais, ne voulant pas “casser” d’éventuel d’autres entrées dans le fichier, j’ai préféré faire ça à la main.

      Répondre

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Table des matières

  • DSM 7 et les notifications push
  • Passons à la pratique !
    • Maintenant la partie SSH
    • Pour les non-initiés à Vi

Articles récents

  • Recevoir une notification Gotify lors de l’expiration d’un certificat
  • Installer TPM 2.0 pour libvirt/Qemu
  • Android Auto n’est pas pensé pour fonctionner sans fil
  • Notification Synology sur une instance Gotify
  • Pourquoi j’ai viré Mac OS pour Linux

Archives

  • août 2022
  • juin 2022
  • mai 2022
  • avril 2022
  • novembre 2021
  • octobre 2021

Catégories

  • Brève
  • Edito
  • Non classé
  • Tuto
©2023 Zorio's Hack | WordPress Theme by Superbthemes.com