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 deplin asupra infrastructurii lor de comunicații. Ca alternativă auto-găzduită la Slack și Microsoft Teams, Mattermost oferă securitate de nivel enterprise, proprietate completă a datelor și personalizare extinsă — toate 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.
1. Condiții prealabile
Înainte de a începe, asigurați-vă că sunt îndeplinite următoarele cerințe:
- 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 care indică 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 VPS Hosting de la AlexHost. Cu stocare SSD, acces complet root și timp de funcționare garantat, instanțele VPS AlexHost sunt ideale pentru instrumente de colaborare auto-găzduite.
2. Actualizați sistemul dumneavoastră
Începeți întotdeauna 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 kernel-ului:
sudo reboot3. Instalați dependențele necesare
Mattermost depinde de trei componente cheie: PostgreSQL (bază de date), Nginx (reverse proxy), și Certbot (gestionarea certificatelor 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 sunt în funcțiune:
sudo systemctl status postgresql
sudo systemctl status nginxAmbele servicii ar trebui să afișeze 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 corecții de securitate și funcții 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 Mattermost dedicat al sistemului
Executarea Mattermost ca utilizator dedicat și 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: Comutaț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 stoca în siguranță.
Pentru PostgreSQL 15 și versiuni mai noi, 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
Step 1: Deschideți fișierul de configurare Mattermost
sudo nano /opt/mattermost/config/config.jsonStep 2: Actualizați setările de conexiune la bază 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
}Step 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.
Step 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 în caz de 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 Reverse Proxy
Nginx acționează ca reverse proxy, redirecționând traficul HTTP/HTTPS de intrare de la portul 80/443 la portul intern 8065 al Mattermost. Aceasta permite, de asemenea, suportul WebSocket, care este necesar pentru Mattermost pentru mesageria în timp real.
Pasul 1: Creați fișierul de configurare Nginx
sudo nano /etc/nginx/sites-available/mattermostPasul 2: Adăugați configurarea Reverse Proxy
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 dvs. de domeniu real.
Pasul 3: Activați configurarea site-ului
sudo ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/Pasul 4: Testați configurarea 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 acreditările și mesajele de interceptare.
> SSL Ușor: AlexHost oferă Certificate SSL accesibile pentru toate tipurile de site-uri ș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 efectua automat:
- Verificarea proprietății domeniului
- Emiterea unui certificat Let’s Encrypt
- Modificarea configurației Nginx pentru a activa HTTPS
- Configurarea reînnoirii automate a certificatului
Pasul 2: Verificați reînnoirea 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 Sunt Active
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 de 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-vă contul de administrator
- Configurați prima echipă și spațiul de lucru
- Invitați membrii echipei și începeți colaborarea
Depanare Probleme Comune
| Problemă | Cauză Probabilă | Soluție |
|---|---|---|
| Serviciul Mattermost nu pornește | Credențiale bază de date incorecte în config.json | Verifică din nou DataSource string în SqlSettings |
| 502 Bad Gateway în Nginx | Mattermost nu rulează pe portul 8065 | Rulează sudo systemctl restart mattermost |
| Erori de conexiune WebSocket | Anteturi proxy WebSocket lipsă în Nginx | Verifică blocul de locație WebSocket în configurația Nginx |
| Erori de certificat SSL | Domeniu neindreptat către IP-ul serverului | Actualizează înregistrarea DNS A și așteaptă propagarea |
| Conexiune bază de date refuzată | PostgreSQL nu rulează | Rulează sudo systemctl start postgresql |
De ce să alegi un host fiabil pentru Mattermost?
Performanța și fiabilitatea instanței tale Mattermost depind în mare măsură de infrastructura subiacentă. Pentru echipe mici și medii, un VPS bine configurat este alegerea ideală. Pentru organizații mai mari cu volume mari de mesaje, ia în considerare upgrade-ul la un Server Dedicat pentru performanță maximă, izolare și control.
Dacă ai nevoie de un nume de domeniu pentru implementarea Mattermost, AlexHost oferă Înregistrare de Domenii competitive cu management DNS complet. Și dacă rulezi mai multe servicii alături de Mattermost, Găzduire Web Partajată sau un VPS cu cPanel pot simplifica managementul cu un panou de control intuitiv.
Rezumat
Ați instalat și configurat cu succes Mattermost pe Ubuntu cu:
- ✅ PostgreSQL ca bază de date backend
- ✅ Nginx ca reverse proxy de nivel producție cu suport WebSocket
- ✅ Let’s Encrypt SSL pentru conexiuni HTTPS criptate
- ✅ Un serviciu systemd pentru pornire automată și recuperare din căderi
- ✅ Permisiuni de fișiere corespunzătoare și un utilizator sistem dedicat pentru securitate
Mattermost este acum gata să servească ca hub de comunicare privat și auto-găzduit pentru echipa dvs. — complet sub controlul dvs., fără ca datele să părăsească infrastructura dvs.
la toate serviciile de găzduire