Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu: Skills Rozpocznij
Sekcja
Administracja Linux

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 -y

Uruchom ponownie serwer, jeśli została zastosowana aktualizacja jądra:

sudo reboot

3. 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-nginx

Sprawdź, czy PostgreSQL i Nginx są uruchomione:

sudo systemctl status postgresql
sudo systemctl status nginx

Oba 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.gz

Krok 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/mattermost

Krok 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 mattermost

Krok 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/mattermost

5. 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 postgres

Krok 2: Otwórz interaktywną powłokę PostgreSQL

psql

Krok 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
exit

6. Konfiguruj Mattermost

Krok 1: Otwórz plik konfiguracyjny Mattermost

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

Krok 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.service

Krok 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.target

Krok 3: Włącz i uruchom usługę Mattermost

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

Krok 4: Sprawdź, czy usługa jest uruchomiona

sudo systemctl status mattermost

Powinieneś 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/mattermost

Krok 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 -t

Oczekiwane wyjście:

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

Krok 5: Uruchom ponownie Nginx

sudo systemctl restart nginx

9. 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.com

Certbot 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-run

Krok 3: Uruchom ponownie Nginx

sudo systemctl restart nginx

Twoja 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 nginx

Przetestuj Mattermost bezpośrednio na porcie 8065

curl -I http://localhost:8065

Powinieneś otrzymać odpowiedź HTTP 200 OK lub przekierowanie.

Ukończ konfigurację opartą na sieci Web

  1. Otwórz przeglądarkę i przejdź do https://your_domain.com
  2. Zostaniesz powitany przez kreatora konfiguracji Mattermost
  3. Utwórz konto administratora
  4. Skonfiguruj swój pierwszy zespół i obszar roboczy
  5. Zaproś członków zespołu i zacznij współpracować

Rozwiązywanie typowych problemów

ProblemPrawdopodobna przyczynaRozwiązanie
Usługa Mattermost nie uruchamia sięNieprawidłowe poświadczenia bazy danych w config.jsonSprawdź dokładnie DataSource string w SqlSettings
502 Bad Gateway w NginxMattermost nie działa na porcie 8065Uruchom sudo systemctl restart mattermost
Błędy połączenia WebSocketBrakujące nagłówki proxy WebSocket w NginxSprawdź blok lokalizacji WebSocket w konfiguracji Nginx
Błędy certyfikatu SSLDomena nie wskazuje na adres IP serweraZaktualizuj rekord DNS A i czekaj na propagację
Połączenie z bazą danych odrzuconePostgreSQL nie działaUruchom 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ę.