Mattermost
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 pour faire au plus simple. Je vous renvoi à la documentation officielle en source (très bien faite) si vous voulez explorer d'autres options.
Installation de MariaDB
apt install mariadb-server
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
mysql_secure_installation
Suivez les étapes en faisant les bons choix (ils sont plutôts é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 commandecat /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.2.
wget https://releases.mattermost.com/5.16.2/mattermost-5.16.2-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
mkdir /opt/mattermost/data
Configuration de l'application
vim /opt/mattermost/config/config.json
- Dans la section "DriverName" (ligne 130), 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
Posix
Création d'un utilisateur Posix pour Mattermost
useradd --system --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 commandess -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