Ricerca nel sito web

Come installare Mattermost con PostgreSQL e Nginx su Ubuntu 16.04


Su questa pagina

  1. Passaggio 1 - Installa e configura il database PostgreSQL
  2. Passaggio 2 - Installa e configura Mattermost
  3. Passaggio 3: configurazione del servizio Mattermost Systemd
  4. Passaggio 4 - Installa e configura Nginx
  5. Passaggio 5 - Test
  6. Riferimento

Mattermost è un sistema di messaggistica open source scritto nei linguaggi di programmazione Golang e React. È un'alternativa slack, possiamo creare il nostro servizio di messaggistica come slack o hipchat con esso. Mattermost porta la comunicazione del tuo team in un unico posto e la rende accessibile ovunque. Puoi accedervi dal tuo desktop, dispositivo Android e iPhone.

In questo tutorial, ti guiderò a creare il tuo server Mattermost che utilizza PostgreSQL come sistema di database e Nginx come proxy inverso per Mattermost. Userò Ubuntu 16.04 come sistema operativo.

Prerequisito

  • Ubuntu 16.04 - 64 bit
  • Privilegi di root

Passaggio 1: installare e configurare il database PostgreSQL

Mattermost supporta i database MySQL e PostgreSQL. Useremo PostgreSQL come database principale per questo tutorial. Connettiti al tuo server e aggiorna il repository.

Connettiti al tuo server tramite SSH o accedi al terminale e aggiorna il repository Ubuntu.

ssh 
sudo apt-get update

Come utente root, installa PostgreSQL con questo comando apt.

sudo apt-get install postgresql postgresql-contrib

Al termine dell'installazione, accedere all'utente postgres e digitare il comando psql per accedere alla shell postgresql.

su - postgres
psql

Cambia la password dell'utente postgres con il comando seguente:

\password postgres
Enter new password:

Successivamente, dobbiamo configurare un nuovo database e un nuovo utente per l'installazione di Mattermost. Creerò un nuovo database chiamato mattermostdb e user matteruser con password matterpassword. Scegli una password sicura per la tua installazione.

Crea il nuovo database e utente con la query PostgreSQL di seguito:

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

Concedi i privilegi matteruser al database mattermostdb ed esci.

GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser;
\q

Passaggio 2: installa e configura Mattermost

Installeremo e configureremo Mattermost come normale utente Linux, non come utente root. Eseguiremo Mattermost come materia utente, quindi dobbiamo creare un nuovo utente Linux denominato materia sul server.

Crea nuovo utente materia e password.

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

importa creato dall'utente, ora accedi all'utente e scarica l'ultima versione di Mattermost con wget.

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

Estrai il file Mattermost e vedrai la nuova directory mattermost, inserisci quella directory con il comando cd.

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

Successivamente, crea una nuova directory di dati per archiviare i file utente, quindi modifica il file di configurazione più importante config/config.json con vim.

mkdir data/
vim config/config.json

Eseguiremo mattermost dietro un proxy inverso Nginx, quindi è meglio configurare Mattermost per l'ascolto sull'indirizzo IP locale. Nel blocco ServiceSettings, aggiungi l'indirizzo IP localhost alla configurazione alla riga 4.

"ListenAddress": "127.0.0.1:8065",

Ora vai a SqlSettings alla riga 48. Modifica la configurazione DriverName e DataSource per utilizzare il database PostgreSQL con la seguente configurazione:

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

Nota:

matteruser=utente postgresql.
matterpassword=la password.
mattermostdb=il database.

Salva ed esci.

Al termine, vai alla directory bin ed esegui il file più importante.

cd bin/
./platform

Vedrai che mattermost è in esecuzione su IP localhost con porta 8065 ora.

Premi Ctrl + c per uscire.

Passaggio 3: configurare Mattermost Systemd Service

Vai alla directory di sistema systemd e crea un nuovo file di servizio più importante.

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

Incolla la configurazione qui sotto:

[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

Salva ed esci.

Ricarica il demone systemd e avvia il servizio Mattermost che abbiamo creato sopra.

systemctl daemon-reload
systemctl start mattermost

Assicurati che non ci siano errori. Verifica che il servizio Mattermost sia in esecuzione.

netstat -plntu
systemctl status mattermost

Passaggio 4: installa e configura Nginx

In questo passaggio, installeremo Nginx e configureremo Nginx come proxy inverso per Mattermost. Mapperemo la porta più importante 8056 alla porta HTTP e HTTPS.

Installa Nginx dal repository Ubuntu con questo comando apt.

sudo apt-get install nginx

Ora vai alla directory di configurazione di Nginx e crea la sottodirectory SSL.

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

Genera un nuovo file di certificato SSL autofirmato con OpenSSL e modifica le autorizzazioni della chiave privata.

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

Crea un nuovo file host virtuale per Mattermost nella directory dei siti disponibili.

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

Incolla la configurazione dell'host virtuale di seguito:

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;
   }
}

Cambia il nome del dominio nel tuo dominio, salva ed esci.

Attiva l'host virtuale creando un collegamento simbolico al file più importante nella directory abilitata per i siti.

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

Testa la configurazione di Nginx e assicurati che non ci siano errori, quindi riavvia nginx.

nginx -t
systemctl restart nginx

Passaggio 5: test

Apri il tuo browser web e visita il nome di dominio più importante, nel mio caso: più importante.miodominio.com.

Verrai reindirizzato automaticamente alla connessione HTTPS.

Crea prima un nuovo account, fai clic su Crea account.

Quindi puoi vedere il collegamento per la creazione di nuovi team o per accedere alla console di amministrazione/sistema.

Fai clic su Vai alla console di sistema e vedrai la dashboard della console di sistema di seguito:

Fare clic su Crea nuovo team, digitare il nome del proprio team e fare clic su Avanti. Quindi configurare l'URL del team e fare clic sul pulsante Fine.

Finalmente vedi Team Dashboard.

Mattermost Team Chat.

Mattermost con PostgreSQL e il server Web Nginx su Ubuntu 16.04 è stato installato correttamente.

Riferimento

  • https://docs.mattermost.com/install/prod-debian.html

Articoli correlati: