GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment déployer Mattermost sur Ubuntu 18.04

Mattermost est une plate-forme de messagerie instantanée de niveau entreprise, une alternative Slack open source auto-hébergée. Il est écrit en Golang et React et peut utiliser MySQL ou PostgreSQL comme backend de base de données. Mattermost rassemble toutes les communications de votre équipe en un seul endroit et offre diverses fonctionnalités, notamment le partage de fichiers, la messagerie individuelle et de groupe, les emojis personnalisés, les appels vidéo et bien plus encore.

Dans ce didacticiel, nous allons installer Mattermost sur un serveur Ubuntu 18.04 et configurer Nginx en tant que proxy inverse SSL.

Prérequis #

Assurez-vous que vous avez satisfait aux prérequis suivants avant de poursuivre ce didacticiel :

  • Vous êtes connecté en tant qu'utilisateur avec des privilèges sudo.
  • Vous avez un nom de domaine pointant vers l'adresse IP de votre serveur. Dans cet article, nous utiliserons example.com .
  • Vous avez installé Nginx, sinon consultez ce guide.
  • Vous avez installé un certificat SSL pour votre domaine. Vous pouvez installer un certificat SSL Let's Encrypt gratuit en suivant ce guide.

Créer la base de données MySQL #

Nous utiliserons MySQL comme base de données pour Mattermost. Si MySQL ou MariaDB n'est pas installé sur votre serveur, vous pouvez l'installer en suivant ces instructions.

Connectez-vous au shell MySQL :

mysql -u root

Créez une nouvelle base de données et un nouvel utilisateur pour notre installation Mattermost avec :

CREATE DATABASE mattermost;GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';
Assurez-vous d'utiliser un mot de passe plus sûr que P4ssvv0rD .

Créer un nouvel utilisateur système #

Créez un nouvel utilisateur et un groupe qui exécutera notre instance Mattermost. Nous nommerons l'utilisateur mattermost :

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

Installer le serveur Mattermost #

Au moment de la rédaction de cet article, la dernière version stable de Mattermost est la version 5.1.0. Téléchargez l'archive avec la commande curl suivante :

sudo curl -L https://releases.mattermost.com/5.1.0/mattermost-5.1.0-linux-amd64.tar.gz -o /tmp/mattermost.tar.gz

Une fois le téléchargement terminé, extrayez l'archive et déplacez-la vers /opt répertoire

sudo tar zxf /tmp/mattermost.tar.gz -C /opt

Créez le répertoire de stockage des fichiers :

sudo mkdir -p /opt/mattermost/data

Modifiez la propriété du répertoire en mattermost utilisateur :

sudo chown -R mattermost: /opt/mattermost

Ouvrez le /opt/mattermost/config/config.json fichier, définissez le pilote de base de données sur mysql et entrez les informations de la base :

/opt/mattermost/config/config.json
"SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mattermost:P4ssvv0rD@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

Pour nous assurer que notre instance Mattermost fonctionne comme prévu, nous allons tester le serveur Mattermost. Changez en /opt/mattermost répertoire et démarrez le serveur avec les commandes suivantes :

cd /opt/mattermostsudo -u mattermost bin/mattermost

Si tout fonctionne bien, le serveur démarrera et la sortie ressemblera à ceci :

{"level":"info","ts":1532546921.941638,"caller":"app/server.go:115","msg":"Starting Server..."}
{"level":"info","ts":1532546921.9421031,"caller":"app/server.go:154","msg":"Server is listening on [::]:8065"}
{"level":"info","ts":1532546921.9541554,"caller":"app/web_hub.go:75","msg":"Starting 2 websocket hubs"}

Nous pouvons maintenant arrêter le serveur Mattermost avec CTRL+C et passez aux étapes suivantes.

Créer une unité Systemd #

Afin d'exécuter notre instance Mattermost en tant que service, nous allons créer un mattermost.service fichier d'unité dans le /etc/systemd/system/ répertoire.

Ouvrez votre éditeur de texte et créez le fichier suivant :

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

Informez systemd que nous avons créé un nouveau fichier d'unité et démarrez le service Mattermost avec les commandes suivantes :

sudo systemctl daemon-reloadsudo systemctl start mattermost

Nous pouvons maintenant vérifier l'état du service avec :

sudo systemctl status mattermost
● mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; ven
   Active: active (running) since Wed 2018-07-25 18:39:05 UTC; 41s ago
 Main PID: 3091 (mattermost)
    Tasks: 18 (limit: 507)
   CGroup: /system.slice/mattermost.service
           ├─3091 /opt/mattermost/bin/mattermost

S'il n'y a pas d'erreurs, activez le service Mattermost pour qu'il démarre automatiquement au démarrage :

sudo systemctl enable mattermost

Configurer un proxy inverse avec Nginx #

Si vous avez suivi nos guides d'installation de Nginx sur Ubuntu 18.04 et de sécurisation de Nginx avec Let's Encrypt sur Ubuntu 18.04, Nginx devrait déjà être installé et configuré avec un certificat SSL.

Nous devons maintenant configurer un nouveau bloc de serveur pour l'instance Mattermost. Ouvrez votre éditeur de texte et créez le fichier suivant :

/etc/nginx/conf.d/example.com.conf
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

upstream mattermost_backend {
  server 127.0.0.1:8065;
}

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

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    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;
       proxy_read_timeout 600s;
       proxy_pass http://mattermost_backend;
    }

    location / {
       proxy_http_version 1.1;
       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_pass http://mattermost_backend;
    }
}

Rechargez le service Nginx pour que les modifications prennent effet :

sudo systemctl reload nginx

Configuration de Mattermost #

Ouvrez votre navigateur, saisissez votre domaine et vous serez redirigé vers la page d'inscription.

Entrez votre email, choisissez un nom d'utilisateur et un mot de passe et cliquez sur Create Account bouton pour créer votre premier compte.

Le premier utilisateur créé dans le système aura des privilèges d'administrateur.

À l'étape suivante, l'assistant de configuration vous demandera de créer une nouvelle équipe.

Cliquez sur Create a new team lien, entrez votre première équipe et cliquez sur le Next bouton.

À l'étape suivante, il vous sera demandé de choisir l'adresse Web de votre nouvelle équipe :

Cliquez sur Finish et vous serez redirigé vers le tableau de bord Mattermost, connecté en tant qu'administrateur.

Ouvrez la console système, en cliquant sur votre nom d'utilisateur en haut du panneau de navigation, et dans le nouveau menu qui s'ouvre, cliquez sur System Console lien.

Définissez l'URL du site en allant dans Paramètres Général → Configuration.

Pour activer les notifications par e-mail, accédez à Notifications → E-mail, modifiez le Enable Email Notifications valeur de false à true et saisissez vos paramètres SMTP.

Vous pouvez utiliser tous les services de messagerie transactionnels populaires tels que SendinBlue, SendGrid, Amazon SES, Mandrill, Mailgun, Mailjet et Postmark ou vous pouvez configurer votre propre serveur de messagerie en suivant ce didacticiel.

Enfin, nous devons redémarrer le service Mattermost pour que les modifications prennent effet :

sudo systemctl restart mattermost

Ubuntu
  1. Comment déployer Odoo 11 sur Ubuntu 18.04

  2. Comment installer MySQL sur Ubuntu 18.04

  3. Comment déployer Rocket.Chat sur Ubuntu 18.04

  4. Comment configurer un serveur OpenVPN sur Ubuntu 18.04

  5. Comment installer Zimbra 8.6 sur le serveur Ubuntu 14.04

Comment installer le serveur OpenSIPS sur Ubuntu 15.04

Comment déployer Mattermost sur Ubuntu 20.04

Comment installer Plex Media Server sur un serveur/bureau Ubuntu 16.04

Mattermost Omnibus :Comment installer sur le serveur Linux Ubuntu 20.04 LTS

Comment déployer un serveur TeamSpeak sur Ubuntu 20.04

Comment faire une installation complète de Mattermost sur Ubuntu Server 22.04