Afin de réaliser cette installation, nous allons utiliser le fichier docker-compose présent dans le dépôt de Mattermost et le modifier afin de correspondre à notre utilisation.

Mais si vous êtes arrivé ici par hasard, savez-vous ce qu'est Mattermost ?

Mattermost : c'est quoi ?

Mattermost est un service de discussion instantanée, open-source et disponible en auto-hébergement. Il s'agit donc d'un service de tchat, avec messages instantanés, qui se veut être le concurrent open-source de Slack.

Il reprend d'ailleurs les grandes fonctionnalités de ce dernier ( discussions par équipe ou par canal,  recherche dans les messages ou archives, mais également la possibilité de partager des liens ou documents ).

J'ai déjà pu réaliser un article par le passé sur un outil similaire : Rocket.Chat

Rocket.Chat en 5 minutes avec Docker ou K3S !
Au cours de sessions de télé-travail, il est parfois si simple d’utiliser des outils gratuits. Mais est-ce forcément la bonne solution ? Faut-il faire confiance aveuglément à tous ces fournisseurs de service ?

Les clients Mattermost sont également disponibles pour une grande majorité de distribution : Windows, MacOS, Linux, iOS et Android.

Pré-requis

  • Docker installé sur votre hôte,
  • L'utilitaire docker-compose pour déployer les services,
  • Git afin de récupérer le dépôt.

Vous pouvez également utiliser votre propre installation de Traefik 2 pour suivre ce tutoriel, ou déployer une instance en quelques secondes à l'aide de mon dépôt awesome-traefik par exemple :

lfache/awesome-traefik
Welcome to Awesome Traefik, a collection of contributions around Traefik. - lfache/awesome-traefik

Installation de Mattermost

Voici les quelques étapes nécessaires pour lancer notre première instance :

1/ Clone du dépôt mattermost-docker :

git clone https://github.com/mattermost/mattermost-docker.git
cd mattermost-docker

2/ Utiliser l'édition "Team" à la place de l'édition entreprise :

Afin d'utiliser la version team de Mattermost, dé-commentez les lignes suivantes dans le fichier docker-compose.yml:

Si vous souhaitez plus d'informations sur les différentes versions de Mattermost, voici un lien vers tableau récapitulatif :

3/ Retirer le proxy-web par défaut :

Comme nous allons utiliser Traefik comme reverse-proxy, le service web présent initialement dans le fichier docker-compose ne nous est pas utile. Vous pouvez commenter - ou même - supprimer les lignes suivantes :

4/ Ajouter les labels de Traefik 2 :

Je vais ajouter les labels nécessaires à Traefik, directement sur l'application Mattermost :

    labels:
      traefik.enable: true
      traefik.docker.network: traefik_web
      traefik.http.routers.mattermost.entrypoints: websecure
      traefik.http.routers.mattermost.rule: 'Host(`${MATTERMOST_URL}`)'

Pensez à ajouter le réseau de Traefik à ce service, et default pour l'accès à la base de données :

    networks:
      - default
      - traefik_web

5/ Les mots de passe :

🚩Avant de lancer les containers, pensez à modifier les mots de passe par défaut présent dans le fichier ! 🚩

Exemple :

POSTGRES_PASSWORD=mmuser_password

6/ Lancer vos containers :

Créer les dossiers nécessaires aux volumes avant votre premier démarrage :

mkdir -pv ./volumes/app/mattermost/{data,logs,config,plugins,client-plugins}
chown -R 1000:1000 ./volumes/app/mattermost/

Et tout simplement avec la commande docker-compose :

sudo MATTERMOST_URL=mattermost.mydomain.com docker-compose up -d

MATTERMOST_URL=mattermost.mydomain.com doit être remplacé avec l'URL d'accès à votre service.

7/ Enjoy :

Il ne reste plus qu'à profiter de votre nouvelle installation ( Attention, la construction des images et le premier démarrage peuvent être assez long ) :

https://<MATTERMOST_URL>/

Voici la première page que vous devriez obtenir :

Mattermost first login

Bonus

Si vous ne possédez pas d'instance de Traefik en cours d'exécution, vous pouvez utiliser les fichiers docker-compose que j'ai mis à disposition sur mon dépôt Github awesome-traefik :

1/ Clonez le dépôt :

git clone https://github.com/lfache/awesome-traefik.git
cd awesome-traefik

2/ Modifiez l'adresse e-mail ( optionnel ) :

Cette étape n'est pas obligatoire mais je vous conseille tout de même de modifier l'adresse e-mail présente dans le fichier traefik.yaml avec votre propre adresse électronique :

cd traefik
vim traefik.yaml

Et modifiez la ligne 31 :

      email: "foo.bar@mydomain.com"

3 / Démarrez Traefik :

Une nouvelle fois :

sudo docker-compose up -d

Cette instance de Traefik possède quelques configurations afin d'obtenir les notes suivantes :

rang sslabs
rang securityheaders

Enfin voici le fichier docker-compose.yml que j'obtiens finalement :


Nous venons de voir ensemble comment installer Mattermost en quelques minutes dans notre environnement Docker avec docker-compose et en utilisant notre reverse-proxy favori : Traefik.

En tout cas  n'hésitez pas à m'apporter des remarques ou des commentaires sur Twitter  ou via les commentaires 👇 ! C'est toujours un plaisir d'avoir des retours ! 😇