« Mattermost » : différence entre les versions

De Wiki doc

(Changement de l'URL de téléchargement + passage de l'interface en Français + ajout du répertoire personnel à l'utilisateur POSIX.)
(Correction de fautes de Français + correction typographiques + ajout d'un paramètre sur la télémétrie + ajout d'une message d'attention sur la branche "entreprise" et "team" de l'outil lors de l'installation + ajout d'une section de mise à jour de l'outil.)
Ligne 1 : Ligne 1 :
[[Category:Service communication]]
[[Category:Service communication]]


Mattermost est un service de chat collaboratif auto-hébergeable. Il met à disposition une interface WEB permettant l'inscription et la connexion des utilisateurs. Il se présente sous la forme de salons de discutions permettant l'échange de texte, d'images, de sons et de vidéos entre les personnes d'un même groupe.
''Mattermost'' est un service de chat collaboratif auto-hébergeable. Il met à disposition une interface ''WEB'' permettant l'inscription et la connexion des utilisateurs. Il se présente sous la forme de salons de discutions permettant l'échange de texte, d'images, de sons et de vidéos entre les personnes d'un même groupe.


Ce programme étant écrit en Go, il partage avec ses pairs le fait d'être qualitatif et facile à installer.
Ce programme étant écrit en ''Go'', il partage avec ses pairs le fait d'être qualitatif et facile à installer.


=Installation=
=Installation=
==Base de donnée==
==Base de donnée==
Mattermost a besoin d'une base de donnée relationnelle pour fonctionner. L'outil prend en charge MySQL/MariaDB et PostgreSQL. Je vais partir sur MariaDB pour faire au plus simple. Je vous renvoi à la documentation officielle en source (très bien faite) si vous voulez explorer d'autres options.
''Mattermost'' a besoin d'une base de donnée relationnelle pour fonctionner. L'outil prend en charge ''MySQL/MariaDB'' et ''PostgreSQL''. Je vais partir sur ''MariaDB'' car c'est ce que j'utilise généralement. Je vous renvois à la documentation officielle en source (très bien faite) si vous voulez explorer d'autres options.


===Installation de MariaDB===
===Installation de MariaDB===
  apt install mariadb-server
  apt install --no-install-recommends mariadb-server


===Sécurisation de l'installation===
===Sécurisation de l'installation===
Par défaut, MariaDB est une passoire (c'est top pour les tests mais pas la production). Il faut utiliser le script intégré au paquet pour régler ça
Par défaut, ''MariaDB'' a quelques lacunes sécuritaires (c'est bien pour les tests mais pas la production). Il faut utiliser le script intégré au paquet pour régler ça
  mysql_secure_installation
  mysql_secure_installation


Suivez les étapes en faisant les bons choix (ils sont plutôts évidents).
Suivez les étapes en faisant les bons choix (ils sont plutôt évidents).


===Configuration des bases de données===
===Configuration des bases de données===
Se connecter à l'utilisateur root de MariaDB
Se connecter à l'utilisateur ''root'' de ''MariaDB''
  mariadb -u root -p
  mariadb -u root -p


Ligne 35 : Ligne 35 :
==Mattermost==
==Mattermost==
===Téléchargement de l'application===
===Téléchargement de l'application===
Le lien de la dernière version est disponible à [https://mattermost.com/download/ cette adresse]. Pour ma part il s'agit de la version 5.16.2.
Le lien de la dernière version est disponible à [https://mattermost.com/download/ cette adresse]. Pour ma part il s'agit de la version 5.16.1.
 
{{attention|Il existe deux branches de cet outil. Une "Entreprise" et une "Communautaire". La première dispose de fonctions supplémentaires monnayant une licence alors que la seconde n'impose aucune restriction mais est introuvable sur leur site (il y avait autrefois un onglet dédié il me semble mais il a disparu). Pour pouvoir la télécharger, il faut ajouter le mot '''''team''''' entre '''mattermost''' et le '''numéro de version''' comme dans le lien qui suit.}}
 
  wget https://releases.mattermost.com/5.19.1/mattermost-team-5.19.1-linux-amd64.tar.gz -P /tmp/
  wget https://releases.mattermost.com/5.19.1/mattermost-team-5.19.1-linux-amd64.tar.gz -P /tmp/


Ligne 50 : Ligne 53 :
* Dans la section '''DataSource''' (juste en dessous), adapter les directives ''utilisateurs:motdepasse'' et ''BDD'' (juste avant le point d'interrogation) avec les informations adéquates
* Dans la section '''DataSource''' (juste en dessous), adapter les directives ''utilisateurs:motdepasse'' et ''BDD'' (juste avant le point d'interrogation) avec les informations adéquates
* Passer l'interface en Français en mettant '''fr''' dans les trois sections de '''LocalizationSettings'''
* Passer l'interface en Français en mettant '''fr''' dans les trois sections de '''LocalizationSettings'''
* Désactiver la [https://docs.mattermost.com/administration/telemetry.html télémétrie] en passant la section '''EnableDiagnostics''' à '''false'''
Je vous recommandes de plus d'aller faire un tour dans chaque onglets de la ''console système'' de l'interface ''WEB'' afin de vous assurer que les paramètres correspondent à vos souhaits.


==Posix==
==Posix==
Ligne 76 : Ligne 82 :
{{Info|Cette commande ne rend pas la main. Le service écoute sur le port TCP 8065. Ceci est visible avec la commande <source lang="bash" inline>ss -ltn</source>.}}
{{Info|Cette commande ne rend pas la main. Le service écoute sur le port TCP 8065. Ceci est visible avec la commande <source lang="bash" inline>ss -ltn</source>.}}


Une fois votre configuration validée, faites un <source lang="bash" inline><ctrl+c></source> et passez à l'étape de création d'un service [[Systemd]].
Une fois votre configuration validée, faites un <source lang="bash" inline><ctrl+c></source> et passez à l'étape de création d'un service [[:Category:Systemd|Systemd]].


==Création d'un service Systemd==
==Création d'un service Systemd==
Ligne 116 : Ligne 122 :
Activer le service au démarrage
Activer le service au démarrage
  systemctl enable mattermost.service
  systemctl enable mattermost.service
=Mises à jours=
Afin de mettre à jour le service, il convient de réaliser quelques opérations rapides après avoir '''sauvegardé''' votre machine (une mise à jour peu toujours devoir occasionner un retour en arrière).
Éteindre le service
systemctl stop mattermost.service
Télécharger de la nouvelle version (n'oubliez pas d'ajouter le mot clé ''team'' à l'''URL'')
wget https://releases.mattermost.com/5.28.1/mattermost-team-5.28.1-linux-amd64.tar.gz -P /tmp
Déplacer l'ancienne version (ou la supprimer selon votre politique)
mv /opt/mattermost /opt/mattermost-1.19.1
Extraction de la nouvelle version
tar xzf /tmp/mattermost-team-5.28.1-linux-amd64.tar.gz -C /opt/
Copie des fichiers échangés dans les coversations
cp -av /opt/mattermost-5.19.1/data/ /opt/mattermost/
{{attention|Je vous conseil de ne pas faire de même avec le fichier de configuration étant donné qu'il peut toujours changer de structure au file des versions. N'oubliez alors surtout pas de refaire les étapes sur la configuration (édition du fichier <source lang="bash" inline>/opt/mattermost/config/config.json</source>) cité plus haut.}}
vim /opt/mattermost/config/config.json
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost


=Sources=
=Sources=
* https://docs.mattermost.com/install/install-ubuntu-1604.html
* https://docs.mattermost.com/install/install-ubuntu-1604.html
* https://docs.mattermost.com/administration/command-line-tools.html#mattermost-user-create
* https://docs.mattermost.com/administration/command-line-tools.html#mattermost-user-create

Version du 9 novembre 2020 à 16:19


Mattermost est un service de chat collaboratif auto-hébergeable. Il met à disposition une interface WEB permettant l'inscription et la connexion des utilisateurs. Il se présente sous la forme de salons de discutions permettant l'échange de texte, d'images, de sons et de vidéos entre les personnes d'un même groupe.

Ce programme étant écrit en Go, il partage avec ses pairs le fait d'être qualitatif et facile à installer.

Installation

Base de donnée

Mattermost a besoin d'une base de donnée relationnelle pour fonctionner. L'outil prend en charge MySQL/MariaDB et PostgreSQL. Je vais partir sur MariaDB car c'est ce que j'utilise généralement. Je vous renvois à la documentation officielle en source (très bien faite) si vous voulez explorer d'autres options.

Installation de MariaDB

apt install --no-install-recommends mariadb-server

Sécurisation de l'installation

Par défaut, MariaDB a quelques lacunes sécuritaires (c'est bien pour les tests mais pas la production). Il faut utiliser le script intégré au paquet pour régler ça

mysql_secure_installation

Suivez les étapes en faisant les bons choix (ils sont plutôt évidents).

Configuration des bases de données

Se connecter à l'utilisateur root de MariaDB

mariadb -u root -p

Créer l'utilisateur de l'application

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

ASTUCE

Vous pouvez utiliser la commande cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1 pour générer un mot de passe similaire. Une documentation existe à ce sujet.

Créer la base de données pour l'application

create database mattermost;

Donner les privilèges à l'utilisateur précédemment créé sur cette base

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

Mattermost

Téléchargement de l'application

Le lien de la dernière version est disponible à cette adresse. Pour ma part il s'agit de la version 5.16.1.

ATTENTION

Il existe deux branches de cet outil. Une "Entreprise" et une "Communautaire". La première dispose de fonctions supplémentaires monnayant une licence alors que la seconde n'impose aucune restriction mais est introuvable sur leur site (il y avait autrefois un onglet dédié il me semble mais il a disparu). Pour pouvoir la télécharger, il faut ajouter le mot team entre mattermost et le numéro de version comme dans le lien qui suit.
wget https://releases.mattermost.com/5.19.1/mattermost-team-5.19.1-linux-amd64.tar.gz -P /tmp/

Décompression de l'archive

tar -xvzf /tmp/mattermost*.gz -C /opt/

Création du répertoire de données (il contiendra les pièces jointes des conversations)

mkdir /opt/mattermost/data

Configuration de l'application

vim /opt/mattermost/config/config.json
  • Dans la section DriverName (ligne 131), mettre mysql
  • Dans la section DataSource (juste en dessous), adapter les directives utilisateurs:motdepasse et BDD (juste avant le point d'interrogation) avec les informations adéquates
  • Passer l'interface en Français en mettant fr dans les trois sections de LocalizationSettings
  • Désactiver la télémétrie en passant la section EnableDiagnostics à false

Je vous recommandes de plus d'aller faire un tour dans chaque onglets de la console système de l'interface WEB afin de vous assurer que les paramètres correspondent à vos souhaits.

Posix

Création d'un utilisateur Posix pour Mattermost

useradd --system --home-dir /opt/mattermost/ --user-group mattermost

Attribution des droits à l'application

chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

Création d'utilisateurs Mattermost

Pour créer un utilisateur Mattermost, il est possible de passer soit par l'interface WEB, soit par la ligne de commande (cette dernière permettant également de créer des utilisateurs administrateurs).

Création d'un utilisateur admin

su - mattermost -c '/opt/mattermost/bin/mattermost user create --firstname Toto --system_admin --email toto@example.com --username toto --password LeMotDePasseDeToto'

Création d'un utilisateur standard

su - mattermost -c '/opt/mattermost/bin/mattermost user create --email tata@example.com --username tata --password LeMotDePasseDeTata'

ATTENTION

Mattermost est très casse couille concernant les mots de passes à utiliser (genre les développeurs savent mieux que nous ce qu'est un bon mot de passe...), du coup, ceux utilisés en exemples ne sont pas acceptés par l'outil. Il faut mettre au minimum 10 caractères avec au moins un en minuscule, un en majuscule, un chiffre et un caractère spécial "~!@#$%^&*()")., (histoire de bien faire chier).

Tester l'installation

Nous allons exécuter Mattermost avec l'utilisateur Posix précédemment créé afin de tester l'ensemble de la configuration.

su - mattermost -c '/opt/mattermost/bin/mattermost'

INFORMATION

Cette commande ne rend pas la main. Le service écoute sur le port TCP 8065. Ceci est visible avec la commande ss -ltn.

Une fois votre configuration validée, faites un <ctrl+c> et passez à l'étape de création d'un service Systemd.

Création d'un service Systemd

vim /lib/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=network.target
After=mariadb.service
Requires=mariadb.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=mariadb.service

Recharger la configuration de Systemd

systemctl daemon-reload

Démarrer le service

systemctl start mattermost.service

Vérifier son bon fonctionnement

systemctl status mattermost.service

Si l'état est à "active", c'est bon. De plus, le port TCP 8065 doit être en écoute à ce stade.

Activer le service au démarrage

systemctl enable mattermost.service

Mises à jours

Afin de mettre à jour le service, il convient de réaliser quelques opérations rapides après avoir sauvegardé votre machine (une mise à jour peu toujours devoir occasionner un retour en arrière).

Éteindre le service

systemctl stop mattermost.service

Télécharger de la nouvelle version (n'oubliez pas d'ajouter le mot clé team à l'URL)

wget https://releases.mattermost.com/5.28.1/mattermost-team-5.28.1-linux-amd64.tar.gz -P /tmp

Déplacer l'ancienne version (ou la supprimer selon votre politique)

mv /opt/mattermost /opt/mattermost-1.19.1

Extraction de la nouvelle version

tar xzf /tmp/mattermost-team-5.28.1-linux-amd64.tar.gz -C /opt/

Copie des fichiers échangés dans les coversations

cp -av /opt/mattermost-5.19.1/data/ /opt/mattermost/

ATTENTION

Je vous conseil de ne pas faire de même avec le fichier de configuration étant donné qu'il peut toujours changer de structure au file des versions. N'oubliez alors surtout pas de refaire les étapes sur la configuration (édition du fichier /opt/mattermost/config/config.json) cité plus haut.
vim /opt/mattermost/config/config.json
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

Sources