15%

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
01.11.2024
1 +1

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

  1. Wymagania wstępne
  2. Aktualizacja systemu
  3. Instalacja wymaganych zależności
  4. Pobieranie i instalacja Mattermost
  5. Konfiguracja bazy danych PostgreSQL
  6. Konfiguracja Mattermost
  7. Tworzenie usługi Systemd
  8. Konfiguracja Nginx jako odwrotnego serwera proxy
  9. Zabezpieczenie Mattermost za pomocą SSL (HTTPS)
  10. 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 -y

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

sudo reboot

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

Sprawdź, czy PostgreSQL i Nginx są uruchomione:

sudo systemctl status postgresql
sudo systemctl status nginx

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

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

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

6. Konfiguracja 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 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.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 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/mattermost

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

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

Krok 3: Uruchom ponownie Nginx

sudo systemctl restart nginx

Twoja 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 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 ###PPT_NOTR_49_CODE
15%

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