Passer au contenu principal

Installer Mattermost sous RockyLinux

Mattermost est un logiciel orienté entreprise afin de discutez entre les travailleurs par équipe. Entre autre, il intervient comme un Télégram et un Discord.

L'installation de Mattermost sous RockyLinux fonctionne aussi avec Debian 11 (faudra juste le réadapté).

Tout d'abord nous mettons à jour notre distribution

dnf update -y

Nous installons mariadb et nous créons une base de données avec un utilisateur.

dnf install mariadb-server
systemctl enable mariadb
systemctl start mariadb
mysql_secure_installation
mysql -u root -p
CREATE DATABASE mattermost;
CREATE USER 'mmuser'@'%';
SET PASSWORD FOR 'mmuser'@'%' = PASSWORD('VotrePassword');
GRANT ALL ON mattermost.* TO 'mmuser'@'%' IDENTIFIED BY 'VotrePassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

On créer ensuite un utilisateur mattermost

sudo useradd --system --user-group mattermost

et on télécharge la dernière version de Mattermost (6.2.1)
On peut trouver toutes les release ici et pour la version community c'est ici 
On pourra ensuite le décompresser et l'installer dans /opt et lui mettre des droits.

wget https://releases.mattermost.com/6.2.1/mattermost-6.2.1-linux-amd64.tar.gz
tar xvzf mattermost-6.2.1-linux-amd64.tar.gz -C /opt/
sudo mkdir /opt/mattermost/data
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

On modifie le fichier config.json pour mettre notre site internet et notre base de données.

nano /opt/mattermost/config/config.json
"SiteURL": "http://VotreDomaine", 
"DriverName": "mysql", 
"DataSource": "mmuser:VotrePassword@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

On créer ensuite un fichier SystemD pour contrôler si on démarre, stop et redémarrer le Mattermost.

nano /lib/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=network.target
After=mysql.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=multi-user.target

On redémarre le daemon pour appliquer les modification

systemctl daemon-reload

On démarre Mattermost et on l'active au démarrage

systemctl start mattermost
systemctl enable mattermost
#Pour voir si il est démmarer
systemctl status mattermost

Nous pouvons installer Apache

dnf install httpd
systemctl enable httpd
systemctl start httpd

et nous ouvrons le port 80 et 443

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

On désactive le Selinux

nano /etc/selinux/config
#Mettre disabled 

On créer les dossier Site

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled

On modifie le fichier httpd.conf pour configurer ces dossiers pour apache

nano /etc/httpd/conf/httpd.conf

et on modifie la derniere ligne du fichier pour :

IncludeOptional sites-enabled/*.conf

On créer un fichier conf

nano /etc/httpd/sites-available/mattermost.conf
<VirtualHost *:80>

ServerAdmin mail de admin
ServerName votre domaine

ProxyPreserveHost On

RewriteEngine On
RewriteCond %{REQUEST_URI} /api/v[0-9]+/(users/)?websocket [NC]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} \bUpgrade\b [NC]
RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]

<Location />
Require all granted
ProxyPass http://127.0.0.1:8065/
ProxyPassReverse http://127.0.0.1:8065/
ProxyPassReverseCookieDomain 127.0.0.1 votre domaine
</Location>

</VirtualHost>

et on l'active :

sudo ln -s /etc/httpd/sites-available/mattermost.conf /etc/httpd/sites-enabled/mattermost.conf