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 : github.com/gotify/server.
Nous utiliserons ‘swag’ (voir article installation de swag) pour accéder à notre serveur depuis l’extérieur. L’installation a été effectuée sur le NAS ‘OMV’, mais la procédure sera la même dans un container LXC ou LXD.
Remarque : J’ai créé au préalable un utilisateur omdocker (voir l’article création d’un utilisateur). J’ai créé aussi un répertoire qui contiendra toutes 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.
mkdir gotify
Le fichier de configuration
Si vous souhaitez sécuriser le lancement de ‘gotify‘, je vous engage à parcourir l’article sécuriser Docker.
Il est important 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 :
- PUID et PGID : celui de votre utilisateur Docker (omdocker chez moi),
- TZ : Votre zone de temps,
- 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 ‘upthomer‘, 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).
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 ‘SERS’, 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’.
sudo 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’.
Nous pouvons maintenant nous connecter à ‘Gotify’ depuis l’extérieur avec l’URL https://gotify.subdomain.domain.tld (Le domaine et le sous domaine est à adapter suivant le vôtre).