Installer Gotify avec Docker

Introduction

Gotify est une interface web pour envoyer et recevoir des messages instantanés par WebSocket. Elle est compatible avec beaucoup de containeurs et peux aussi être utiliser par des scripts systèmes pour envoyer des notifications (surveillances fichiers, redémarrage machine.. etc). Il est possible aussi de recevoir les notifications par téléphone en installant l’application pour Smatphone.

Pour cette installation j’utilise l’image officielle qui est présente ici : https://github.com/gotify/server/.

Remarque : J’ai créé au préalable un utilisateur omdocker (voir l’article création d ‘un utilisateur Docker pour le détail). J’ai créé aussi un répertoire qui contiendra tous mes installations docker. dans ce blog, j’utiliserais pour exemple le chemin /volume/docker.

Nous allons créer aussi le répertoire ‘gotify’ en ligne de commande sur le NAS (connexion en SSH) dans notre répertoire docker : /volume/docker. Cette étape est facultative, le containeur créera le répertoire automatiquement lors du déploiement si celui ci n’existe pas.

$ cd /volume/docker
$ mkdir gotify

Le fichier de configuration

Si vous souhaitez sécuriser le lancement de ‘gotify‘, je vous engage à parcourir l’article securiser docker.

Il est importent de bien respecter l’indentation des fichiers de configurations : pas de tabulation. Attention aussi à la version du fichier, il y a des légères évolutions de syntaxe d’une version à l’autre.

Le fichier yml en détails. Il faut remplacer pour votre configuration :

  • TZ : Votre zone de temps,
  • UID et PGID : celui de votre utilisateur Docker (omdocker pour ce blog),
  • networks : Il faut relier gotify à votre réseau ‘swag‘ (ou équivalent) si vous souhaiter pourvoir accéder à l’application depuis l’extérieur. Voir en bas de l’article.

version: "2"
services:
  gotify:
    image: gotify/server
    container_name: gotify
    environment:
      - PUID=1003
      - PGID=100
      - TZ=Europe/Paris
      - GOTIFY_DATABASE_DIALECT=sqlite3
      - GOTIFY_DATABASE_CONNECTION=data/gotify.db
      - GOTIFY_DEFAULTUSER_NAME=admin
      - GOTIFY_DEFAULTUSER_PASS=admin
      - GOTIFY_PASSSTRENGTH=10
      - GOTIFY_UPLOADEDIMAGESDIR=data/images
      - GOTIFY_PLUGINSDIR=data/plugins
    volumes:
      - /volume/docker/gotify:/app/data
networks:
    default:
        external:
            name: swag_default      

Vous copiez le contenu de ce fichier dans votre interface de gestion Portainer en allant dans ‘Stacks‘ et ‘Add stack‘.

La pile gotify
La pile ‘gotify

Donnez un nom à votre pile, par exemple ‘gotify‘, puis déployer cotre containeur en cliquant en bas sur « Deploy the stack‘.

Après une phase de téléchargement de l’image, puis d’installation de l’application, vous devriez arriver sur cet écran si tout s’est bien passé :

Le containeur gotify
Le container ‘gotify‘ est installé et est en fonctionnement.

Nous pouvons maintenant nous connectez à ‘gotify‘ avec l’URL : https://gotify.votrenomdedomaine (voir la configuration Swag plus bas)

Lors de votre première connexion, il faudra vous identifier avec la configuration par défaut : admin / admin.

Configuration de Gotify

Création d’un nouvel utilisateur

La 1ere chose que vous devriez faire est de créer un nouvel utilisateur avec les droits Administrateur. Pour cela cliquez sur le menu ‘USERS‘, puis ‘CREATE USER‘ et cocher ‘has administrator rights‘ :

création utilisateur gotify
Création d’un utilisateur ‘Admin’

Une fois cette opération effectuée, déconnecter vous et reconnecter vous avec cet utilisateur, puis retourner dans le menu ‘USERS‘ et supprimer l’utilisateur par défaut ‘admin’.

Création d’un ‘token’ pour une application

Je vous conseil de créer des ‘token’ par applications ou par types de messages, par entités…. etc. Quand vous en recevrez beaucoup, cela sera plus facile pour les filtrer. Pour cela cliquez sur le menu ‘APPS‘, puis ‘CREATE APPLICATION‘ et entré un nom et une description. Il vas ensuite générer un token pour cette application. Vous en aurez besoin pour envoyer des messages depuis votre application vers ce canal spécifique :

Creation d'un token
création d’un ‘token‘ pour votre application

Si vous voulez changer l’icone par défaut; il suffit de cliquer sur le petit nuage à coté l’icone de l’application et de sélectionner le fichier à uploader pour cette application.

Envoi de message à Gotify

Pour envoyez des messages à Gotify vous aurez besoin de deux chose :

  • Adresse du serveur Gotify : l’URL de votre serveur Gotify préfixé par le sous domaine si vous venez de l’extérieur. Exemple https://gotify.subdomain.duckdns.org. Sinon si vous l’utilisez que sur votre LAN, cela sera http://monIP:80.
  • Token du canal visé : Le token généré par Gotify pour ce canal. Cliquez sur l’oeil au niveau du canal pour afficher le ‘token’.

Les messages reçus par ‘Gotify‘ peuvent être filtrés à gauche par canal :

Réception de messages
Réception de messages dans le canal applicatif ‘iptables

Configuration de swag

La configuration d’un containeur avec ‘swag‘ est la plupart du temps très simple. ‘swag‘ propose par défaut des fichiers de configurations prédéfinis pour de nombreux services.

Ces fichiers se trouvent dans le répertoire d’installation de swag : /volume/docker/swag/nginx/proxy-confs/.

Fichier nginx pour gotify
Le fichier de configuration nginx pour ‘gotify

Nous allons simplement recopier ce fichier et le renommer ‘gotify.subdomain.conf’.

$ cd /volume/docker/swag/nginx/proxy-confs/
$ cp gotify.subdomain.conf.sample gotify.subdomain.conf

Nous relançons le containeur swag soit via Portainer, soit en ligne de commande ‘sudo docker restart swag‘ pour qu’il prenne en charge la redirection du containeur ‘gotify‘.

Laisser un commentaire

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