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.