Mattermost

Ou comment remplacer Slack par de l’open source.

Aujourd’hui, petit article autour d’une solution Opensource très intéressante.

Pour ceux ou celles qui travaillent dans une entreprise informatique et qui ont un besoin de communiquer de façon générale ou compartimentée, il existe une solution qui se prénomme Slack.

C’est une messagerie de type collaboratif.

https://slack.com/intl/fr-fr/

Slack est très bien, ergonomique, facile d’utilisation et presque gratuit.

Mais Slack à deux défauts majeurs pour moi.

Un, il est gratuit jusqu’à un certain point, vous ne pouvez pas remonter trop loin dans le temps de vos posts et certaines fonctions ne sont disponibles que moyennant un abonnement.

Le deuxième point qui me perturbe pour une messagerie collaborative entreprise, c’est son coté propriétaire, rien ne peut vous garantir une parfaite confidentialité des données qui y transitent.

Les serveurs et le soft étant la propriété de Slack Technologies Limited.

Voila pourquoi j’ai décidé de vous montrer une alternative que j’utilise à titre personnel et que je ne peux que recommander.

Il s’agit de Mattermost.

https://mattermost.com/

Mattermost n’est ni plus ni moins qu’un Slack Opensource.

Il peut être utilisé sur, Windows, MacOs, Linux, Android et IOS.

Soit grâce à un navigateur web, une application en dur ou avec votre smartphone via une app dédiée.

Vous pouvez, si l’envie est la, monter votre propre messagerie d’entreprise, dans vos serveurs ou Datacenter.

Je vous laisse jeter un œil sur leur page Web.

Dans cet article, nous allons donc mettre en place sur une sandbox OVH, un serveur Mattermost.

Cette présentation se découpera en deux parties.

La première partie concernera la mise en place de l’application ainsi que son utilisation.

la deuxième s’axera sur la partie sécurité des transactions.

 

1er Partie

Mise en place de la BDD

Pour commencer, il faudra bien entendu disposer d’une sandbox ou d’une vm avec un accès à l’extérieur.

Personnellement, je vais utiliser un vps OVH.

Je pouvais le faire chez AWS mais la pour le coup, c est OVH qui s’y colle.

Avant toute chose, il serait bon de disposer d’un nom de domaine ( pas obligatoire pour ce Tuto) pour faciliter l’utilisation de Mattermost.

La première chose à faire est de mettre à jour votre vm/vps.

Ensuite nous allons installer la base de donnée.

Pour le tuto, Mysql sera ma BDD (c est possible avec Postgres aussi).

1 – Installation de Mysql

sudo apt install mysql-server

2 – On sécurise à minima celle-ci avec :

mysql_secure_installation

3 – On se log à la BDD

sudo mysql

4 – On va créer l’utilisateur qui servira à Mattermost ainsi que le mot de passe

J’utilise le nom « mattermost » ainsi que le password « 123456 » pour l’exemple.

create user 'mattermost'@'%' identified by '123456';

5 – On se cree la BDD qui servira à Mattermost

create database mattermost;

6 – On donne les droits de l’utilisateur précédemment créé à la BDD.

grant all privileges on mattermost.* to 'mattermost'@'%';

6.1 – Ou pour un truc plus safety (on précise les actions que peut réaliser l’utilisateur « mattermost » au sein de la BDD).

GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE ON mattermost.* TO 'mattermost'@'%';

7 – On quitte la BDD

exit;

2e partie

Installation de Mattermost

1 – Téléchargement de la dernière version de Mattermost en date du 03/2020.

wget https://releases.mattermost.com/5.20.1/mattermost-5.20.1-linux-amd64.tar.gz

2 – On décompresse l’archive

tar xvf mattermost-5.20.1-linux-amd64.tar.gz

3 – On déplace le dossier « mattermost » vers /opt

sudo mv mattermost /opt/

4 – On va créer le dossier qui va recevoir les fichiers comme les images ou tous les autres types de fichiers.

Bien s’assurer d’avoir suffisamment d’espace disque avant de le créer.

Ou d’avoir utiliser lvm lors de la création des disques.

