Come installare Mattermost su Debian 11
Questo tutorial esiste per queste versioni del sistema operativo
- Debian 11 (Bullseye)
- Debian 10 (Buster)
Su questa pagina
- Prerequisiti
- Installa e configura il server database MariaDB
- Installa Mattermost
- Crea un file di servizio Systemd per Mattermost
- Configura Nginx come proxy inverso per Mattermost
- Accedi all'interfaccia web di Mattermost
- 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.