Ricerca nel sito web

Installa Mattermost Server su Ubuntu 22.04|20.04|18.04


Benvenuti nella guida di oggi su come installare Mattermost Server su Ubuntu 22.04|20.04|18.04 con server database PostgreSQL. Mattermost è un servizio di chat online self-hosted e open source progettato per essere utilizzato come piattaforma di chat interna per aziende e organizzazioni. È una delle principali alternative alla piattaforma Slack Chat.

Per questa guida utilizzeremo il database PostgreSQL e il server web Nginx. Tutti i passaggi sono facili da seguire, quindi rilassati e segui.

Passaggio 1: aggiornamento del sistema

Iniziamo assicurandoci che il nostro sistema sia aggiornato.

sudo apt update
sudo apt -y upgrade
sudo apt -y install wget curl vim

Si consiglia di riavviare il sistema dopo un aggiornamento.

sudo reboot

Imposta il nome host del server corretto:

sudo hostnamectl set-hostname chat.computingforgeeks.com --static

Passaggio 2: installare il server database PostgreSQL

Il passaggio successivo consiste nell'installare il server database PostgreSQL:

sudo apt -y install postgresql postgresql-contrib

Il server PostgreSQL verrà avviato automaticamente dopo l'installazione. Accedi all'account Postgres.

sudo --login --user postgres

Avvia il terminale interattivo PostgreSQL e crea il database/utente Mattermost "mmuser".

psql
CREATE DATABASE mattermost;
CREATE USER mmuser WITH PASSWORD 'StrongDBPassWord';
GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
\q

Esci dall'account Postgres.

exit

Passaggio 3: crea l'utente e il gruppo di sistema più importanti

Dobbiamo impostare un utente di sistema e un gruppo chiamato Mattermost che eseguirà il servizio.

sudo useradd --system --user-group mattermost

Puoi confermare che si tratta di un utente di sistema poiché il suo ID è inferiore a 1000.

$ id mattermost
uid=998(mattermost) gid=998(mattermost) groups=998(mattermost)

Passaggio 4: scarica e installa Mattermost Server

Con il server database configurato, ora puoi scaricare e installare Mattermost. Innanzitutto, visita la pagina dei download di Mattermost per ottenere l'ultima versione.

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

Estrai l'archivio scaricato:

tar xvf mattermost-6.1.0-linux-amd64.tar.gz

Sposta il file estratto nella directory /opt.

sudo mv mattermost /opt

Crea la directory di archiviazione che conterrà tutti i file e le immagini che i tuoi utenti pubblicano su Mattermost.

sudo mkdir /opt/mattermost/data

Imposta la proprietà e le autorizzazioni corrette.

sudo chown -R mattermost:mattermost /opt/mattermost

Concedi i permessi di scrittura al gruppo più importante:

sudo chmod -R g+w /opt/mattermost

Passaggio 5: Configura Mattermost Server

Configura il driver del database nel file /opt/mattermost/config/config.json.

sudo nano /opt/mattermost/config/config.json

Configura le impostazioni del database PostgreSQL come di seguito nella sezione "Impostazioni SQL".

"DriverName": "postgres",
"DataSource": "postgres://mmuser:StrongDBPassWord@localhost:5432/mattermost?sslmode=disable&connect_timeout=10",

Passaggio 6: configurare il servizio Systemd

Crea l'unità di servizio Mattermost Systemd.

sudo vim /etc/systemd/system/mattermost.service

Compila i dati seguenti nel file.

[Unit]
Description=Mattermost
After=network.target
After=postgresql.service
Requires=postgresql.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

Fai in modo che systemd carichi la nuova unità.

sudo systemctl daemon-reload

Avvia e abilita il servizio più importante.

 sudo systemctl start mattermost.service
 sudo systemctl enable mattermost.service

Controlla lo stato del servizio per assicurarti che sia in esecuzione.

$ systemctl status mattermost.service
● mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-08-12 12:15:06 CEST; 7s ago
 Main PID: 4116 (mattermost)
    Tasks: 11 (limit: 4585)
   Memory: 247.1M
   CGroup: /system.slice/mattermost.service
           └─4116 /opt/mattermost/bin/mattermost

Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.0674481,"caller":"mlog/sugar.go:19","msg":"Scheduling next survey for Sep 2,
Aug 12 12:15:06 chat mattermost[4116]: {"level":"error","ts":1565604906.1013212,"caller":"plugin/hclog_adapter.go:60","msg":"reading plugin stderr"
Aug 12 12:15:06 chat mattermost[4116]: {"level":"error","ts":1565604906.1966574,"caller":"mlog/log.go:172","msg":"RPC call OnConfigurationChange to
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.1981738,"caller":"jobs/workers.go:68","msg":"Starting workers"}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.1982753,"caller":"app/server.go:413","msg":"Starting Server..."}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.199372,"caller":"jobs/schedulers.go:72","msg":"Starting schedulers."}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.202546,"caller":"app/server.go:479","msg":"Server is listening on [::]:8065"
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.225944,"caller":"app/web_hub.go:75","msg":"Starting 4 websocket hubs"}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.2512763,"caller":"commands/server.go:105","msg":"Sending systemd READY notif
Aug 12 12:15:06 chat systemd[1]: Started Mattermost.

Verifica che Mattermost sia in esecuzione.

curl http://localhost:8065

Dovresti vedere l'HTML restituito dal server Mattermost.

Passaggio 7: terminare la configurazione di Mattermost Web

Apri il browser e vai all'istanza Mattermost su 8065. Ad esempio 192.168.10.10:8085

Accedere alla console di sistema:

Quindi configura il tuo server in base alla documentazione delle impostazioni di configurazione.

Più configurazioni:

Configura TLS seguendo le istruzioni

Configura l'email seguendo la guida alla configurazione dell'email SMTP

Non dimenticare di riavviare il servizio più importante dopo aver apportato le modifiche.

sudo systemctl restart mattermost

Passaggio 8: configura il server proxy Nginx

In un ambiente di produzione, utilizza un server proxy per una maggiore sicurezza e prestazioni di Mattermost.

# Install nginx
sudo apt -y install nginx

Crea un nuovo file di configurazione per Mattermost.

sudo vim /etc/nginx/conf.d/mattermost.conf

Aggiungi impostazioni di configurazione.

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

Riavvia Nginx.

sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx

Leggi la documentazione di Mattermost per conoscere ulteriori funzionalità che puoi sbloccare e integrazioni con sistemi di terze parti.

Impara l'amministrazione del sistema Linux utilizzando i corsi video:

  • Padronanza di Linux: padroneggia la riga di comando di Linux in 11,5 ore
  • Bootcamp di amministrazione Linux: passa dal principiante all'avanzato
  • Completa il corso di formazione Linux per ottenere il lavoro IT dei tuoi sogni
  • Impara Linux in 5 giorni e fai salire di livello la tua carriera
  • Completa lo scripting della shell Bash Linux con esempi di vita reale

Imparentato.

  • Come installare Rocket.Chat Server su Debian/Ubuntu
  • Installa Zulip Chat Server su Ubuntu/Debian

Articoli correlati: