Dans ce nouveau tutoriel, nous allons mettre en place une plate-forme de discussion collaborative appelée Mattermost. Distribuée sous licence MIT, c'est l'outil parfait pour accroître votre productivité ou simplement discuter avec vos amis et votre famille. Parmi les fonctionnalités principales, nous citerons :

Discussion en temps réel,
Création de groupes, d'équipes,
Création de canaux publics, privés,
Echange de fichiers,
etc.

Si vous souhaitez en découvrir davantage, consultez le site officiel ainsi que l'exhaustive documenation.

Procédons de ce pas à l'installation de Mattermost. Nous partons du principe que vous avez un environnement LEMP fonctionnel.

IMPORTANT :

Pour ce tutoriel, je m'appuie sur la dernière version de mysql /i, n'ayant pas réussi à faire fonctionner correctement Mattermost avec la version courante (5.5.49) de la distribution Debian 8 "Jessie".

"Pourquoi ?"
Une sombre histoire de support de catalogue saupoudré de moteur qui ne supporte pas la fonctionnalité "index fulltext". Notons que ce problème semble disparaître à partir de la version 5.6 de mysql.

Nous utiliserons donc :

mysql --version
mysql Ver 14.14 Distrib 5.7.13, for Linux (x86_64) using EditLine wrapper



Fermons cette parenthèse et poursuivons :

1°) Mise à jour du système :

apt-get update && apt-get dist-upgrade -y

2°) Création de la base de données :

mysql -u root -p

 mysql > CREATE DATABASE mattermost;
 mysql > CREATE USER 'mattermost'@'localhost' IDENTIFIED BY 'votre_mot_de_passe';
 mysql > GRANT USAGE ON *.* TO 'mattermost'@'localhost';
 mysql > GRANT ALL PRIVILEGES ON mattermost.* TO 'mattermost'@'localhost';
 mysql > FLUSH PRIVILEGES;
 mysql > exit

3°) Installation de Mattermost :

cd /tmp
wget https://releases.mattermost.com/3.0.3/mattermost-team-3.0.3-linux-amd64.tar.gz
tar -xvzf mattermost-team-3.0.3-linux-amd64.tar.gz
mv mattermost* /var/www
mkdir -p /var/www/mattermost/data

4°) Ajout de l'utilisateur et affectation des droits :

useradd -r mattermost -U -M
chown -R mattermost:mattermost /var/www/mattermost

5°) Configuration de Mattermost :

nano /var/www/mattermost/config/config.json

et on édite la section concernant mysql :

"SqlSettings": {
"DriverName": "mysql",
"DataSource": "mattermost:motdepasse@tcp(localhost:3306)/mattermost?charset=utf8",

On valide et on ferme.

Pour tester la configuration, vous pouvez lancer provisoirement Mattermost :

cd /var/www/mattermost/bin
./platform

Vous devriez obtenir ceci :

[2016/06/03 10:13:37 CEST] [INFO] Server is listening on :8065

On arrête le processus en cours :

ctrl+c

6°) Ajout de systemd :

Pour faciliter la gestion du service, nous ajoutons Mattermost à systemd :

nano /etc/systemd/system/mattermost.service

qu'on édite ainsi :

[Unit]
Description=Mattermost is an open source, self-hosted Slack-alternative
After=syslog.target network.target

[Service]
Type=simple
User=mattermost
Group=mattermost
ExecStart=/var/www/mattermost/bin/platform
PrivateTmp=yes
WorkingDirectory=/var/www/mattermost
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target

et on termine par :

systemctl daemon-reload
systemctl enable mattermost.service
systemctl start mattermost.service
7°) Configuration du vhost Nginx :

RAPPEL: Cette configuration est à adapter selon vos besoins et spécificités.

On ajoute un vhost à nginx :

nano /etc/nginx/sites-enabled/mattermost.conf

qu'on renseigne comme suit :

[code]upstream mattermost {
server 127.0.0.1:8065;
}

server {
listen 80;
server_name mattermost.mondomain.tld;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
server_name mattermost.mondomain.tld;

ssl on;
ssl_certificate /home/cert/0001_chain.pem;
ssl_certificate_key /home/cert/privkey.pem;

include /etc/nginx/conf.d/ssl.conf;

location / {
  client_max_body_size 50M;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_set_header Host $http_host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Frame-Options SAMEORIGIN;
  proxy_pass http://mattermost;
 }
}[/code]

On relance nginx :

systemctl restart nginx.service

Le tutoriel s'achève ici, vous pouvez désormais poursuivre la configuration de Mattermost à l'adresse renseignée, i.e : https://mattermost.mondomain.tld

Si vous avez des questions, des suggestions, n'hésitez pas à m'en faire part sur le sujet de discussion.


Le reste de la configuration ne devrait pas vous poser trop de problèmes.

A bientôt ! o/

Répondre…