15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți
01.11.2024
1 +1

Cum se instalează Mattermost pe Ubuntu: Ghid complet pas cu pas

Mattermost este o platformă puternică, open-source de mesagerie și colaborare în echipă care oferă organizațiilor control complet asupra infrastructurii lor de comunicare. Ca alternativă auto-găzduită la Slack și Microsoft Teams, Mattermost oferă securitate la nivel enterprise, proprietate completă a datelor și personalizare extinsă — toate acestea fără costuri recurente de abonament SaaS.

Acest ghid cuprinzător vă ghidează prin fiecare etapă a instalării și configurării Mattermost pe un server Ubuntu, inclusiv configurarea bazei de date PostgreSQL, configurarea proxy-ului invers Nginx și integrarea certificatelor SSL.

Cuprins

  1. Condiții preliminare
  2. Actualizați sistemul dvs.
  3. Instalați dependențele necesare
  4. Descărcați și instalați Mattermost
  5. Configurați baza de date PostgreSQL
  6. Configurați Mattermost
  7. Creați un serviciu Systemd
  8. Configurați Nginx ca proxy invers
  9. Securizați Mattermost cu SSL (HTTPS)
  10. Verificare finală

1. Condiții preliminare

Înainte de a începe, asigurați-vă că următoarele cerințe sunt îndeplinite:

  • Un server care rulează Ubuntu 20.04 sau Ubuntu 22.04 LTS (Ubuntu 18.04 a ajuns la sfârșitul vieții și nu este recomandat pentru producție)
  • Privilegii sudo sau root pe server
  • Un nume de domeniu indicat către adresa IP a serverului dvs. (recomandat cu tărie pentru implementări în producție)
  • Hardware minim: 1 vCPU, 2 GB RAM, 10 GB spațiu pe disc (pentru echipe mici); scalați pentru implementări mai mari

> Sfat de găzduire: Pentru o implementare lină a Mattermost, luați în considerare un plan fiabil de VPS Hosting de la AlexHost. Cu stocare SSD, acces complet root și timp de activitate garantat, instanțele VPS AlexHost sunt ideale pentru instrumente de colaborare auto-găzduite.

2. Actualizați sistemul dvs.

Întotdeauna începeți prin reîmprospătarea indexului pachetelor și aplicarea tuturor actualizărilor de securitate și sistem în așteptare:

sudo apt update
sudo apt upgrade -y

Reporniți serverul dacă a fost aplicată o actualizare a nucleului:

sudo reboot

3. Instalați dependențele necesare

Mattermost depinde de trei componente cheie: PostgreSQL (bază de date), Nginx (proxy invers) și Certbot (gestionare certificat SSL).

Instalați toate pachetele necesare într-un singur pas:

sudo apt install -y postgresql postgresql-contrib
sudo apt install -y nginx
sudo apt install -y certbot python3-certbot-nginx

Verificați că PostgreSQL și Nginx rulează:

sudo systemctl status postgresql
sudo systemctl status nginx

Ambele servicii ar trebui să arate active (running).

4. Descărcați și instalați Mattermost

Pasul 1: Descărcați cea mai recentă versiune Mattermost

Vizitați pagina oficială de versiuni Mattermost pentru a găsi cea mai recentă versiune stabilă. Utilizați wget pentru a o descărca direct pe serverul dvs.:

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

> Notă: Înlocuiți 9.5.0 cu cel mai recent număr de versiune disponibil. Utilizați întotdeauna cea mai recentă versiune stabilă pentru patch-uri de securitate și caracteristici noi.

Pasul 2: Extrageți arhiva

tar -xvzf mattermost-team-9.5.0-linux-amd64.tar.gz

Pasul 3: Mutați Mattermost în directorul sistemului

Mutați folderul extras în /opt, care este locația standard Linux pentru software terț opțional:

sudo mv mattermost /opt/mattermost

Pasul 4: Creați un utilizator dedicat Mattermost de sistem

Rularea Mattermost ca utilizator dedicat, neprivilegiat este o practică critică de securitate:

sudo useradd -r -m -d /opt/mattermost -s /bin/false mattermost

Pasul 5: Creați directorul de date și setați permisiunile

sudo mkdir -p /opt/mattermost/data
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R 750 /opt/mattermost

5. Configurați baza de date PostgreSQL

Mattermost necesită o bază de date PostgreSQL dedicată și un utilizator. Urmați acești pași cu atenție.

Pasul 1: Treceți la utilizatorul de sistem PostgreSQL

sudo -i -u postgres

Pasul 2: Deschideți shell-ul interactiv PostgreSQL

psql

Pasul 3: Creați baza de date, utilizatorul și acordați privilegii

Executați următoarele comenzi SQL una câte una:

CREATE DATABASE mattermost_db;
CREATE USER mattermost WITH PASSWORD 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON DATABASE mattermost_db TO mattermost;

> Notă de securitate: Înlocuiți YourStrongPassword123! cu o parolă puternică și unică. Utilizați un manager de parole pentru a o genera și a o stoca în siguranță.

Pentru PostgreSQL 15 și versiuni ulterioare, trebuie să acordați și privilegii de schemă:

c mattermost_db
GRANT ALL ON SCHEMA public TO mattermost;

Pasul 4: Ieșiți din shell-ul PostgreSQL și reveniți la utilizatorul dvs.

q
exit

6. Configurați Mattermost

Pasul 1: Deschideți fișierul de configurare Mattermost

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

Pasul 2: Actualizați setările de conexiune la baza de date

Localizați blocul SqlSettings și actualizați-l cu credențialele PostgreSQL:

"SqlSettings": {
    "DriverName": "postgres",
    "DataSource": "postgres://mattermost:YourStrongPassword123!@localhost:5432/mattermost_db?sslmode=disable&connect_timeout=10",
    "DataSourceReplicas": [],
    "DataSourceSearchReplicas": [],
    "MaxIdleConns": 20,
    "ConnMaxLifetimeMilliseconds": 3600000,
    "MaxOpenConns": 300,
    "Trace": false,
    "AtRestEncryptKey": "",
    "QueryTimeout": 30
}

Pasul 3: Configurați URL-ul site-ului

Găsiți blocul ServiceSettings și setați domeniul dvs.:

"ServiceSettings": {
    "SiteURL": "https://your_domain.com",
    ...
}

Înlocuiți your_domain.com cu numele de domeniu real.

Pasul 4: Salvați și ieșiți

Apăsați Ctrl+X, apoi Y, apoi Enter pentru a salva și a închide fișierul.

7. Creați un serviciu Systemd

Rularea Mattermost ca serviciu systemd asigură că se pornește automat la boot și se repornește la eșec — esențial pentru orice implementare în producție.

Pasul 1: Creați fișierul de serviciu

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

Pasul 2: Adăugați configurația serviciului

Lipiți următorul conținut:

[Unit]
Description=Mattermost Team Messaging Server
After=network.target postgresql.service
Wants=postgresql.service

[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

Pasul 3: Activați și porniți serviciul Mattermost

sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermost

Pasul 4: Verificați că serviciul rulează

sudo systemctl status mattermost

Ar trebui să vedeți active (running). Mattermost ascultă pe portul 8065 în mod implicit.

8. Configurați Nginx ca proxy invers

Nginx acționează ca proxy invers, redirecționând traficul HTTP/HTTPS de intrare de la porturile 80/443 la portul intern 8065 al Mattermost. Aceasta permite și suportul WebSocket, pe care Mattermost îl necesită pentru mesagerie în timp real.

Pasul 1: Creați fișierul de configurare Nginx

sudo nano /etc/nginx/sites-available/mattermost

Pasul 2: Adăugați configurația proxy-ului invers

upstream backend {
    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 your_domain.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;
        proxy_read_timeout 600s;
        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_pass http://backend;
    }
}

Înlocuiți your_domain.com cu numele de domeniu real.

Pasul 3: Activați configurația site-ului

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

Pasul 4: Testați configurația Nginx pentru erori de sintaxă

sudo nginx -t

Rezultat așteptat:

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

Pasul 5: Reporniți Nginx

sudo systemctl restart nginx

9. Securizați Mattermost cu SSL (HTTPS)

Rularea Mattermost peste HTTPS este obligatorie pentru orice mediu de producție. Aceasta criptează toate comunicațiile dintre utilizatori și serverul dvs., protejând credențialele și mesajele de interceptare.

> SSL ușor: AlexHost oferă Certificatele SSL accesibile pentru toate tipurile de site-uri web și aplicații. Alternativ, utilizați metoda gratuită Let's Encrypt de mai jos.

Pasul 1: Obțineți un certificat SSL gratuit cu Certbot

sudo certbot --nginx -d your_domain.com

Certbot va:

  • Verifica proprietatea domeniului
  • Emite un certificat Let's Encrypt
  • Modifică configurația Nginx pentru a activa HTTPS
  • Configurează reînnoire automată a certificatului

Pasul 2: Verificați reînnouirea automată

sudo certbot renew --dry-run

Pasul 3: Reporniți Nginx

sudo systemctl restart nginx

Instanța dvs. Mattermost este acum accesibilă la https://your_domain.com.

10. Verificare finală

Verificați că toate serviciile rulează

sudo systemctl status postgresql
sudo systemctl status mattermost
sudo systemctl status nginx

Testați Mattermost direct pe portul 8065

curl -I http://localhost:8065

Ar trebui să primiți un răspuns HTTP 200 OK sau redirecționare.

Completați configurarea bazată pe web

  1. Deschideți browserul și navigați la https://your_domain.com
  2. Veți fi întâmpinat de asistentul de configurare Mattermost
  3. Creați contul de administrator
  4. Configurați prima echipă și spațiul de lucru
  5. Invitați membrii echipei și începeți colaborarea

Rezolvarea problemelor comune

ProblemăCauza probabilăSoluție
Serviciul Mattermost nu porneșteCredențiale de bază de date incorecte în config.jsonVerificați din nou șirul DataSource în SqlSettings
502 Bad Gateway în NginxMattermost
15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți