GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Mattermost avec PostgreSQL et Nginx sur Ubuntu 16.04

Mattermost est un système de messagerie open source écrit dans les langages de programmation Golang et React. C'est une alternative slack, nous pouvons créer notre propre service de messagerie comme slack ou hipchat avec. Mattermost rassemble la communication de votre équipe en un seul endroit et la rend accessible partout. Vous pouvez y accéder depuis votre ordinateur de bureau, votre appareil Android et votre iPhone.

Dans ce tutoriel, je vais vous guider pour créer votre propre serveur Mattermost qui utilise PostgreSQL comme système de base de données et Nginx comme proxy inverse pour Mattermost. J'utiliserai Ubuntu 16.04 comme système d'exploitation.

Prérequis

  • Ubuntu 16.04 - 64 bits
  • Privilèges racine

Étape 1 - Installer et configurer la base de données PostgreSQL

Mattermost prend en charge les bases de données MySQL et PostgreSQL. Nous utiliserons PostgreSQL comme base de données principale pour ce tutoriel. Connectez-vous à votre serveur et mettez à jour le référentiel.

Connectez-vous à votre serveur par SSH ou connectez-vous sur le terminal et mettez à jour le référentiel Ubuntu.

ssh [email protected]
sudo apt-get update

En tant qu'utilisateur root, installez PostgreSQL avec cette commande apt.

sudo apt-get install postgresql postgresql-contrib

Une fois l'installation terminée, connectez-vous à l'utilisateur postgres et tapez la commande 'psql ' pour se connecter au shell postgresql.

su - postgres
psql

Modifiez le mot de passe de l'utilisateur postgres avec la commande ci-dessous :

\password postgres
Enter new password:

Ensuite, nous devons configurer une nouvelle base de données et un nouvel utilisateur pour l'installation de Mattermost. Je vais créer une nouvelle base de données nommée 'mattermostdb ' et l'utilisateur 'matteruser ' avec le mot de passe 'matterpassword '. Veuillez choisir un mot de passe sécurisé pour votre installation.

Créez la nouvelle base de données et l'utilisateur avec la requête PostgreSQL ci-dessous :

CREATE DATABASE mattermostdb;
CREATE USER matteruser WITH PASSWORD 'matterpassword';

Accorder 'matteruser ' privilèges sur la base de données 'mattermostdb ' et quittez.

GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser;
\q

Étape 2 - Installer et configurer Mattermost

Nous installerons et configurerons Mattermost en tant qu'utilisateur Linux normal, et non en tant qu'utilisateur root. Nous exécuterons Mattermost en tant qu'utilisateur "matter", nous devons donc créer un nouvel utilisateur Linux nommé "matter" sur le serveur.

Créer un nouveau 'sujet ' utilisateur et mot de passe.

useradd -m -s /bin/bash matter
passwd matter

utilisateur 'matter' créé, connectez-vous maintenant à l'utilisateur et téléchargez la dernière version de Mattermost avec wget.

su - matter
wget https://releases.mattermost.com/3.4.0/mattermost-3.4.0-linux-amd64.tar.gz

Extrayez le fichier Mattermost et vous verrez le nouveau répertoire 'mattermost', entrez ce répertoire avec la commande cd.

tar -xzvf mattermost-3.4.0-linux-amd64.tar.gz
cd mattermost/

Ensuite, créez un nouveau répertoire 'data' pour stocker les fichiers utilisateur, puis modifiez le fichier de configuration le plus important 'config/config.json ' avec vim.

mkdir data/
vim config/config.json

Nous exécuterons Mattermost derrière un proxy inverse Nginx, il est donc préférable de configurer Mattermost pour écouter sur l'adresse IP locale. Dans les 'ServiceSettings ', ajoutez l'adresse IP localhost à la configuration sur la ligne 4.

"ListenAddress": "127.0.0.1:8065",

Allez maintenant dans les 'SqlSettings ' à la ligne 48. Modifiez le 'DriverName ' et 'Source de données ' configuration pour utiliser la base de données PostgreSQL avec la configuration ci-dessous :

"DriverName": "postgres",
"DataSource": "postgres://matteruser:[email protected]:5432/mattermostdb?sslmode=disable&connect_timeout=10",

Remarque :

matièreutilisateur =utilisateur postgresql.
matterpassword =le mot de passe.
mattermostdb =la base de données.

Enregistrez et quittez.

Lorsque cela est fait, allez dans le répertoire bin et exécutez le plus important.

cd bin/
./platform

Vous verrez que Mattermost fonctionne maintenant sur l'IP localhost avec le port 8065.

Appuyez sur Ctrl + c pour quitter.

Étape 3 - Configurer le service Mattermost Systemd

Accédez au répertoire système systemd et créez un nouveau fichier de service important.

cd /etc/systemd/system/
vim mattermost.service

Collez la configuration ci-dessous :

[Unit]
Description=Mattermost is an open source, self-hosted Slack-alternative
After=syslog.target network.target

[Service]
Type=simple
User=matter
Group=matter
ExecStart=/home/matter/mattermost/bin/platform
PrivateTmp=yes
WorkingDirectory=/home/matter/mattermost
Restart=always
RestartSec=30
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Enregistrez et quittez.

Rechargez le démon systemd et démarrez le service Mattermost que nous avons créé ci-dessus.

systemctl daemon-reload
systemctl start mattermost

Assurez-vous qu'il n'y a pas d'erreur. Vérifiez que le service Mattermost est en cours d'exécution.

netstat -plntu
systemctl status mattermost

Étape 4 - Installer et configurer Nginx

Dans cette étape, nous allons installer Nginx et configurer Nginx en tant que proxy inverse pour Mattermost. Nous mapperons le port 8056 le plus important sur les ports HTTP et HTTPS.

Installez Nginx à partir du référentiel Ubuntu avec cette commande apt.

sudo apt-get install nginx

Allez maintenant dans le répertoire de configuration de Nginx et créez le sous-répertoire SSL.

cd /etc/nginx/
mkdir ssl/; cd ssl/

Générez un nouveau fichier de certificat SSL auto-signé avec OpenSSL et modifiez les autorisations de la clé privée.

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/mattermost.crt -keyout /etc/nginx/ssl/mattermost.key
chmod 400 mattermost.key

Créez un nouveau fichier d'hôte virtuel pour Mattermost dans les 'sites-available ' répertoire.

cd /etc/nginx/sites-available/
vim mattermost

Collez la configuration de l'hôte virtuel ci-dessous :

server {
   listen         80;
   server_name    mattermost.mydomain.com;
   return         301 https://$server_name$request_uri;
}

server {
   listen 443 ssl;
   server_name mattermost.mydomain.com;

   ssl on;
   ssl_certificate /etc/nginx/ssl/mattermost.crt;
   ssl_certificate_key /etc/nginx/ssl/mattermost.key;
   ssl_session_timeout 5m;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
   ssl_prefer_server_ciphers on;
   ssl_session_cache shared:SSL:10m;

   location / {
      gzip off;
      proxy_set_header X-Forwarded-Ssl on;
      client_max_body_size 50M;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      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_pass http://127.0.0.1:8065;
   }
}

Remplacez le nom de domaine par votre propre domaine, enregistrez et quittez.

Activez l'hôte virtuel en créant un lien symbolique vers le fichier le plus important dans le 'sites-enabled ' répertoire.

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

Testez la configuration de Nginx et assurez-vous qu'il n'y a pas d'erreur, puis redémarrez nginx.

nginx -t
systemctl restart nginx

Étape 5 - Tester

Ouvrez votre navigateur Web et visitez le nom de domaine le plus important, dans mon cas :le plus important.mondomaine.com.

Vous serez automatiquement redirigé vers la connexion HTTPS.

Créez d'abord un nouveau compte, cliquez sur 'Créer un compte '.

Ensuite, vous pouvez voir le lien pour créer de nouvelles équipes ou pour accéder à la console d'administration/système.

Cliquez sur 'Aller à la console système ' et vous verrez le tableau de bord de la console système ci-dessous :

Cliquez sur 'Créer une nouvelle équipe ', saisissez le nom de votre équipe et cliquez sur 'Suivant '. Configurez ensuite l'URL de l'équipe et cliquez sur 'Terminer ' bouton.

Enfin, vous voyez le tableau de bord de l'équipe.

Chat d'équipe Mattermost.

Mattermost avec PostgreSQL et le serveur Web Nginx sur Ubuntu 16.04 a été installé avec succès.


Ubuntu
  1. Comment installer et sécuriser phpMyAdmin avec Apache sur Ubuntu 18.04

  2. Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04

  3. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  4. Comment installer Postgresql et phpPgAdmin sur Ubuntu 15.04

  5. Comment installer Nginx avec PHP5 et MySQL sur Ubuntu 11.10

Comment installer PostgreSQL et phpPgAdmin sur Ubuntu 16.04

Comment installer Redmine 3.2 avec Nginx sur Ubuntu 16.04

Comment installer Django avec PostgreSQL et Nginx sur Ubuntu 16.04

Comment installer OSClass avec Nginx sur Ubuntu 20.04

Comment installer Wordpress avec Nginx, MariaDB et HHVM dans Ubuntu 15.04

Comment installer Nginx avec ModSecurity sur Ubuntu 15.04