Jak zainstalować Mattermost na Ubuntu: Kompletny przewodnik krok po kroku
Mattermost to potężna, otwarta platforma do przesyłania wiadomości i współpracy zespołowej, która daje organizacjom pełną kontrolę nad infrastrukturą komunikacyjną. Jako samodzielnie hostowana alternatywa dla Slack i Microsoft Teams, Mattermost oferuje bezpieczeństwo klasy enterprise, pełną własność danych i rozbudowane możliwości dostosowania — wszystko bez powtarzających się kosztów subskrypcji SaaS.
Ten kompleksowy przewodnik przeprowadzi Cię przez każdy etap instalacji i konfiguracji Mattermost na serwerze Ubuntu, w tym konfigurację bazy danych PostgreSQL, konfigurację odwrotnego proxy Nginx i integrację certyfikatów SSL.
1. Wymagania wstępne
Przed rozpoczęciem upewnij się, że spełnione są następujące wymagania:
- Serwer z systemem Ubuntu 20.04 lub Ubuntu 22.04 LTS (Ubuntu 18.04 osiągnęło koniec cyklu życia i nie jest zalecane dla wdrożeń produkcyjnych)
- Uprawnienia sudo lub root na serwerze
- Nazwa domeny wskazująca na adres IP Twojego serwera (zdecydowanie zalecane dla wdrożeń produkcyjnych)
- Minimalna konfiguracja sprzętu: 1 vCPU, 2 GB RAM, 10 GB przestrzeni dyskowej (dla małych zespołów); zwiększ dla większych wdrożeń
> Wskazówka hostingowa: Aby zapewnić płynne wdrożenie Mattermost, rozważ niezawodny plan VPS Hosting od AlexHost. Dzięki magazynowaniu SSD, pełnemu dostępowi root i gwarantowanemu czasowi pracy, instancje VPS AlexHost są idealne dla samodzielnie hostowanych narzędzi do współpracy.
2. Aktualizuj Swój System
Zawsze zacznij od odświeżenia indeksu pakietów i zastosowania wszystkich oczekujących aktualizacji bezpieczeństwa i systemu:
sudo apt update
sudo apt upgrade -yUruchom ponownie serwer, jeśli została zastosowana aktualizacja jądra:
sudo reboot3. Zainstaluj wymagane zależności
Mattermost zależy od trzech kluczowych komponentów: PostgreSQL (baza danych), Nginx (reverse proxy) i Certbot (zarządzanie certyfikatami SSL).
Zainstaluj wszystkie wymagane pakiety w jednym kroku:
sudo apt install -y postgresql postgresql-contrib
sudo apt install -y nginx
sudo apt install -y certbot python3-certbot-nginxSprawdź, czy PostgreSQL i Nginx są uruchomione:
sudo systemctl status postgresql
sudo systemctl status nginxOba usługi powinny wyświetlać active (running).
4. Pobierz i zainstaluj Mattermost
Krok 1: Pobierz najnowszą wersję Mattermost
Odwiedź oficjalną stronę wydań Mattermost, aby znaleźć najnowszą stabilną wersję. Użyj wget aby pobrać ją bezpośrednio na serwer:
wget https://releases.mattermost.com/9.5.0/mattermost-team-9.5.0-linux-amd64.tar.gz> Uwaga: Zastąp 9.5.0 najnowszym dostępnym numerem wersji. Zawsze używaj najnowszej stabilnej wersji dla poprawek bezpieczeństwa i nowych funkcji.
Krok 2: Rozpakuj archiwum
tar -xvzf mattermost-team-9.5.0-linux-amd64.tar.gzKrok 3: Przenieś Mattermost do katalogu systemowego
Przenieś rozpakowany folder do /opt, który jest standardową lokalizacją Linux dla opcjonalnego oprogramowania trzecich stron:
sudo mv mattermost /opt/mattermostKrok 4: Utwórz dedykowanego użytkownika systemowego Mattermost
Uruchamianie Mattermost jako dedykowanego, niepriwilejowanego użytkownika jest krytyczną najlepszą praktyką bezpieczeństwa:
sudo useradd -r -m -d /opt/mattermost -s /bin/false mattermostKrok 5: Utwórz katalog danych i ustaw uprawnienia
sudo mkdir -p /opt/mattermost/data
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R 750 /opt/mattermost5. Skonfiguruj bazę danych PostgreSQL
Mattermost wymaga dedykowanej bazy danych PostgreSQL i użytkownika. Wykonaj poniższe kroki ostrożnie.
Krok 1: Przełącz się na użytkownika systemowego PostgreSQL
sudo -i -u postgresKrok 2: Otwórz interaktywną powłokę PostgreSQL
psqlKrok 3: Utwórz bazę danych, użytkownika i przyznaj uprawnienia
Wykonaj następujące polecenia SQL jedno po drugim:
CREATE DATABASE mattermost_db;
CREATE USER mattermost WITH PASSWORD 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON DATABASE mattermost_db TO mattermost;> Uwaga bezpieczeństwa: Zastąp YourStrongPassword123! silnym, unikalnym hasłem. Użyj menedżera haseł do wygenerowania i bezpiecznego przechowywania go.
W przypadku PostgreSQL 15 i nowszych wersji musisz również przyznać uprawnienia schematu:
c mattermost_db
GRANT ALL ON SCHEMA public TO mattermost;Krok 4: Wyjdź z powłoki PostgreSQL i wróć do swojego użytkownika
q
exit6. Konfiguruj Mattermost
Krok 1: Otwórz plik konfiguracyjny Mattermost
sudo nano /opt/mattermost/config/config.jsonKrok 2: Zaktualizuj ustawienia połączenia bazy danych
Zlokalizuj blok SqlSettings i zaktualizuj go swoimi poświadczeniami 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
}Krok 3: Skonfiguruj adres URL witryny
Znajdź blok ServiceSettings i ustaw swoją domenę:
"ServiceSettings": {
"SiteURL": "https://your_domain.com",
...
}Zastąp your_domain.com rzeczywistą nazwą domeny.
Krok 4: Zapisz i wyjdź
Naciśnij Ctrl+X, następnie Y, następnie Enter aby zapisać i zamknąć plik.
7. Utwórz usługę Systemd
Uruchamianie Mattermost jako usługi systemd zapewnia automatyczne uruchomienie podczas rozruchu i ponowne uruchomienie w przypadku awarii — niezbędne dla każdego wdrożenia produkcyjnego.
Krok 1: Utwórz plik usługi
sudo nano /etc/systemd/system/mattermost.serviceKrok 2: Dodaj konfigurację usługi
Wklej następującą zawartość:
[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.targetKrok 3: Włącz i uruchom usługę Mattermost
sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermostKrok 4: Sprawdź, czy usługa jest uruchomiona
sudo systemctl status mattermostPowinieneś zobaczyć active (running). Mattermost nasłuchuje na porcie 8065 domyślnie.
8. Skonfiguruj Nginx jako Reverse Proxy
Nginx działa jako reverse proxy, przekierowując przychodzący ruch HTTP/HTTPS z portu 80/443 do wewnętrznego portu 8065 Mattermost. Umożliwia to również obsługę WebSocket, którą Mattermost wymaga do wiadomości w czasie rzeczywistym.
Krok 1: Utwórz plik konfiguracyjny Nginx
sudo nano /etc/nginx/sites-available/mattermostKrok 2: Dodaj konfigurację 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;
}
}Zastąp your_domain.com swoją rzeczywistą nazwą domeny.
Krok 3: Włącz konfigurację witryny
sudo ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/Krok 4: Przetestuj konfigurację Nginx pod kątem błędów składni
sudo nginx -tOczekiwane wyjście:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulKrok 5: Uruchom ponownie Nginx
sudo systemctl restart nginx9. Zabezpiecz Mattermost za pomocą SSL (HTTPS)
Uruchamianie Mattermost przez HTTPS jest obowiązkowe w każdym środowisku produkcyjnym. Szyfruje całą komunikację między użytkownikami a serwerem, chroniąc poświadczenia i wiadomości przed przechwyceniem.
> SSL Made Easy: AlexHost oferuje niedrogie Certyfikaty SSL dla wszystkich typów stron internetowych i aplikacji. Alternatywnie, użyj poniższej bezpłatnej metody Let’s Encrypt.
Krok 1: Uzyskaj bezpłatny certyfikat SSL za pomocą Certbot
sudo certbot --nginx -d your_domain.comCertbot automatycznie:
- Zweryfikuje własność domeny
- Wyda certyfikat Let’s Encrypt
- Zmodyfikuje konfigurację Nginx, aby włączyć HTTPS
- Skonfiguruje automatyczne odnawianie certyfikatu
Krok 2: Zweryfikuj automatyczne odnawianie
sudo certbot renew --dry-runKrok 3: Uruchom ponownie Nginx
sudo systemctl restart nginxTwoja instancja Mattermost jest teraz dostępna pod adresem https://your_domain.com.
10. Ostateczna weryfikacja
Sprawdź, czy wszystkie usługi są uruchomione
sudo systemctl status postgresql
sudo systemctl status mattermost
sudo systemctl status nginxPrzetestuj Mattermost bezpośrednio na porcie 8065
curl -I http://localhost:8065Powinieneś otrzymać odpowiedź HTTP 200 OK lub przekierowanie.
Ukończ konfigurację opartą na sieci Web
- Otwórz przeglądarkę i przejdź do
https://your_domain.com - Zostaniesz powitany przez kreatora konfiguracji Mattermost
- Utwórz konto administratora
- Skonfiguruj swój pierwszy zespół i obszar roboczy
- Zaproś członków zespołu i zacznij współpracować
Rozwiązywanie typowych problemów
| Problem | Prawdopodobna przyczyna | Rozwiązanie |
|---|---|---|
| Usługa Mattermost nie uruchamia się | Nieprawidłowe poświadczenia bazy danych w config.json | Sprawdź dokładnie DataSource string w SqlSettings |
| 502 Bad Gateway w Nginx | Mattermost nie działa na porcie 8065 | Uruchom sudo systemctl restart mattermost |
| Błędy połączenia WebSocket | Brakujące nagłówki proxy WebSocket w Nginx | Sprawdź blok lokalizacji WebSocket w konfiguracji Nginx |
| Błędy certyfikatu SSL | Domena nie wskazuje na adres IP serwera | Zaktualizuj rekord DNS A i czekaj na propagację |
| Połączenie z bazą danych odrzucone | PostgreSQL nie działa | Uruchom sudo systemctl start postgresql |
Dlaczego wybrać niezawodny host dla Mattermost?
Wydajność i niezawodność Twojej instancji Mattermost zależą w dużej mierze od podstawowej infrastruktury. Dla małych i średnich zespołów dobrze skonfigurowany VPS jest idealnym wyborem. Dla większych organizacji z dużymi wolumenami wiadomości rozważ uaktualnienie do Serwera Dedykowanego dla maksymalnej wydajności, izolacji i kontroli.
Jeśli potrzebujesz nazwy domeny dla wdrożenia Mattermost, AlexHost oferuje konkurencyjne Rejestrowanie Domen z pełnym zarządzaniem DNS. A jeśli uruchamiasz wiele usług obok Mattermost, Hosting Współdzielony lub VPS z cPanel mogą uprościć zarządzanie dzięki intuicyjnemu panelowi sterowania.
Podsumowanie
Pomyślnie zainstalowałeś i skonfigurowałeś Mattermost na Ubuntu z:
- ✅ PostgreSQL jako bazą danych zaplecza
- ✅ Nginx jako odwrotnym proxy klasy produkcyjnej z obsługą WebSocket
- ✅ Let’s Encrypt SSL dla szyfrowanych połączeń HTTPS
- ✅ Usługą systemd do automatycznego uruchamiania i odzyskiwania po awarii
- ✅ Odpowiednimi uprawnieniami plików i dedykowanym użytkownikiem systemowym dla bezpieczeństwa
Mattermost jest teraz gotowy do pełnienia roli prywatnego, samodzielnie hostowanego centrum komunikacji dla Twojego zespołu — w pełni pod Twoją kontrolą, bez wycieku danych poza Twoją infrastrukturę.
na wszystkich usługach hostingowych