Distribuzione del server Mattermost su Debian 12 (Bookworm)
Benvenuti in questa guida dettagliata su come distribuire Mattermost Server su Debian 12 (Bookworm). Ma prima dobbiamo sapere cos’è Mattermost.
Mattermost è un software di collaborazione open source preferito dalla maggior parte dei team tecnici e operativi in tutto il mondo. È progettato per un gran numero di utenti simultanei che lavorano in ambienti con complessi requisiti di sicurezza e affidabilità a livello nazionale. Con Mattermost puoi stabilire facilmente la comunicazione tra individui utilizzando chat, chiamate vocali e videochiamate. Alcuni dei concorrenti popolari di Mattermost sono MS Teams e Slack.
Ciò che lo rende preferito rispetto ad altri strumenti sono le interessanti funzionalità che offre. Questi includono:
- È completamente estensibile e offre supporto per integrazioni di terze parti
- La risoluzione degli incidenti che rende la risoluzione degli incidenti rapida e rapida
- Supporta l'archiviazione dei documenti
- È multipiattaforma, può essere eseguito su sistemi operativi Windows, Android, Linux e Mac
- Supporta l'importazione e l'esportazione dei dati
- Offre funzionalità di trascinamento della selezione
- Offre il monitoraggio delle prestazioni delle applicazioni e della rete.
- Fornisce la gestione e l'orchestrazione del flusso di lavoro.
- Fornisce avvisi/notifiche
Requisiti di installazione
Per questa guida è necessario avere:
- Debian 12 (Bookworm) con 1 vCPU/core con 2 GB di RAM (supporta fino a 1.000 utenti)
- Server database: PostgreSQL v11+
- Utente con privilegi sudo.
- Un nome di dominio completo (facoltativo per i certificati SSL)
Seguire i passaggi seguenti per distribuire il server Mattermost su Debian 12 (Bookworm).
Passaggio 1: installare il server database PostgreSQL
La prima cosa che dobbiamo fare è assicurarci che sia configurato un server database per Mattermost. Il server database consigliato per Mattermost è PostgreSQL v11 e versioni successive.
Per installarlo utilizzare i comandi:
sudo apt update
sudo apt install postgresql postgresql-contrib -y
Verifica se il servizio è in esecuzione:
$ systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: active (exited) since Mon 2023-08-14 03:49:03 EDT; 29s ago
Main PID: 63061 (code=exited, status=0/SUCCESS)
CPU: 1ms
Assicurarsi che il servizio sia abilitato per l'esecuzione all'avvio del sistema
sudo systemctl enable postgresql
Accedi alla shell con il comando:
sudo -u postgres psql
Creare un database e un utente per Matermost:
CREATE USER mmuser WITH PASSWORD 'P@ssw0rd!';
CREATE DATABASE mattermost OWNER mmuser;
\q
Passaggio 2: installa Mattermost Server
Una volta installato e configurato il server database, dobbiamo scaricare Mattermost Server. Ottieni l'ultima versione disponibile dalla pagina di download ufficiale di Mattermost.
Scarica l'ultimo Tarball disponibile. Questo può essere fatto esportando la versione richiesta:
VER=8.0.1
Estrai l'archivio utilizzando:
wget https://releases.mattermost.com/$VER/mattermost-$VER-linux-amd64.tar.gz
Una volta scaricato, estrai l'archivio:
tar -xvzf mattermost*.tar.gz
Sposta il file nella directory /opt:
sudo mv mattermost /opt
La prossima cosa è creare una directory di archiviazione per rendere persistenti i dati.
sudo mkdir /opt/mattermost/data
Crea un utente e un gruppo dedicati per Mattermost:
sudo useradd --system --user-group mattermost
Imposta le autorizzazioni richieste per la directory:
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost
Ora effettueremo le configurazioni per Mattermost:
sudo vim /opt/mattermost/config/config.json
Nel file, aggiungi i crediti del tuo database come mostrato nella sezione Impostazioni SQL. Ricordarsi di fornire l'utente creato, la password e il nome del database.
"SqlSettings": {
"DriverName": "postgres",
"DataSource": "postgres://mmuser:P@ssw0rd!@localhost/mattermost?sslmode=disable&connect_timeout=10&binary_parameters=yes",
"DataSourceReplicas": [],
"DataSourceSearchReplicas": [],
"MaxIdleConns": 20,
"ConnMaxLifetimeMilliseconds": 3600000,
"ConnMaxIdleTimeMilliseconds": 300000,
"MaxOpenConns": 300,
"Trace": false,
"AtRestEncryptKey": "",
"QueryTimeout": 30,
"DisableDatabaseSearch": false,
.........
},
Salva le modifiche apportate e verifica se tutto è a posto:
cd /opt/mattermost
sudo -u mattermost bin/mattermost
Output di esempio:
.......
{"timestamp":"2023-08-14 04:02:16.315 -04:00","level":"info","msg":"rtc: server is listening on udp 127.0.0.1:8443","caller":"app/plugin_api.go:973","plugin_id":"com.mattermost.calls","origin":"main.(*logger).Info log.go:95"}
{"timestamp":"2023-08-14 04:02:16.316 -04:00","level":"info","msg":"rtc: server is listening on udp 192.168.200.56:8443","caller":"app/plugin_api.go:973","plugin_id":"com.mattermost.calls","origin":"main.(*logger).Info log.go:95"}
{"timestamp":"2023-08-14 04:02:16.317 -04:00","level":"info","msg":"rtc: server is listening on udp 192.168.200.175:8443","caller":"app/plugin_api.go:973","plugin_id":"com.mattermost.calls","origin":"main.(*logger).Info log.go:95"}
{"timestamp":"2023-08-14 04:02:16.317 -04:00","level":"info","msg":"rtc: server is listening on udp 10.244.2.1:8443","caller":"app/plugin_api.go:973","plugin_id":"com.mattermost.calls","origin":"main.(*logger).Info log.go:95"}
{"timestamp":"2023-08-14 04:02:16.318 -04:00","level":"info","msg":"Listening TCP on 0.0.0.0:8443","caller":"app/plugin_api.go:973","plugin_id":"com.mattermost.calls","origin":"main.(*logger).Info log.go:95"}
{"timestamp":"2023-08-14 04:02:16.334 -04:00","level":"info","msg":"Starting Server...","caller":"app/server.go:912"}
{"timestamp":"2023-08-14 04:02:16.334 -04:00","level":"info","msg":"Server is listening on [::]:8065","caller":"app/server.go:988","address":"[::]:8065"}
Ciò dimostra che Mattermost sta funzionando e ascoltando le connessioni sulla porta 8065(la porta predefinita). Per interrompere il servizio, premi Ctrl+C quindi esegui il comando:
sudo killall -9 mattermost
Passaggio 3: creare l'unità Mattermost Systemd
Per gestire il servizio Mattermost utilizzando systemd, dobbiamo creare un file di servizio.
cat <<EOF | sudo tee /lib/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=network.target
[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target
EOF
Ricaricare il systemd utilizzando il comando:
sudo systemctl daemon-reload
Avvia e abilita il servizio:
sudo systemctl start mattermost.service
sudo systemctl enable mattermost.service
Controlla lo stato del servizio:
$ systemctl status mattermost.service
●mattermost.service - Mattermost
Loaded: loaded (/lib/systemd/system/mattermost.service; enabled; preset: enabled)
Active: active (running) since Mon 2023-08-14 04:07:42 EDT; 10s ago
Main PID: 63819 (mattermost)
Tasks: 26 (limit: 4623)
Memory: 290.0M
CPU: 6.237s
CGroup: /system.slice/mattermost.service
├─63819 /opt/mattermost/bin/mattermost
├─63833 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64
├─63843 plugins/com.mattermost.calls/server/dist/plugin-linux-amd64
└─63849 plugins/playbooks/server/dist/plugin-linux-amd64
Se hai un firewall abilitato, consenti il passaggio della porta:
sudo ufw allow 8065
Passaggio 4: accedi all'interfaccia Web Mattermost
Ora che Mattermost è stato installato e avviato, puoi accedere alla sua interfaccia web utilizzando l'URL http://IP_Address:8065 o http://domain_name:8065
Hai la possibilità di utilizzare un'app desktop o continuare con l'interfaccia web. Qui procederemo con l'interfaccia utente web. Crea un account utente fornendo i dettagli richiesti.
Imposta il nome della tua organizzazione
Scegli gli strumenti che utilizzi nel tuo ambiente.
Ti verrà fornito un collegamento per invitare i membri nel team.
Questo è tutto! Ora avrai Mattermost pronto per l'uso.
Passaggio 5: Proteggi la cosa più importante con Let's Encrypt
Esistono due modi per proteggere Mattermost con i certificati SSL. Questi sono:
- Configurazione di TLS sul server Mattermost.
- Utilizza un proxy come NGINX e configura TLS sul proxy.
Per questa guida utilizzeremo un proxy, consigliato se hai più di 200 utenti per ottenere prestazioni migliori. Questo metodo fornisce anche log di richieste HTTP standard.
Installa il proxy Nginx su Debian 12 usando il comando:
sudo apt install nginx -y
Una volta installato, configura un file host virtuali:
sudo vim /etc/nginx/conf.d/mattermost.conf
Nel file, aggiungi le righe seguenti:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name mattermost.computingforgeeks.com;
location / {
proxy_pass http://localhost:8065/;
index index.html index.htm;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
Disabilita il sito nginx predefinito;
sudo rm -rf /etc/nginx/sites-enabled/default
Salva il file e riavvia nginx:
sudo systemctl restart nginx
Una volta creato un host virtuale, installa gli strumenti necessari per generare certificati con Let's Encrypt.
sudo apt install certbot python3-certbot-nginx
Emetti i certificati SSL attendibili per il nome di dominio catturato nel tuo file host virtuale:
sudo certbot --nginx
Procedere come mostrato:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): Enter a valid Email address here
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
Account registered.
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: mattermost.computingforgeeks.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Requesting a certificate for mattermost.computingforgeeks.com
Performing the following challenges:
http-01 challenge for mattermost.computingforgeeks.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/mattermost.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/mattermost.conf
Successfully received certificate.
Certificate is saved at: a2enmod ssl
/etc/letsencrypt/live/mattermost.computingforgeeks.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/mattermost.computingforgeeks.com/privkey.pem
This certificate expires on 2022-01-09.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
I certificati SSL verranno aggiunti automaticamente al tuo file conf. Consenti HTTPS attraverso il firewall:
sudo ufw allow 443
Riavviare il servizio:
sudo systemctl restart nginx
Ora accedi al servizio tramite HTTPS utilizzando l'URL https://domain_name
Passaggio 6: installa e utilizza Mattermost Desktop
Mattermost prevede due modalità di accesso. Puoi anche installare e utilizzare un'app desktop. Esistono app desktop per diversi sistemi operativi, come riportato nella pagina delle app desktop Mattermost. In questa guida ti mostrerò come scaricare e installare l'app su sistemi Linux.
Utilizza i comandi per installare il desktop Mattermost
- Su Debian/Ubuntu
curl -o- https://deb.packages.mattermost.com/setup-repo.sh | sudo bash
sudo apt update && sudo apt install mattermost-desktop -y
- Su RHEL/CentOS/Rocky Linux, devi scaricare il pacchetto RPM più recente.
Esporta la versione RPM:
VER=5.4.0
Estrai e installa il pacchetto RPM:
##For 64-bit
wget https://releases.mattermost.com/desktop/$VER/mattermost-desktop-$VER-linux-x86_64.rpm
sudo rpm -u mattermost-desktop-$VER-linux-x86_64.rpm
##For 32-Bit
wget https://releases.mattermost.com/desktop/$VER/mattermost-desktop-$VER-linux-i686.rpm
sudo rpm -u mattermost-desktop-$VER-linux-i686.rpm
Una volta installata, avvia l'app desktop dal menu App;
Connettiti al tuo server Mattermost fornendo l'URL del server (consigliato HTTPS) e il nome visualizzato
Accedi al server.
Una volta connesso, vedrai questo.
Ecco!
Abbiamo illustrato con successo come distribuire Mattermost Server su Debian 12 (Bookworm). Spero che questo sia stato di grande importanza per te.
Scopri di più sulla nostra pagina:
- Installa e configura Mattermost su un cluster Kubernetes
- Come eseguire il server Mattermost nei contenitori Docker
- Installa Mattermost Server su CentOS 8|RHEL 8
- Installa Mattermost Server su Ubuntu 22.04|20.04|18.04