GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare il sistema di messaggistica del team Mattermost su Debian 10

Mattermost è un sistema di messaggistica open source scritto nei linguaggi di programmazione Golang e React. È un'alternativa slack, possiamo usarla per 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 mostreremo come installare Mattermost su Debian Buster 10. Installeremo Mattermost con il server di database MySQL, il server web Nginx ed eseguiremo Mattermost come servizio Systemd sull'ultima versione di Debian Buster 10.

Prerequisito

Per questo tutorial, testeremo l'installazione di Mattermost su Debian 10 con 2 GB di RAM, 25 spazio libero su disco e 2 CPU.

Cosa faremo?

  • Installa il server MySQL
  • Crea database MySQL per Mattermost
  • Aggiungi utente di sistema e scarica Mattermost
  • Configura Mattermost
  • Imposta Mattermost come servizio Systemd
  • Genera SSL Letsencrypt
  • Installa e configura Nginx come proxy inverso
  • Test

Passaggio 1:installazione del database MySQL

Innanzitutto, installeremo MySQL Server 8.0 dal repository ufficiale sul nostro server Debian. Sp, aggiungeremo il repository MySQL ufficiale e installeremo i pacchetti MySQL.

Installa lo strumento 'gnupg2' sul server Debian usando il comando apt di seguito.

sudo apt install curl wget gnupg2

Scarica e aggiungi il repository MySQL per il sistema Debian usando il comando seguente.

wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
dpkg -i mysql-apt-config_0.8.13-1_all.deb

Ora aggiorna tutti i repository Debian e installa i pacchetti di MySQL Server.

sudo apt update
sudo apt install mysql-server -y

Durante l'installazione di MySQL Server, ti verrà chiesto di configurare la password di root per il tuo server MySQL.

Digita la tua password di root per MySQL e ripetila.

Una volta completata l'installazione, avvia il servizio MySQL e aggiungilo al

systemctl start mysql
systemctl enable mysql

Di conseguenza, MySQL Server è ora installato su Debian Buster 10. E la password di root per MySQL Server è stata configurata.

Passaggio 2:crea un database MySQL per Mattermost

Per impostazione predefinita, il supporto Mattermost di due driver di database, i database PostgreSQL e MySQL. E per questo tutorial, useremo MySQL come database predefinito per Mattermost.

In questo passaggio creeremo un nuovo database e un nuovo utente per l'installazione di Mattermost.

Accedi alla shell MySQL utilizzando il tuo utente root e la password come di seguito.

mysql -u root -p

Ora crea un nuovo database e un nuovo utente per Mattermost. Creeremo un nuovo database 'mattermost' con l'utente 'mmuser' e la password 'mmuser-password'.

create database mattermost;
create user [email protected] identified by 'mmuser-password';
grant all privileges on mattermost.* to [email protected];
flush privileges;

Ora digita 'exit' per uscire dalla shell MySQL.

Di conseguenza, sono stati creati il ​​database MySQL e l'utente per l'installazione di Mattermost.

Passaggio 3 - Aggiungi utente e scarica Mattermost

In questo passaggio creeremo un nuovo utente di sistema e scaricheremo il codice sorgente di Mattermost. Il software Mattermost verrà eseguito sotto l'utente denominato 'mattermost', verrà installato nella directory '/opt/mattermost'.

Crea un nuovo utente di sistema denominato 'mattermost' utilizzando il comando seguente.

useradd --system --user-group mattermost

Ora vai nella directory '/opt' e scarica il codice sorgente Mattermost usando il comando curl qui sotto.

cd /opt/
curl -o mattermost.tar.gz https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz

Estrai il codice sorgente Mattermost e crea una nuova directory 'data'.

tar -xf mattermost.tar.gz
mkdir -p /opt/mattermost/data

Successivamente, cambia la proprietà della directory '/opt/mattermost' con l'utente 'mattermost' e rendila scrivibile.

chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

Di conseguenza, è stato creato l'utente 'mattermost' e il codice sorgente di Mattermost è stato scaricato nella directory '/opt/mattermost'.

Fase 4 - Configura Mattermost

In questo passaggio, imposteremo l'indirizzo di ascolto di Mattermost e il database. Il servizio Mattermost verrà eseguito sull'indirizzo IP locale sulla porta predefinita 8065 e utilizzerà MySQL come sistema di database.

Vai alla directory '/opt/mattermost' e modifica il file di configurazione 'config.json' nella directory 'config'.

cd /opt/mattermost/
vim config/config.json

Nell'opzione "ListenAddress", cambia l'indirizzo IP in "127.0.0.1".

    "ListenAddress": "127.0.0.1:8065",

Uno 'SqlSettings', cambia DriverName in 'mysql' e cambia 'DataSource' con il database MySQL e l'utente che abbiamo creato.

  "SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "dbuser:[email protected](localhost:3306)/dbname?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",    

Salva e chiudi.

Quindi, inizializza l'installazione Mattermost usando il comando seguente.

sudo -u mattermost ./bin/mattermost

Di seguito è riportato il risultato che otterrai.

Di conseguenza, Mattermost è attivo e funzionante sull'indirizzo IP locale '127.0.0.1' con la porta '8065', ora premi il pulsante 'Ctrl+c' per uscire.

Passaggio 5 - Configurazione di Mattermost come servizio

In questo passaggio, configureremo Mattermost come servizio di sistema e verrà eseguito automaticamente all'avvio del sistema dopo l'esecuzione del servizio di database MySQL.

Ora vai nella directory '/lib/systemd/system' e crea un nuovo file di servizio 'mattermost.service'.

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

Ora incolla la seguente configurazione al suo interno.

[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service

[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Salva e chiudi.

Quindi, ricarica il systemd manager sul sistema Debian.

systemctl daemon-reload

Successivamente, avvia il servizio Mattermost e aggiungilo all'avvio del sistema.

systemctl start mattermost
systemctl enable mattermost

Il servizio Mattermost è attivo e funzionante, verificalo utilizzando il comando seguente.

systemctl status mattermost

Di seguito è riportato il risultato che otterrai.

Di conseguenza, il servizio Mattermost è attivo e funzionante sul sistema Debian e verrà eseguito automaticamente all'avvio del sistema.

Passaggio 6 - Installa Certbot Letsencrypt

In questo passaggio, installeremo lo strumento certbot e genereremo SSL Letsencrypt. Proteggeremo l'installazione di Mattermost utilizzando SSL di Letsencrypt.

Installa lo strumento certbot utilizzando il comando apt di seguito.

sudo apt install certbot

Una volta completata l'installazione, genera SSL Letencrypt utilizzando il comando certbot di seguito.

certbot certonly --standalone --agree-tos -m [email protected] -d mattermost.hakase-labs.io

Di conseguenza, i tuoi certificati SSL verranno generati nella directory '/etc/letsencrypt/live/mattermost-hakase-labs.io'.

Passaggio 7 - Installa e configura Nginx come proxy inverso

In questo passaggio, installeremo il server web Nginx e lo configureremo come proxy inverso per il servizio Mattermost.

Installa Nginx usando il comando apt di seguito.

sudo apt install nginx -y

Una volta completata l'installazione, avvia il servizio Nginx e aggiungilo all'avvio del sistema.

systemctl start nginx 
systemctl enable nginx

Il server web Nginx è attivo e funzionante.

Quindi, vai alla directory di configurazione '/etc/nginx' e crea una nuova configurazione di host virtuale per la maggior parte.

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

Modifica il nome di dominio e il percorso dei certificati SSL con il tuo, quindi incolla la configurazione al suo interno.

upstream backend {
   server 127.0.0.1:8065;
   keepalive 32;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
   listen         80;
   server_name    edu.initrc.fun;
   return         301 https://$server_name$request_uri;
}
 
server {
    listen 443 ssl http2;
    server_name    edu.initrc.fun

    ssl on;
    ssl_certificate /etc/letsencrypt/live/edu.initrc.fun/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/edu.initrc.fun/privkey.pem;
    ssl_session_timeout 1d;
    ssl_protocols TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:50m;
    # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
    add_header Strict-Transport-Security max-age=15768000;
    # OCSP Stapling ---
    # fetch OCSP records from URL in ssl_certificate and cache them
    ssl_stapling on;
    ssl_stapling_verify on;

   location ~ /api/v[0-9]+/(users/)?websocket$ {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       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_buffers 256 16k;
       proxy_buffer_size 16k;
       client_body_timeout 60;
       send_timeout 300;
       lingering_timeout 5;
       proxy_connect_timeout 90;
       proxy_send_timeout 300;
       proxy_read_timeout 90s;
       proxy_pass http://backend;
   }

   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       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_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_http_version 1.1;
       proxy_pass http://backend;
   }
}

Salva e chiudi.

Quindi, crea la directory della cache di Nginx e cambia la proprietà di quella directory con l'utente predefinito "www-data".

mkdir -p /var/cache/nginx
chown -R www-data:www-data /var/cache/nginx

Successivamente, attiva l'host virtuale Mattermost, quindi verifica la configurazione di nginx e assicurati che non ci siano errori.

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

Ora riavvia il servizio Nginx usando il comando systemctl di seguito.

systemctl restart nginx

Di conseguenza, l'installazione e la configurazione di Nginx come proxy inverso per Mattermost sono state completate. E siamo pronti per testare l'installazione di Mattermost.

Fase 8 - Test

Apri il tuo browser web e digita il nome di dominio dell'URL di installazione di Mattermost sulla barra degli indirizzi. Il mio è:

https://mattermost.hakase-labs.io/

Ora devi creare un nuovo primo account di Mattermost, questo sarà l'amministratore di Mattermost.

Digita i dettagli del tuo nome utente, email e password e fai clic sul pulsante "Crea account".

Crea una nuova prima squadra su Mattermost.

Digita il nome della tua prima squadra e fai clic su "Avanti".

E l'URL del team sarà il nome del team, fai clic su "Fine" per continuare.

E ti unirai automaticamente al canale predefinito "Off-Topic" e "Town Square".

Di conseguenza, l'installazione di Mattermost su Debian Buster 10 con database MySQL e server web Nginx è stata completata con successo.


Debian
  1. Come installare MySQL 8.0 / 5.7 su Debian 11 / Debian 10

  2. Come installare Gradle su Debian 10

  3. Come installare AnyDesk su Debian 10

  4. Come installare MySQL Server su Debian 9

  5. Come installare MySQL Workbench su Debian 10

Come installare MySQL 8 su Debian 10

Come installare PostgreSQL 14 su Debian 11

Come installare LAMP (Apache, MySQL, PHP) su Debian 10

Come installare webmin su Debian 11

Come installare Mattermost su Debian 11

Come installare Mattermost su Debian 11