Mattermost to platforma komunikacyjna typu open source przeznaczona do komunikacji wewnętrznej dla zespołów i organizacji. Obsługuje czaty tekstowe, udostępnianie plików, połączenia wideo i integrację z różnymi usługami innych firm. Mattermost można wdrożyć na własnych serwerach, co zapewnia pełną kontrolę i bezpieczeństwo danych. Jest to alternatywa dla rozwiązań takich jak Slack, z możliwością dostosowania, automatyzacji i integracji z procesami DevOps.
Wymagania
- Serwer wirtualny (VPS) z zainstalowanym systemem Ubuntu 24.04.
- Uprawnienia roota lub konto z sudo.
- (Opcjonalnie) Zdecydowanie zalecamy użycie serwera proxy przed Mattermost w celu obsługi do 200 jednoczesnych użytkowników. Jeśli masz mniej niż 200 jednoczesnych użytkowników, możesz skonfigurować TLS. Jeśli masz więcej niż 200 jednoczesnych użytkowników, będziesz potrzebować serwera proxy, takiego jak NGINX przed Mattermost, aby zarządzać ruchem.
Krok 1: Zaloguj się do serwera przez SSH.
Najpierw należy połączyć się z serwerem przez SSH pod nazwą użytkownika root. Uruchom następujące polecenie, zastępując IP_Address adresem IP serwera i Port_number numerem portu SSH:
ssh root@IP_Address -p Port_number
Aby upewnić się, że masz zainstalowaną prawidłową wersję Ubuntu, uruchom polecenie:
lsb_release -a
Expected Result:
Distributor ID: Ubuntu
Description: Ubuntu 24.04 LTS
Release: 24.04
Codename: noble
Krok 2: Instalacja i konfiguracja bazy danych.
Aktualizacja systemu operacyjnego:
apt update
apt upgrade
Teraz utwórzmy bazę danych PostgreSQL do użytku przez serwer Mattermost. Wpisz polecenie (to polecenie zainstaluje postgresql):
apt install postgresql
Zaloguj się do PostgreSQL:
sudo -u postgres psql
Utwórz bazę danych Mattermost:
CREATE DATABASE mattermost;
Utwórz użytkownika mmuser (użyj bezpieczniejszego hasła zamiast mmuser-password ):
CREATE USER mmuser WITH PASSWORD 'mmuser-password';
Nadanie uprawnień użytkownikowi mmuser:
GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
GRANT ALL ON DATABASE mattermost TO mmuser;
ALTER DATABASE mattermost OWNER TO mmuser;
GRANT USAGE, CREATE ON SCHEMA PUBLIC TO mmuser;
Wyloguj się z PostgreSQL
q
Wprowadź zmiany w pliku pg_hba.conf dające serwerowi Mattermost dostęp do bazy danych PostgreSQL.
Otwórz plik:
nano /etc/postgresql/16/main/pg_hba.conf
Znajdź linie:
local all all peer
host all all 127.0.0.1/32 scram-sha-256
host all all ::1/128 scram-sha-256
Zamień na:
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
Zapisz zmiany, zamknij plik i zaktualizuj konfigurację PostgreSQL:
systemctl reload postgresql
Sprawdź, czy możemy połączyć się z bazą danych z poziomu użytkownika mmuser:
psql --dbname=mattermost --username=mmuser --password
Wpisujemy utworzone przez nas hasło zamiast mmuser-password
Jeśli wszystko zrobiliśmy poprawnie - pojawi się konsola PostgreSQL.
Wyjdź:
q
Krok 3: Pobranie i instalacja serwera Mattermost.
Pobierz najnowszą wersję serwera Mattermost:
wget https://releases.mattermost.com/10.0.1/mattermost-10.0.1-linux-amd64.tar.gz
Rozpakuj:
tar -xvzf mattermost*.gz
Przenieś do katalogu /opt:
mv mattermost /opt
Domyślnie serwer Mattermost korzysta z katalogu /opt/mattermost/data
Utwórz go:
mkdir /opt/mattermost/data
Teraz utwórz grupę i użytkownika mattermost:
useradd --system --user-group mattermost
Nadaj uprawnienia:
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
Krok 4: Utwórz usługę systemową.
Aby zarządzać serwerem Mattermost, utwórzmy usługę systemową.
Otwórz edytor, aby utworzyć plik usługi:
nano /lib/systemd/system/mattermost.service
Otwarty, pusty plik - wypełnij go następującą zawartością:
[Unit]
Description=Mattermost
After=network.target
After=postgresql.service
BindsTo=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
Zaktualizuj konfigurację systemd:
systemctl daemon-reload
Przed uruchomieniem serwera Mattermost należy go skonfigurować.
Utwórz kopię zapasową pliku konfiguracyjnego:
cp /opt/mattermost/config/config.json /opt/mattermost/config/config.defaults.json
Otwórz plik konfiguracyjny serwera Mattermost w edytorze tekstu:
nano /opt/mattermost/config/config.json
Musimy wprowadzić zmiany.
Znajdź:
"DataSource": "postgres://mmuser:@localhost/mattermost_test?sslmode=disableu0026connect_timeout=10u0026binary_parameters=yes"
Zamień na:
"DataSource to "postgres://mmuser: <mmuser-password>@<host-name-or-IP>:5432/<mattermost>?sslmode=disable&connect_timeout=10"
Gdzie.
<mmuser-password> - hasło mmuser dla PostgreSQL.
<host-name-or-IP> - adres IP serwera lub jego nazwa hosta.
<mattermost> - baza danych PostgreSQL.
Zapisz plik i zamknij edytor.
Aktywuj usługę do uruchamiania przy starcie systemu i uruchom ją teraz:
systemctl enable --now mattermost
Użyj polecenia, aby sprawdzić status serwera:
systemctl status mattermost
Krok 5: Połącz się z serwerem Mattermost.
Otwórz <adres IP serwera lub jego nazwę hosta> w przeglądarce : 8065
Postępuj zgodnie z instrukcjami na otwartej stronie.
Wnioski
Serwer Mattermost jest teraz zainstalowany i działa na serwerze Ubuntu 24.04.


