GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer et configurer Mattermost sur CentOS 8

Mattermost est un système de messagerie de collaboration d'équipe d'entreprise gratuit, open source et auto-hébergé. Il est écrit en Golang et React et utilise MySQL/MariaDB/PostgreSQL comme backend de base de données. Il propose des clients de bureau pour Windows, macOS et Linux et des applications mobiles pour iOS et Android. Il est très similaire à Slack et rassemble toutes les communications de votre équipe en un seul endroit. Il offre des fonctionnalités très utiles, notamment la messagerie individuelle et de groupe, le partage de fichiers, les appels vidéo, les emojis personnalisés, les webhooks et les commandes, et bien d'autres.

Dans ce tutoriel, nous allons vous montrer comment installer Mattermost sur CentOS 8.

Prérequis

  • Un serveur exécutant CentOS 8.
  • Un mot de passe root est configuré sur votre serveur.

Installer et configurer la base de données MariaDB

Mattermost utilise MariaDB/MySQL comme backend de base de données. MariaDB doit donc être installé sur votre serveur. S'il n'est pas installé, vous pouvez l'installer avec la commande suivante :

dnf install mariadb-server -y

Une fois installé, démarrez le service MariaDB et activez-le après le redémarrage du système avec la commande suivante :

systemctl start mariadb
systemctl enable mariadb

Par défaut, MariaDB n'est pas sécurisée et le mot de passe root n'est pas défini dans CentOS 8. Vous pouvez donc le définir avec la commande suivante :

mysql_secure_installation

Répondez à toutes les questions comme indiqué ci-dessous :

Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Une fois que vous avez terminé, connectez-vous à MariaDB avec l'utilisateur root :

mysql -u root -p

Fournissez votre mot de passe root puis créez une base de données et un utilisateur pour Mattermost avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE mattermostdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO [email protected] IDENTIFIED BY 'password';

Ensuite, videz les privilèges et quittez le shell MariaDB avec la commande suivante :

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Installer Mattermost

Tout d'abord, vous devrez créer un utilisateur distinct pour exécuter Mattermost. Vous pouvez le créer avec la commande suivante :

useradd -d /opt/mattermost -U -M mattermost

Ensuite, téléchargez la dernière version de Mattermost avec la commande suivante :

wget https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz

Une fois le téléchargement terminé, extrayez le fichier téléchargé avec la commande suivante :

tar -xvzf mattermost-5.21.0-linux-amd64.tar.gz

Ensuite, déplacez le répertoire extrait vers le /opt avec la commande suivante :

mv mattermost /opt/

Ensuite, créez un répertoire de données à l'intérieur de Mattermost et accordez les autorisations appropriées à Mattermost avec la commande suivante :

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

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Configurer Mattermost

Ensuite, vous devrez définir votre base de données dans Mattermost. Vous pouvez le faire en éditant le fichier config.json :

nano /opt/mattermost/config/config.json

Modifiez les lignes suivantes en fonction des paramètres de votre base de données :

  "SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mattermost:[email protected](localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, changez le répertoire en /opt/mattermost et démarrez le serveur Mattermost avec la commande suivante :

cd /opt/mattermost
sudo -u mattermost bin/mattermost

Une fois le serveur démarré avec succès, vous devriez obtenir le résultat suivant :

{"level":"info","ts":1585379681.8383002,"caller":"utils/i18n.go:83","msg":"Loaded system translations","for locale":"en","from locale":"/opt/mattermost/i18n/en.json"}
{"level":"info","ts":1585379681.83874,"caller":"app/server_app_adapters.go:58","msg":"Server is initializing..."}
{"level":"info","ts":1585379681.8470004,"caller":"sqlstore/supplier.go:221","msg":"Pinging SQL","database":"master"}
{"level":"info","ts":1585379684.7858346,"caller":"sqlstore/upgrade.go:112","msg":"The database schema version has been set","version":"5.21.0"}
{"level":"error","ts":1585379690.8182986,"caller":"app/server_app_adapters.go:129","msg":"SiteURL must be set. Some features will operate incorrectly if the SiteURL is not set. See documentation for details: http://about.mattermost.com/default-site-url"}
{"level":"info","ts":1585379690.821083,"caller":"app/license.go:39","msg":"License key from https://mattermost.com required to unlock enterprise features."}

Ensuite, appuyez sur CTRL + C pour arrêter le serveur Mattermost.

Créer un fichier de service Systemd pour Mattermost

Ensuite, vous devrez créer un fichier de service systemd pour gérer le service Mattermost. Vous pouvez le créer avec la commande suivante :

nano /etc/systemd/system/mattermost.service

Ajoutez les lignes suivantes :

[Unit]
Description=Mattermost
After=syslog.target network.target mariadb.service

[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
ExecStart=/opt/mattermost/bin/mattermost
PIDFile=/var/run/mattermost.pid
TimeoutStartSec=3600
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, rechargez le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarrez le service Mattermost et activez-le après le redémarrage du système avec la commande suivante :

systemctl start mattermost
systemctl enable mattermost

Vous pouvez également vérifier l'état du service Mattermost avec la commande suivante :

systemctl status mattermost

Vous devriez obtenir le résultat suivant :

? mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-03-28 03:17:07 EDT; 14s ago
 Main PID: 15204 (mattermost)
    Tasks: 21 (limit: 25028)
   Memory: 120.8M
   CGroup: /system.slice/mattermost.service
           ??15204 /opt/mattermost/bin/mattermost
           ??15214 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64

Mar 28 03:17:07 centos8 mattermost[15204]: {"level":"info","ts":1585379827.1131086,"caller":"app/server.go:247","msg":"Printing current workin>
Mar 28 03:17:07 centos8 mattermost[15204]: {"level":"info","ts":1585379827.1131282,"caller":"app/server.go:248","msg":"Loaded config","source">

À ce stade, le serveur Mattermost est en cours d'exécution et écoute sur le port 8065. Vous pouvez le vérifier avec la commande suivante :

netstat -antup | grep 8065

Vous devriez obtenir le résultat suivant :

tcp6       0      0 :::8065                 :::*                    LISTEN      15204/mattermost 

Configurer Nginx en tant que proxy inverse pour Mattermost

C'est une bonne idée d'installer et de configurer Nginx en tant que proxy inverse pour de meilleures performances et une meilleure sécurité.

Tout d'abord, installez le serveur Web Nginx avec la commande suivante :

dnf install nginx -y

Après avoir installé le serveur Web Nginx, démarrez le service Nginx et autorisez-le à démarrer après le redémarrage du système avec la commande suivante :

systemctl start nginx
systemctl enable nginx

Ensuite, créez un nouveau fichier d'hôte virtuel Nginx pour Mattermost avec la commande suivante :

nano /etc/nginx/conf.d/mattermost.conf

Ajoutez les lignes suivantes :

upstream mattermost {
   server 127.0.0.1:8065;
   keepalive 32;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
   listen 80;
   server_name    mattermost.example.com;

   location ~ /api/v[0-9]+/(users/)?websocket$ {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       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_buffers 256 16k;
       proxy_buffer_size 16k;
       client_body_timeout 60;
       send_timeout 300;
       lingering_timeout 5;
       proxy_connect_timeout 90;
       proxy_send_timeout 300;
       proxy_read_timeout 90s;
       proxy_pass http://mattermost;
   }
   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       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_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_http_version 1.1;
       proxy_pass http://mattermost;
   }
}

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vérifiez le Nginx pour toute erreur de syntaxe avec la commande suivante :

nginx -t

Vous devriez obtenir le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Enfin, redémarrez le service Nginx pour appliquer les modifications :

systemctl restart nginx

À ce stade, le serveur Web Nginx est configuré pour servir Mattermost. Vous pouvez maintenant passer à l'étape suivante.

Configurer SELinux et Firewalld

Par défaut, SELinux est activé dans CentOS 8. Il est recommandé de le désactiver pour Mattermost. Vous pouvez le désactiver en éditant le fichier /etc/selinux/config :

nano /etc/selinux/config

Recherchez la ligne suivante :

SELINUX=enforcing

Et remplacez-le par la ligne suivante :

SELINUX=permissive

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez votre système pour appliquer les modifications.

Ensuite, vous devrez autoriser le port 80 via firewalld. Vous pouvez l'autoriser avec la commande suivante :

firewall-cmd --add-service=http --permanent

Ensuite, rechargez le pare-feu pour appliquer les modifications :

firewall-cmd --reload

Accéder à l'interface Web de Mattermost

Maintenant, ouvrez votre navigateur Web et tapez l'URL http://mattermost.example.com. Vous devriez voir la page de création d'utilisateur Mattermost :

Indiquez votre adresse e-mail, votre nom d'utilisateur, votre mot de passe et cliquez sur Créer Compte bouton. Vous devriez voir la page suivante :

Ensuite, cliquez sur Créer une nouvelle équipe pour créer votre équipe. Vous devriez voir la page suivante :

Indiquez le nom de votre équipe et cliquez sur Suivant bouton. Vous devriez voir la page suivante :

Indiquez l'URL de votre équipe et cliquez sur Terminer pour terminer l'installation. Vous devriez voir le tableau de bord Mattermost sur la page suivante :

Conclusion

Toutes nos félicitations! vous avez installé et configuré avec succès Mattermost sur le serveur CentOS 8. Vous pouvez maintenant créer une équipe pour votre organisation et commencer à collaborer avec votre équipe.


Cent OS
  1. Comment installer et configurer Nginx sur CentOS 7

  2. Comment installer et configurer samba sur RHEL 8 / CentOS 8

  3. Comment installer et configurer Redis sur CentOS 7

  4. Comment installer et configurer GitLab sur CentOS 7

  5. Comment installer et configurer CyberPanel sur CentOS 8

Comment installer et configurer ISPConfig CP sur CentOS 7

Comment installer et configurer ownCloud sur CentOS 7

Comment installer et configurer Samba sur CentOS 8

Comment installer et configurer Fail2ban sur CentOS 8

Comment installer et configurer HAproxy sur CentOS 6

Comment installer et configurer GlusterFS sur CentOS 7/CentOS 8