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

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 :
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 :
- https://mattermost.com/pricing-feature-comparison/
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 :

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: "[email protected]"
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 :
- A+ sur https://www.ssllabs.com/ssltest/ :

- A sur https://securityheaders.com/ :

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 ! 😇