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 radice
Passaggio 1:installazione e configurazione del 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.
Collegati al tuo server tramite SSH o accedi al terminale e aggiorna il repository di Ubuntu.
ssh [email protected]
sudo apt-get update
Come utente root, installa PostgreSQL con questo comando apt.
sudo apt-get install postgresql postgresql-contrib
Al termine dell'installazione, accedi all'utente postgres e digita il comando 'psql ' per accedere alla shell postgresql.
su - postgres
psql
Modifica la password 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 l'utente '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 'matteruser ' privilegi 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 un normale utente Linux, non come utente root. Eseguiremo Mattermost come utente 'materia', quindi dobbiamo creare un nuovo utente Linux chiamato 'materia' sul server.
Crea nuova 'materia ' utente e password.
useradd -m -s /bin/bash matter
passwd matter
creato dall'utente 'matter', 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/
Quindi, crea una nuova directory 'data' per memorizzare 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 ascoltare sull'indirizzo IP locale. In 'Impostazioni servizio ', aggiungere l'indirizzo IP di localhost alla configurazione sulla riga 4.
"ListenAddress": "127.0.0.1:8065",
Ora vai su 'SqlSettings ' alla riga 48. Modificare 'NomeDriver ' e 'DataSource ' configurazione per utilizzare il database PostgreSQL con la configurazione seguente:
"DriverName": "postgres",
"DataSource": "postgres://matteruser:[email protected]:5432/mattermostdb?sslmode=disable&connect_timeout=10",
Nota:
utente della materia =utente postgresql.
matterpassword =la password.
mattermostdb =il database.
Salva ed esci.
Al termine, vai alla directory bin ed esegui la cosa più importante.
cd bin/
./platform
Vedrai che la maggior parte è in esecuzione su localhost IP con la porta 8065 ora.
Premi Ctrl + c per uscire.
Passaggio 3 - Configura il servizio Mattermost Systemd
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 di seguito:
[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
Fase 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 di 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 i permessi 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 in 'siti-disponibili ' directory.
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 di dominio nel tuo dominio, salva ed esci.
Attiva l'host virtuale creando un collegamento simbolico al file più importante in 'siti abilitati ' directory.
ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
Testa la configurazione di Nginx e assicurati che non ci siano errori e riavvia nginx.
nginx -t
systemctl restart nginx
Fase 5 - Test
Apri il tuo browser web e visita il nome di dominio più importante, nel mio caso:mattermost.mydomain.com.
Verrai reindirizzato automaticamente alla connessione HTTPS.
Crea prima un nuovo account, fai clic su 'Crea account '.
Quindi puoi vedere il link per creare 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:
Fai clic su "Crea nuovo team ', digita il nome della tua squadra e fai clic su 'Avanti '. Quindi configura l'URL del team e fai clic su "Fine pulsante '.
Alla fine vedrai il dashboard del team.
Chat di squadra importante.
Mattermost con PostgreSQL e il server web Nginx su Ubuntu 16.04 è stato installato correttamente.