[Mémo] Recevoir des notifications de Duplicati sur Gotify

EVO

Administreur
Membre du personnel
25 Novembre 2019
9 989
2 093
293
/var/run/docker.sock
Bonjour,
Afin d’être notifié du déroulement de mes différentes sauvegarde du Duplicati, ( voir mon tuto pour l'installation en docker ), je cherché une solution pour me notifier vers Gotify ( voir mon tuto pour l'installation ) de la réussite, ou non des sauvegardes.


Pour commencer, dans le dossier /config de mon conteneur Duplicati, je créer un fichier gotify.sh avec le script suivant :
Bash:
#!/bin/bash

## Variables Gotify
GOTIFY_URL=https://gotify.ndd.fr
GOTIFY_TOKEN=XXXXXXXXX
GOTIFY_PRIORITY_SUCCESS=2
GOTIFY_PRIORITY_WARNING=5
GOTIFY_PRIORITY_ERROR=5

## Variables Duplicati
EVENTNAME=${DUPLICATI__EVENTNAME}
OPERATIONNAME=${DUPLICATI__OPERATIONNAME}
BACKUPNAME=${DUPLICATI__backup_name}
PARSEDRESULT=${DUPLICATI__PARSED_RESULT}

if [ "${EVENTNAME}" == "AFTER" ] && [ "${OPERATIONNAME}" == "Backup" ]
then
        TITLE="Backup Duplicati"
        MESSAGE="Sauvegarde de **${BACKUPNAME}** terminée."

        if [ "${PARSEDRESULT}" == "Success" ]
        then
                MESSAGE="${MESSAGE}  \n**Résultat** : ${PARSEDRESULT} ![](https://i.imgur.com/K7MTNZ8.png)"
                GOTIFY_PRIORITY=${GOTIFY_PRIORITY_SUCCESS}
        elif [ "${PARSEDRESULT}" == "Warning" ]
        then
                MESSAGE="${MESSAGE}  \n**Résultat** : ${PARSEDRESULT} ![](https://i.imgur.com/yawT2sp.png)"
                GOTIFY_PRIORITY=${GOTIFY_PRIORITY_WARNING}
        else
                MESSAGE="${MESSAGE}  \n**Résultat** : ${PARSEDRESULT} ![](https://i.imgur.com/kFn1fUW.png)"
                GOTIFY_PRIORITY=${GOTIFY_PRIORITY_ERROR}
        fi

        URL=${GOTIFY_URL}/message?token=${GOTIFY_TOKEN}
        curl -s -S --data '{"message": "'"${MESSAGE}"'", "title": "'"${TITLE}"'", "priority":'"${GOTIFY_PRIORITY}"', "extras": {"client::display": {"contentType": "text/markdown"}}}' -X POST -H Content-Type:application/json "$URL"
fi
exit 0

Dans ce script, il vous faut modifier 2 variables ( voir 3 de plus pour personnaliser la priorité des notifications ):
GOTIFY_URL avec l'adresse de votre instance Gotify
GOTIFY_TOKEN avec le token de votre application
et au besoin, si vous souhaitez changer les priorités des alertes* :
GOTIFY_PRIORITY_SUCCESS=2
GOTIFY_PRIORITY_WARNING=5
GOTIFY_PRIORITY_ERROR=5

*Priorité par défaut, dans l'application Gotify :
>7 : Par dessus la barre d'état, Écran verrouillé et Son
4-7 : Écran verrouillé et Son
<1-3 : Notifications discrètes

Dans Duplicati, a l'étape 5 de la création d'une taches de sauvegarde, nous allons utiliser l'option "Ajouter une option avancée" :
u5ruynQ.png


On sélectionne, run-script-after :
m4dmQ4D.png


et on indique le chemin vers notre script, /config/gotify.sh :
qwwYVRX.png


Puis on enregistre :) Maintenant vous allez recevoir a la fin de votre backup, une notification sur Gotify avec le résultat de ce backup ( Fatal/Warning/Error ou Success )

En images :

qCNkQhI.png


3KRyF9M.png


Source : GitHub Duplicati
Un merci également à Mental et Benj


2024-07-19 - Mise à jour des liens vers les icones ( Succes / Error/ Warning )
2021-11-03 - Update du script et du mémo afin de pouvoir régler les niveaux des différentes alertes.
 

Pièces jointes

  • yawT2sp.png
    yawT2sp.png
    1.4 KB · Affichages: 0
  • kFn1fUW.png
    kFn1fUW.png
    1.2 KB · Affichages: 0
  • K7MTNZ8.png
    K7MTNZ8.png
    1.5 KB · Affichages: 0
Dernière édition:
2021-11-03 - Update du script et du mémo afin de pouvoir régler le niveau des différentes alertes.

Poke @webmail
C'est bon, j'ai trouvé, c'était une histoire de droits ;)

Bonjour EVOTk, cette procédure fonctionne-t-elle encore ?
je l'ai suivi à la lettre mais je ne reçois pas de notification quand je déclenche manuellement le backup.
Une idée d'où je peux trouver les log pour l'analyse ?
Merci
 
Dernière édition:
  • J'aime
Réactions: EVO
Bonjour,
Afin d’être notifié du déroulement de mes différentes sauvegarde du Duplicati, ( voir mon tuto pour l'installation en docker ), je cherché une solution pour me notifier vers Gotify ( voir mon tuto pour l'installation ) de la réussite, ou non des sauvegardes.


Pour commencer, dans le dossier /config de mon conteneur Duplicati, je créer un fichier gotify.sh avec le script suivant :
Bash:
#!/bin/bash

## Variables Gotify
GOTIFY_URL=https://gotify.ndd.fr
GOTIFY_TOKEN=XXXXXXXXX
GOTIFY_PRIORITY_SUCCESS=2
GOTIFY_PRIORITY_WARNING=5
GOTIFY_PRIORITY_ERROR=5

## Variables Duplicati
EVENTNAME=${DUPLICATI__EVENTNAME}
OPERATIONNAME=${DUPLICATI__OPERATIONNAME}
BACKUPNAME=${DUPLICATI__backup_name}
PARSEDRESULT=${DUPLICATI__PARSED_RESULT}

if [ "${EVENTNAME}" == "AFTER" ] && [ "${OPERATIONNAME}" == "Backup" ]
then
        TITLE="Backup Duplicati"
        MESSAGE="Sauvegarde de **${BACKUPNAME}** terminée."

        if [ "${PARSEDRESULT}" == "Success" ]
        then
                MESSAGE="${MESSAGE}  \n**Résultat** : ${PARSEDRESULT} ![](https://i.imgur.com/RoZNUe8.png)"
                GOTIFY_PRIORITY=${GOTIFY_PRIORITY_SUCCESS}
        elif [ "${PARSEDRESULT}" == "Warning" ]
        then
                MESSAGE="${MESSAGE}  \n**Résultat** : ${PARSEDRESULT} ![](https://i.imgur.com/qWuAeG2.png)"
                GOTIFY_PRIORITY=${GOTIFY_PRIORITY_WARNING}
        else
                MESSAGE="${MESSAGE}  \n**Résultat** : ${PARSEDRESULT} ![](https://i.imgur.com/Wyf2Xoe.png)"
                GOTIFY_PRIORITY=${GOTIFY_PRIORITY_ERROR}
        fi

        URL=${GOTIFY_URL}/message?token=${GOTIFY_TOKEN}
        curl -s -S --data '{"message": "'"${MESSAGE}"'", "title": "'"${TITLE}"'", "priority":'"${GOTIFY_PRIORITY}"', "extras": {"client::display": {"contentType": "text/markdown"}}}' -X POST -H Content-Type:application/json "$URL"
fi
exit 0

Dans ce script, il vous faut modifier 2 variables ( voir 3 de plus pour personnaliser la priorité des notifications ):
GOTIFY_URL avec l'adresse de votre instance Gotify
GOTIFY_TOKEN avec le token de votre application
et au besoin, si vous souhaitez changer les priorités des alertes* :
GOTIFY_PRIORITY_SUCCESS=2
GOTIFY_PRIORITY_WARNING=5
GOTIFY_PRIORITY_ERROR=5

*Priorité par défaut, dans l'application Gotify :
>7 : Par dessus la barre d'état, Écran verrouillé et Son
4-7 : Écran verrouillé et Son
<1-3 : Notifications discrètes

Dans Duplicati, a l'étape 5 de la création d'une taches de sauvegarde, nous allons utiliser l'option "Ajouter une option avancée" :


On sélectionne, run-script-after :


et on indique le chemin vers notre script, /config/gotify.sh :


Puis on enregistre :) Maintenant vous allez recevoir a la fin de votre backup, une notification sur Gotify avec le résultat de ce backup ( Fatal/Warning/Error ou Success )

Source : GitHub Duplicati
Un merci également à Mental et Benj
Bonjour EVOtk,
J'ai aussi suivi ton tuto et j'ai un problème avec le code j'ai juste modifier les 2 premières variables.

Si vous avez une idée je suis preneur merci.

1699365521963.png
 
Dernière édition:
Bonjour @EVO, j'ai un message d'erreur lors du déclenchement d'une sauvegarde:

Code:
2025-01-23 18:19:03 +01 - [Warning-Duplicati.Library.Modules.Builtin.RunScript-ScriptExecuteError]: Error while executing script "/appdata/duplicati/gotify.sh": An error occurred trying to start process '/appdata/duplicati/gotify.sh' with working directory '/app/duplicati'. No such file or directory Win32Exception: An error occurred trying to start process '/appdata/duplicati/gotify.sh' with working directory '/app/duplicati'. No such file or directory

J'ai déposé le fichier gotify.sh dans le répertoire /appdata/duplicati car je n'ai pas créé de dossier config lors que l'installation sous docker compose avec Portainer. Les droits sont les mêmes que les fichiers dans ce même répertoire et il est exécutable.

Dans Duplicati j'ai tenté avec plusieurs chemins differents mais même soucis.

Une solution ?

Merci d'avance !!
 
Salut,
Pourrai tu partager ton fichier docker-compose ? Je ne comprend pas ce que tu veut dire par "car je n'ai pas créé de dossier config" ?
 
Code:
services:
  duplicati:
    image: lscr.io/linuxserver/duplicati:latest
    container_name: duplicati
    environment:
      - PUID=996
      - PGID=100
      - TZ=Europe/Paris
      - SETTINGS_ENCRYPTION_KEY=
      #- CLI_ARGS= #optional
      - DUPLICATI__WEBSERVICE_PASSWORD= #optional
    volumes:
      - /srv/dev-disk-by-uuid-d790d31a-a975-4415-9eca-bc8bff576cb1/appdata/duplicati:/config
      - /srv/dev-disk-by-uuid-5e249c9c-1118-4d9f-b7be-1dd3aaf9393c:/backups
      - /srv/dev-disk-by-uuid-d790d31a-a975-4415-9eca-bc8bff576cb1:/source
    ports:
      - 8200:8200
    labels:
      - diun.enable=true
    restart: unless-stopped
 
J'ai un ami qui a eu le même problème, il avait déposé le fichier via un montage Windows. Au final en le créant en ssh directement c'était passé.
 
Dans ton cas, il doit etre dans /srv/dev-disk-by-uuid-d790d31a-a975-4415-9eca-bc8bff576cb1/appdata/duplicati

Et depuis Duplicati, tu l'exécute avec /config/gotify.sh
 
Mon problème est résolu, en fait il fallait simplement mettre /config/gotify.sh même si ce n'est pas le vrai chemin ! Merci en tout cas pour ta réactivité et ton script !!