Come installare Mattermost con PostgreSQL e Nginx su Ubuntu 16.04
Su questa pagina
- Passaggio 1 - Installa e configura il database PostgreSQL
- Passaggio 2 - Installa e configura Mattermost
- Passaggio 3: configurazione del servizio Mattermost Systemd
- Passaggio 4 - Installa e configura Nginx
- Passaggio 5 - Test
- 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