GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer le système de messagerie d'équipe Mattermost sur Ubuntu 20.04

Mattermost est une application de messagerie open source et auto-hébergée utilisée pour le chat, le partage de fichiers, la recherche et les intégrations. C'est une alternative au chat Slack qui rassemble toutes les communications de votre équipe en un seul endroit. Il est écrit en React et Golang et utilise la base de données PostgreSQL ou MySQL dans le backend. Il offre un riche ensemble de fonctionnalités, notamment des notifications push, un historique de recherche illimité, des emojis personnalisés, des webhooks et des commandes, un annuaire actif, une prise en charge du déploiement de bases de données multi-nœuds, un forum, un forum de discussion et bien d'autres.

Dans ce tutoriel, nous allons vous montrer comment installer Mattermost avec Nginx et Let's Encrypt SSL sur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04.
  • Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
  • Un mot de passe root est configuré sur le serveur.

Mise en route

Tout d'abord, il est recommandé de mettre à jour vos packages système avec la dernière version. Vous pouvez les mettre à jour en exécutant la commande suivante :

apt-get update -y

Une fois tous les packages mis à jour, installez les autres dépendances requises en exécutant la commande suivante :

apt-get install curl wget vim git unzip gnupg2 -y

Après avoir installé tous les packages requis, vous pouvez passer à l'étape suivante.

Installer et configurer MariaDB

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

apt-get install mariadb-server -y

Après avoir installé le serveur MariaDB, connectez-vous à MariaDB avec la commande suivante :

mysql

Une fois connecté, créez une base de données et un utilisateur pour Mattermost avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE mattermostdb;
MariaDB [(none)]> CREATE USER 'mattermost'@'%' IDENTIFIED BY 'password';

Ensuite, accordez tous les privilèges au Mattermost avec la commande suivante :

MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mattermost'@'%';

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

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

Une fois votre base de données MariaDB configurée, vous pouvez passer à l'étape suivante.

Installer et configurer Mattermost

Tout d'abord, vous devrez télécharger la dernière version de Mattermost depuis son site officiel. Vous pouvez le télécharger avec la commande suivante :

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

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

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

Ensuite, copiez le répertoire extrait dans le /opt :

cp -r mattermost /opt

Créez ensuite un répertoire de données pour Mattermost :

mkdir /opt/mattermost/data

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

useradd --system --user-group mattermost

Ensuite, changez la propriété du répertoire le plus important en le plus important et accordez les autorisations appropriées avec la commande suivante :

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

Ensuite, modifiez le fichier de configuration par défaut de Mattermost et définissez les paramètres de votre base de données et l'URL du site.

nano /opt/mattermost/config/config.json

Modifiez les lignes suivantes selon vos besoins :

    "SiteURL": "https://mattermost.linuxbuz.com",

    "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é.

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 /lib/systemd/system/mattermost.service

Ajoutez les lignes suivantes :

[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service

[Service]
Type=notify
User=mattermost
Group=mattermost
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
LimitNOFILE=49152

[Install]
WantedBy=mariadb.service

Enregistrez et fermez le fichier puis relancez le démon systemd avec la commande suivante :

systemctl daemon-reload

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

systemctl start mattermost
systemctl enable mattermost

Ensuite, vérifiez l'état du service Mattermost avec la commande suivante :

systemctl status mattermost

Vous devriez obtenir le résultat suivant :

? mattermost.service - Mattermost
     Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-08-01 09:12:52 UTC; 17s ago
   Main PID: 4106 (mattermost)
      Tasks: 20 (limit: 2353)
     Memory: 85.9M
     CGroup: /system.slice/mattermost.service
             ??4106 /opt/mattermost/bin/mattermost
             ??4198 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64

Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.131499,"caller":"mlog/sugar.go:19","msg":"Sent notification of ne>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1841655,"caller":"jobs/workers.go:73","msg":"Starting workers"}
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1842792,"caller":"bleveengine/bleve.go:267","msg":"UpdateConf Ble>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1930475,"caller":"jobs/schedulers.go:74","msg":"Starting schedule>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.20063,"caller":"app/web_hub.go:83","msg":"Starting websocket hubs>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2099638,"caller":"app/license.go:37","msg":"License key from http>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2205582,"caller":"app/server.go:525","msg":"Starting Server..."}
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2208374,"caller":"app/server.go:594","msg":"Server is listening o>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2211802,"caller":"commands/server.go:106","msg":"Sending systemd >
Aug 01 09:12:52 ubuntu2004 systemd[1]: Started Mattermost.

À ce stade, Mattermost s'exécute et écoute sur le port 8065.

Configurer Nginx en tant que proxy inverse

Ensuite, vous devrez configurer Nginxx en tant que proxy inverse pour Mattermost. Tout d'abord, installez le package Nginx avec la commande suivante :

apt-get install nginx -y

Une fois installé, créez un fichier de configuration d'hôte virtuel Nginx avec la commande suivante :

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

Ajoutez les lignes suivantes :

upstream mattermost {
   server localhost: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.linuxbuz.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 puis activez la configuration de l'hôte virtuel avec la commande suivante :

ln -s /etc/nginx/sites-available/mattermost.conf /etc/nginx/sites-enabled/mattermost.conf

Ensuite, vérifiez le Nginx pour toute erreur de configuration :

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

Sécuriser Mattermost avec Let's Encrypt SSL

Tout d'abord, vous devrez installer le client Certbot dans votre système pour gérer le SSL Let's Encrypt. Vous pouvez l'installer avec la commande suivante :

apt-get install python3-certbot-nginx -y

Après avoir installé Certbot, exécutez la commande suivante pour installer Let's Encrypt SSL pour votre site Web.

certbot --nginx -d mattermost.linuxbuz.com

Il vous sera demandé de fournir une adresse e-mail valide et d'accepter les conditions d'utilisation comme indiqué ci-dessous :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mattermost.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/mattermost.conf

Ensuite, sélectionnez si vous souhaitez ou non rediriger le trafic HTTP vers HTTPS :

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Tapez 2 et appuyez sur Entrée pour installer le SSL Let's Encrypt sur votre domaine. Une fois installé, vous devriez voir le résultat suivant :

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/mattermost.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://mattermost.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=mattermost.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/mattermost.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/mattermost.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Accéder à l'interface Web de Mattermost

Maintenant, ouvrez votre navigateur Web et tapez l'URL https://mattermost.linuxbuz.com. Vous serez redirigé vers l'écran d'inscription de Mattermost :

Indiquez votre adresse e-mail, votre nom, votre mot de passe et cliquez sur Créer un compte bouton. Vous devriez voir l'écran suivant :

Cliquez sur Créer un équipe bouton. Vous devriez voir l'écran suivant :

Indiquez le nom de votre équipe et cliquez sur Suivant bouton. Vous devriez voir l'écran suivant :

Indiquez l'URL de votre équipe et cliquez sur Terminer bouton. Vous devriez voir l'écran de bienvenue de Mattermost :

Cliquez sur Ignorer Tutoriels bouton. Vous devriez voir le tableau de bord Mattermost dans l'écran suivant :

Conclusion

Dans ce guide, vous avez appris à installer l'application Mattermost Team Messaging sur le serveur Ubuntu 20.04. Vous avez également appris à configurer Nginx en tant que proxy inverse et à le sécuriser avec Let's Encrypt SSL. Vous pouvez désormais explorer les services Mattermost et travailler avec votre équipe.


Ubuntu
  1. Comment installer OpenProject sur Ubuntu 16.04

  2. Comment installer Logstash sur Ubuntu 18.04

  3. Comment installer le système de messagerie d'équipe Mattermost sur Debian 10

  4. Comment installer Gradle sur Ubuntu 18.04

  5. Comment installer Elasticsearch sur Ubuntu 20.04

Comment installer Ferdi Messaging Suite sur Ubuntu 20.10 Edition

Comment installer Lynis sur Ubuntu 20.04

Comment installer XAMPP sur votre système Ubuntu 20.04 LTS

Comment installer urBackup sur Ubuntu 20.04

Comment installer Dropbox sur Ubuntu 18.04 et 16.04

Comment installer AnyDesk sur Ubuntu 20.04