Ceci est une ancienne révision du document !
Déployer un serveur Mattermost
Introduction
Mattermost est un système de messagerie instantanée open source conçu pour un usage privé. Ce tutoriel explique le mettre en place un afin d'échanger des messages au sein d'un même réseau local.
Contrairement à Microsoft Teams ou Slack, Mattermost ne supporte que les messages texte, et non les appels audio ou vidéo. Il a néanmoins l'avantage de pouvoir être personnalisé grâce à l'intégration d'applications tierces, et de permettre l'authentification via LDAP dans la version Entreprise.
On utilisera ici la version Team de Mattermost, qui est gratuite et propose moins de fonctionnalités que la version Entreprise. Elle sera installée sous Debian 12 et les clients pour les tests seront sous Windows 10.
Topologie du LAB
Pré-requis
Nous aurons besoin de :
- Une machine (virtuelle ou physique) sous Linux (de préférence Debian 12 qui sera utilisé dans ce tutoriel)
- Deux machines (virtuelles ou physiques) sous n'importe quel OS compatible avec le client lourd Mattermost et connectées au même réseau local que la première machine.
Instructions
Configuration de la base de données
Tout d'abord, installer un SGBD tel que mariadb :
apt install mariadb-server
Sécuriser le serveur en utilisant le script mysql_secure_installation qui permet de supprimer les utilisateurs anonymes et d'interdire la connexion à distance avec l'utilisateur root :
mysql_secure_installation
Suivre les instructions jusqu'au bout, puis se connecter à la CLI du SGBD :
mysql -u root -p
Executer les requêtes SQL suivantes afin de créer la base de données et un utilisateur dédié :
CREATE SCHEMA mattermost;
CREATE USER 'mattermost'@'%';
SET PASSWORD FOR 'mattermost'@'%' = PASSWORD('MyPassword!');
GRANT ALL ON mattermost.* TO 'mattermost'@'%' IDENTIFIED BY 'MyPassword!' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Attention à bien remplacer
MyPassword! dans les commandes ci-dessus par le mot de passe qui sera utilisé pour la connexion à la BDD.
Taper quit pour sortir de la CLI mariadb.
La configuration de la base de données est réalisée. Passons à l'installation du serveur Mattermost.
Installation et configuration du serveur
Installation
Télécharger Mattermost sur le serveur au format tarball :
wget https://releases.mattermost.com/9.1.1/mattermost-9.1.1-linux-amd64.tar.gz
L'URL de l'archive à jour peut être trouvée sur la page suivante : https://docs.mattermost.com/install/install-tar.html
Décompresser l'archive dans le répertoire /opt/ qui sera le chemin d'installation de Mattermost :
tar xvzf mattermost-9.1.1-linux-amd64.tar.gz -C /opt/
Ajouter un répertoire data dans le répertoire de Mattermost afin de stocker les fichiers que les utilisateurs s'échangeront :
mkdir /opt/mattermost/data
Et créer un utilisateur système qui aura tous les droits sur le répertoire d'installation :
useradd --system --user-group mattermost chown -R mattermost:mattermost /opt/mattermost chmod -R g+w /opt/mattermost
Configuration
Maintenant que Mattermost est installé, éditer sa configuration :
nano /opt/mattermost/config/config.json
C'est là que sont stockés tous les paramètres du serveur.
D'abord, modifier l'URL du serveur en mettant l'IP ou un nom de domaine associé à la machine :
"SiteURL": "https://192.168.1.201",
Changer les paramètres SQL pour correspondre à la BDD que l'on a préparée avant :
"SqlSettings": {
"DriverName": "mysql",
"DataSource": "mattermost:MyPassword!@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",
Puis adapter les autres paramètres comme nécessaire.
Explication de certains paramètres :
- ServiceSettings
- SiteURL : URL de votre application. Vous pouvez utiliser l'IP du serveur si vous ne disposez pas de domaine.
- SqlSettings
- DriverName : nous utilisons le driver mysql
- DataSource : information de connexion à la base de données. Adaptez le nom de l'utilisateur et le mot de passe
- FileSettings
- Directory : adaptez si vous utilisez un emplacement spécifique pour le stockage des fichiers, sinon laisser la valeur par défaut.
- PluginSettings
- Directory : chemin des plugins, la valeur par défaut provoque chez moi des erreurs au démarrage du serveur, il semble préférable d'indiquer le chemin absolu.
- ClientDirectory : chemin des plugins client, la valeur par défaut provoque chez moi des erreurs au démarrage du serveur, il semble préférable d'indiquer le chemin absolu.
