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 serwera proxy Nginx i integrację certyfikatu SSL.
Spis treści
- Wymagania wstępne
- Aktualizacja systemu
- Instalacja wymaganych zależności
- Pobieranie i instalacja Mattermost
- Konfiguracja bazy danych PostgreSQL
- Konfiguracja Mattermost
- Tworzenie usługi Systemd
- Konfiguracja Nginx jako odwrotnego serwera proxy
- Zabezpieczenie Mattermost za pomocą SSL (HTTPS)
- Weryfikacja końcowa
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 nie jest już wspierana i nie jest zalecana dla wdrożeń produkcyjnych)
- Uprawnienia sudo lub root na serwerze
- Nazwa domeny wskazująca na adres IP serwera (zdecydowanie zalecane dla wdrożeń produkcyjnych)
- Minimalne wymagania sprzętowe: 1 vCPU, 2 GB RAM, 10 GB miejsca na dysku (dla małych zespołów); zwiększ dla większych wdrożeń
> Wskazówka hostingu: Aby uzyskać gładkie 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 współpracy.
2. Aktualizacja systemu
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 zastosowana została aktualizacja jądra:
sudo reboot3. Instalacja wymaganych zależności
Mattermost zależy od trzech kluczowych komponentów: PostgreSQL (baza danych), Nginx (odwrotny serwer 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 nginxObie usługi powinny wyświetlać active (running).
4. Pobieranie i instalacja Mattermost
Krok 1: Pobierz najnowszą wersję Mattermost
Odwiedź oficjalną stronę wydań Mattermost, aby znaleźć najnowszą stabilną wersję. Użyj wget do pobrania jej 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ś wyodrębniony folder do /opt, który jest standardową lokalizacją Linux dla opcjonalnego oprogramowania innych firm:
sudo mv mattermost /opt/mattermostKrok 4: Utwórz dedykowanego użytkownika systemowego Mattermost
Uruchamianie Mattermost jako dedykowanego, nieprivileged użytkownika jest krytyczną 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. Konfiguracja bazy danych PostgreSQL
Mattermost wymaga dedykowanej bazy danych PostgreSQL i użytkownika. Wykonaj te 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 musisz również przyznać uprawnienia schematu:
c mattermost_db
GRANT ALL ON SCHEMA public TO mattermost;Krok 4: Zamknij powłokę PostgreSQL i wróć do swojego użytkownika
q
exit6. Konfiguracja 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 za pomocą poświadczeń 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. Tworzenie usługi 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 domyślnie nasłuchuje na porcie 8065.
8. Konfiguracja Nginx jako odwrotnego serwera proxy
Nginx działa jako odwrotny serwer proxy, przekazując przychodzący ruch HTTP/HTTPS z portów 80/443 do wewnętrznego portu 8065 Mattermost. Umożliwia to również obsługę WebSocket, która jest wymagana przez Mattermost do przesyłania wiadomości w czasie rzeczywistym.
Krok 1: Utwórz plik konfiguracyjny Nginx
sudo nano /etc/nginx/sites-available/mattermostKrok 2: Dodaj konfigurację odwrotnego serwera 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 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. Zabezpieczenie Mattermost za pomocą SSL (HTTPS)
Uruchamianie Mattermost przez HTTPS jest obowiązkowe dla każdego środowiska produkcyjnego. 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 witryn i aplikacji. Alternatywnie użyj bezpłatnej metody Let’s Encrypt poniżej.
Krok 1: Uzyskaj bezpłatny certyfikat SSL za pomocą Certbot
sudo certbot --nginx -d your_domain.comCertbot będzie automatycznie:
- Weryfikować własność domeny
- Wystawiać certyfikat Let’s Encrypt
- Modyfikować konfigurację Nginx w celu włączenia HTTPS
- Konfigurować automatyczne odnawianie certyfikatu
Krok 2: Sprawdź 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. Weryfikacja końcowa
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 ###PPT_NOTR_49_CODE
