Ricerca nel sito web

Come installare Mattermost su Debian 11


Questo tutorial esiste per queste versioni del sistema operativo

  • Debian 11 (Bullseye)
  • Debian 10 (Buster)

Su questa pagina

  1. Prerequisiti
  2. Installa e configura il server database MariaDB
  3. Installa Mattermost
  4. Crea un file di servizio Systemd per Mattermost
  5. Configura Nginx come proxy inverso per Mattermost
  6. Accedi all'interfaccia web di Mattermost
  7. Conclusione

Mattermost è una piattaforma di collaborazione e messaggistica gratuita e open source creata pensando alla sicurezza. È un'alternativa a Discord o Slack e offre molte funzioni utili tra cui messaggistica uno a uno, cronologia di ricerca illimitata e funzionalità di condivisione di file, autorizzazione a due fattori e notifiche. È un servizio di chat online self-hosted scritto in Golang e React. È appositamente progettato per organizzazioni e aziende e consente ai team di comunicare in modo sicuro da qualsiasi luogo.

In questo tutorial, ti mostreremo come installare il server Mattermost Chat su Debian 11.

Prerequisiti

  • Un server che esegue Debian 11.
  • Un nome di dominio valido indicato con l'IP del tuo server.
  • Sul server è configurata una password di root.

Installa e configura il server database MariaDB

Mattermost utilizza MySQL o MariaDB come database back-end. Quindi dovrai installare il server MariaDB sul tuo server. Puoi installarlo usando il seguente comando:

apt-get install mariadb-server -y

Una volta installato MariaDB, avvia il servizio MariaDB e abilitalo per l'avvio al riavvio del sistema:

systemctl start mariadb
systemctl enable mariadb

Successivamente, connettiti alla shell MariaDB con il seguente comando:

mysql

Una volta connesso, crea un database e un utente con il seguente comando:

MariaDB [(none)]> create database mattermost;
MariaDB [(none)]> create user identified by 'password';

Successivamente, concedi tutti i privilegi al database Mattermost con il seguente comando:

MariaDB [(none)]> grant all privileges on mattermost.* to ;

Successivamente, svuota i privilegi ed esci dalla shell MariaDB con il seguente comando:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Una volta terminato, puoi procedere al passaggio successivo.

Installa Mattermost

Innanzitutto, crea un utente dedicato per Mattermost utilizzando il seguente comando:

useradd --system --user-group mattermost

Successivamente, scarica l'ultima versione di Mattermost con il seguente comando:

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

Una volta completato il download, estrai il file scaricato con il seguente comando:

tar -xvzf mattermost-6.0.2-linux-amd64.tar.gz

Successivamente, sposta la directory estratta in /opt con il seguente comando:

mv mattermost /opt

Quindi, crea una directory di dati per mattermost usando il seguente comando:

mkdir /opt/mattermost/data

Successivamente, modifica la proprietà della directory più importante con il seguente comando:

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

Successivamente, modifica il file config.json con il seguente comando:

nano /opt/mattermost/config/config.json

Trova le seguenti righe:

    "DriverName": "postgres",
    "DataSource": "postgres://mmuser:/mattermost_test?sslmode=disable&connect_timeout=10",

E, li ha sostituiti con le seguenti righe secondo le impostazioni del database:

"DriverName": "mysql",
"DataSource": "mattermost:(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

Salva e chiudi il file quando hai finito.

Crea un file di servizio Systemd per Mattermost

Successivamente, dovrai creare un file di servizio systemd per Mattermost. Puoi crearlo usando il seguente comando:

nano /etc/systemd/system/mattermost.service

Aggiungi le seguenti righe:

[Unit]
Description=Mattermost
After=syslog.target network.target mysqld.service

[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
ExecStart=/opt/mattermost/bin/mattermost
PIDFile=/var/spool/mattermost/pid/master.pid
TimeoutStartSec=3600
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Salva e chiudi il file, quindi ricarica il demone systemd per applicare le modifiche:

systemctl daemon-reload

Quindi, avvia Mattermost e abilitalo per l'avvio al riavvio del sistema:

systemctl start mattermost
systemctl enable mattermost

Successivamente, verifica lo stato del Mattermost con il seguente comando:

systemctl status mattermost

Otterrai il seguente output:

? mattermost.service - Mattermost
     Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-11-12 13:56:25 UTC; 4s ago
   Main PID: 2888 (mattermost)
      Tasks: 31 (limit: 4679)
     Memory: 273.3M
        CPU: 12.191s
     CGroup: /system.slice/mattermost.service
             ??2888 /opt/mattermost/bin/mattermost
             ??2915 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64
             ??2925 plugins/playbooks/server/dist/plugin-linux-amd64
             ??2931 plugins/focalboard/server/dist/plugin-linux-amd64

Nov 12 13:56:24 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:24.681 Z","level":"info","msg":"Scheduling next survey for Dec 3, 2>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.064 Z","level":"info","msg":"Post.Message has size restrictions">
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.084 Z","level":"info","msg":"info [2021-11-12 13:56:25.083 Z] co>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.131 Z","level":"info","msg":"\n    -- collation of mattermost's >
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.491 Z","level":"info","msg":"debug [2021-11-12 13:56:25.488 Z] i>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.777 Z","level":"info","msg":"info [2021-11-12 13:56:25.777 Z] Se>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.963 Z","level":"info","msg":"Starting Server...","caller":"app/s>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.964 Z","level":"info","msg":"Server is listening on [::]:8065",">
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.964 Z","level":"info","msg":"Sending systemd READY notification.>
Nov 12 13:56:25 debian11 systemd[1]: Started Mattermost.

Configura Nginx come proxy inverso per Mattermost

Per impostazione predefinita, Mattermost è in ascolto sulla porta 8065. Quindi è una buona idea installare e configurare Nginx come proxy inverso per accedere a Mattermost sulla porta 80. Innanzitutto, installa Nginx con il seguente comando:

apt-get install nginx -y

Una volta installato Nginx, crea un file di configurazione dell'host virtuale Nginx con il seguente comando:

nano /etc/nginx/conf.d/mattermost.conf

Aggiungi le seguenti righe:

upstream mattermost {
   server localhost: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 mattermost.example.com;

   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://mattermost;
   }

   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://mattermost;
   }
}

Salva e chiudi il file, quindi verifica la configurazione di Nginx per eventuali errori di sintassi con il seguente comando:

nginx -t

Dovresti vedere il seguente output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Successivamente, avvia il servizio Nginx per applicare le modifiche:

systemctl start nginx

Puoi anche verificare lo stato di Nginx usando il seguente comando:

systemctl status nginx

Dovresti ottenere il seguente output:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-11-12 13:57:02 UTC; 1min 12s ago
       Docs: man:nginx(8)
    Process: 3384 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 3392 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 3602 (nginx)
      Tasks: 3 (limit: 4679)
     Memory: 6.6M
        CPU: 55ms
     CGroup: /system.slice/nginx.service
             ??3602 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??3604 nginx: worker process
             ??3605 nginx: worker process

Nov 12 13:57:01 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 12 13:57:02 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Nov 12 13:57:02 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

A questo punto, Nginx è installato e configurato come proxy inverso per Mattermost. Ora puoi procedere al passaggio successivo.

Accedi all'interfaccia web di Mattermost

Ora apri il tuo browser web e accedi all'interfaccia web di Mattermost utilizzando l'URL http://mattermost.example.com. Verrai reindirizzato alla seguente pagina:

Fornisci il tuo indirizzo e-mail amministratore, nome utente, password e fai clic sul pulsante Crea account. Dovresti vedere la seguente pagina:

Ora, fai clic su Vai alla console di sistema. Verrai reindirizzato alla dashboard Mattermost come mostrato di seguito:

Conclusione

Congratulazioni! hai installato con successo Mattermost con Nginx come proxy inverso su Debian 11. Ora puoi implementare Mattermost nella tua organizzazione e consentire ai team di comunicare tra loro da qualsiasi luogo.