C’est toujours plus facile de le faire maintenant qu’après (sauf avec lvm)

sudo mkdir /opt/mattermost/data

5 – Ici, on va créer le group et le user « mattermost » pour permettre au service de fonctionner et de se lancer.

sudo useradd --system --user-group mattermost

6 – On donne les droits à l’utilisateur et group « mattermost » au dossier /opt/mattermost

Le « -R » étant pour le récursif et le « : » pour signifier que c’est le groupe appartenant à l’utilisateur « mattermost »

sudo chown -R mattermost: /opt/mattermost

7 – On donne au groupe « mattermost » le droit d’écriture de manière récursive

sudo chmod -R g+w /opt/mattermost

8 – Nous allons configurer le driver de Mysql en modifiant le fichier config.json de Mattermost (toujours penser à faire une copie avant modifications).

sudo nano /opt/mattermost/config/config.json

On cherche

« DriverName » et « DataSource » (l’un à la suite de l’autre).

Voila ce que donne ma configuration avant les modifications

"DriverName": "mysql",
"DataSource": "mmuser:mostest@tcp(localhost:3306)/mattermost_test?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Et après

"DriverName": "mysql",
"DataSource": "mattermost:123456789@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Cette partie la «  »mattermost:123456789 » correspond à l’utilisateur Mysql et l’autre après « : » à son mot de passe.

Attention aussi à bien supprimer le »_test » après « mattermost » sinon Mattermsot ne trouvera pas la bonne BDD lors du test.

Il faudra aussi penser à modifier dans le même fichier « SiteURL » et y rajouter votre nom de domaine.

9 – Une fois ceci fait, on teste le bon fonctionnement du server Mattermost.

Se rendre dans le dossier mattermost

cd /opt/mattermost

Et taper la commande suivante

sudo -u mattermost ./bin/mattermost

Ici, il faudra bien vérifier que le serveur écoute bien sur le port 8065.

Il sera aussi possible de le faire via la commande

sudo netstat -petulan | grep '8065'

10 – On passe maintenant à la partie systemd et le service Mattermost

sudo touch /lib/systemd/system/mattermost.service

On modifie le fichier en y rajoutant ceci

[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service

[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152

[Install]
WantedBy=mysql.service

On relance le service de gestion des daemon

sudo systemctl daemon-reload

On vérifie bien que le service existe (il est off)

sudo systemctl status mattermost.service

On lance le service

sudo systemctl start mattermost.service

On check l’état de celui-ci

Un petit curl pour voir si on recupere bien les infos HTML du serveur

http://ip_du_serveur:8065

Si c est bon, on peut enfin activer le lancement du service au demarrage du serveur.

sudo systemctl enable mattermost.service

A ce stade, vous devriez pouvoir vous connecter à Mattermost via le navigateur Web (ou avec l’ip du serveur ou via son nom de domaine).

Vous devriez tomber sur cette page.

Le 1er utilisateur crée sera l’administrateur, veuillez donc à bien choisir votre mot de passe.

Et l’interface, pas trop mal je trouve.

Petit rappel pas inutile, c’est une partie sensible qu’une messagerie d’entreprise, il faudra mettre en place des règles rigoureuses au niveau des accès et du firewall.

Je ne parle même pas de la BDD à protéger encore plus.

Voila, c est la fin de cette première partie.

Rendez-vous bientôt pour la suite de cet article.

Tips pour Mattermost

Je mets en fin d’article les aides pour Mattermost en fonction de mon utilisation.

Pour ce premier tips, comment supprimer un groupe.

Toujours faire un backup de votre BDD avant chaque intervention sur celle-ci.

Se rendre au niveau du dossier /opt/mattermost et taper la commande suivante :

sudo -u mattermost bin/mattermost team delete test2 --confirm

Alors « test2 » et le nom du groupe que vous souhaitez supprimer (préciser le votre).

Et l’option « — comfirm » évite de devoir valider la confirmation de suppression.

Il faudra penser à relancer le service Mattermost en fin d’opération.

Le 2e tips va servir à connaître la version de Mattermost

La commande à taper est la suivante :

sudo -u mattermost bin/mattermost version

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.