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‘.

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

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

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 :

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 :

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/.

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‘.