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
- Condiții preliminare
- Actualizați sistemul dvs.
- Instalați dependențele necesare
- Descărcați și instalați Mattermost
- Configurați baza de date PostgreSQL
- Configurați Mattermost
- Creați un serviciu Systemd
- Configurați Nginx ca proxy invers
- Securizați Mattermost cu SSL (HTTPS)
- 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 -yReporniți serverul dacă a fost aplicată o actualizare a nucleului:
sudo reboot3. 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-nginxVerificați că PostgreSQL și Nginx rulează:
sudo systemctl status postgresql
sudo systemctl status nginxAmbele 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.gzPasul 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/mattermostPasul 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 mattermostPasul 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/mattermost5. 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 postgresPasul 2: Deschideți shell-ul interactiv PostgreSQL
psqlPasul 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
exit6. Configurați Mattermost
Pasul 1: Deschideți fișierul de configurare Mattermost
sudo nano /opt/mattermost/config/config.jsonPasul 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.servicePasul 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.targetPasul 3: Activați și porniți serviciul Mattermost
sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermostPasul 4: Verificați că serviciul rulează
sudo systemctl status mattermostAr 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/mattermostPasul 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 -tRezultat așteptat:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulPasul 5: Reporniți Nginx
sudo systemctl restart nginx9. 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.comCertbot 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-runPasul 3: Reporniți Nginx
sudo systemctl restart nginxInstanț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 nginxTestați Mattermost direct pe portul 8065
curl -I http://localhost:8065Ar trebui să primiți un răspuns HTTP 200 OK sau redirecționare.
Completați configurarea bazată pe web
- Deschideți browserul și navigați la
https://your_domain.com - Veți fi întâmpinat de asistentul de configurare Mattermost
- Creați contul de administrator
- Configurați prima echipă și spațiul de lucru
- Invitați membrii echipei și începeți colaborarea
Rezolvarea problemelor comune
| Problemă | Cauza probabilă | Soluție |
|---|---|---|
| Serviciul Mattermost nu pornește | Credențiale de bază de date incorecte în config.json | Verificați din nou șirul DataSource în SqlSettings |
| 502 Bad Gateway în Nginx | Mattermost |
