Ricerca nel sito web

Installa Mattermost con PostgreSQL su Ubuntu 16.04


introduzione

Mattermost è un sistema di messaggistica sul posto di lavoro per web, PC e telefoni. È un'alternativa open source a Slack.
Un'installazione completa di Mattermost è composta da tre componenti: il server Mattermost, un server proxy e un server di database. Ogni componente può essere installato sulla stessa macchina o su tre macchine diverse nella rete locale.
Questo tutorial spiega come installare Mattermost Team Edition su Ubuntu 16.04 con Nginx come server proxy e PostgreSQL come database.

Installa PostgreSQL

Sul server che ospiterà il database, eseguire il seguente comando:

apt install postgresql postgresql-contrib

Durante il processo di installazione verrà creato un nuovo utente, “postgres”. Quindi, alla fine, accedi con il comando:

sudo --login --user postgres

Avvia la shell PostgreSQL:

psql

Crea un nuovo database:

postgres=# CREATE DATABASE mattermost_db;
postgres=# CREATE USER mmuser WITH PASSWORD 'my_strong_password';
postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost_db to mmuser;
postgres=# \q

Esci da questo account e consenti a PostgresSQL di ascoltare su tutti gli IP assegnati, modificando il file

/etc/postgresql/9.3/main/postgresql.conf

Ecco, trova la linea

#listen_addresses = 'localhost'

decommentalo e cambia "localhost" in "*"; quindi, dopo aver modificato:

listen_addresses = *

Ricaricare il database con:

systemctl reload postgresql

Ora che il database è installato, è il momento di installare Mattermost Server.

Installa Mattermost Server

Scarica l'ultima versione di Mattermost Server con wget. In questo momento, questa è la 3.6.2:

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

Estrai l'archivio e spostalo in una cartella diversa; ad esempio, in questo esempio verrà archiviato Mattermost

/opt

:

mv mattermost /opt

Crea una directory di archiviazione, denominata "data", in questa cartella:

mkdir /opt/mattermost/data

La directory di archiviazione conterrà tutti i file e le immagini che gli utenti pubblicano su Mattermost, quindi è necessario che l'unità che la contiene sia sufficientemente grande.

Successivamente, crea un nuovo utente e un nuovo gruppo con entrambi i nomi

mattermost

:

useradd --system --user-group mattermost

Imposta l'utente e il gruppo Mattermost come proprietario dei file Mattermost con il comando:

sudo chown -R mattermost:mattermost /opt/mattermost

Dai i permessi al gruppo Mattermost:

sudo chmod -R g+w /opt/mattermost

Successivamente, configura il driver del database:

$EDITOR /opt/mattermost/config/config.json

In quel file, nella sezione "SqlSettings", modifica le righe "DriverName" e "DataSource" come segue:

"DriverName": "postgres"
"DataSource": "postgres://mmuser:[email :5432/mattermost_db?sslmode=disable&connect_timeout=10",

Salva ed esci. Testare la configurazione, utilizzando l'utente "mattermost":

sudo -u mattermost /opt/mattermost/bin/platform

Vedrai che Mattermost è in esecuzione su 127.0.0.1:8065. Smettila con

CTRL+c

Successivamente, crea un nuovo file di servizio più importante per systemd:

$EDITOR /etc/systemd/system/mattermost.service

E incolla in questo file il seguente testo:

[Unit]
Description=Mattermost, an open source alternative to Slack
After=network.target
After=postgresql.service
Requires=postgresql.service

[Service]
Type=simple
ExecStart=/opt/mattermost/bin/platform
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost

[Install]
WantedBy=multi-user.target

Salva ed esci. Poi:

systemd daemon-reload

Ora avvia il servizio:

systemctl start mattermost

Installa Nginx

Installa Nginx e configura Nginx come proxy inverso per Mattermost. Primo:

apt install nginx

Prossimo :

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

Genera un nuovo file di certificato SSL autofirmato:

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

Ciò creerà un nuovo certificato e ne modificherà le autorizzazioni.
Successivamente, crea un nuovo file di configurazione per la maggior parte dei casi

/etc/nginx/sites-available

:

$EDITOR /etc/nginx/sites-available/mattermost

e incollalo:

server {
   listen         80;
   server_name    mattermost.example.com;
   return         301 https://$server_name$request_uri;
}
 
server {
   listen 443 ssl;
   server_name mattermost.example.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;
   }
}

Assicurati di personalizzare i valori per l'indirizzo IP del server Mattermost e l'FQDN per

server_name

Salva, esci e attiva l'host virtuale:

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

Testare la configurazione con:

nginx -t

e poi riavviarlo, in questo modo:

systemctl restart nginx

Prova e conclusione

L'ultima cosa da fare è una configurazione “grafica”. Con un browser web, vai all'URL Mattermost.example.com.
Lì, crea un nuovo account. Apparirà una dashboard in cui è possibile creare nuovi team e/o accedere alla console di amministrazione/sistema.
Questo è tutto ciò che serve per installare l'infrastruttura di messaggistica per Mattermost.

Articoli correlati: