Mattermost je bezplatná, open source a bezpečná platforma pro komunikaci, spolupráci a orchestraci pracovních postupů napříč nástroji a týmy. Jedná se o samoobslužnou chatovací službu navrženou pro organizace a společnosti k implementaci interní chatovací služby. Nabízí několik užitečných funkcí včetně zasílání zpráv jeden na jednoho, neomezenou historii vyhledávání, sdílení souborů, dvoufaktorové ověřování, upozornění a další. Pokud hledáte alternativní řešení pro Slack, pak je pro vás Mattermost tou nejlepší volbou.
V tomto tutoriálu vám ukážeme, jak nainstalovat Mattermost s Nginx na Alma Linux 8.
Předpoklady
- Server se systémem Alma Linux 8.
- Platný název domény s adresou IP vašeho serveru.
- Na serveru je nakonfigurováno heslo uživatele root.
Instalace serveru MySQL
Mattermost používá MySQL jako databázový backend. Takže MySQL musí být nainstalován na vašem serveru. Můžete jej nainstalovat spuštěním následujícího příkazu:
dnf install mysql-server -y
Jakmile je server MySQL nainstalován, spusťte a povolte službu MySQL pomocí následujícího příkazu:
systemctl start mysqld
systemctl enable mysqld
Nyní můžete instalaci MySQL zabezpečit spuštěním následujícího skriptu:
mysql_secure_installation
Chcete-li nastavit kořenové heslo MySQL a zabezpečit instalaci, odpovězte na všechny níže uvedené otázky:
Press y|Y for Yes, any other key for No: N Please set the password for root here. New password: Re-enter new password: Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Vytvořit databázi pro Mattermost
Dále budete muset vytvořit databázi a uživatele pro Mattermost. Nejprve se přihlaste do MySQL pomocí následujícího příkazu:
mysql -u root -p
Jakmile se přihlásíte, vytvořte databázi a uživatele pomocí následujícího příkazu:
mysql> CREATE DATABASE matterdb;
mysql> CREATE USER 'matteruser'@'localhost' IDENTIFIED BY 'password';
Dále udělte všechna oprávnění databázi Mattermost:
mysql> GRANT ALL PRIVILEGES ON matterdb.* TO [email protected];
Dále vyprázdněte oprávnění a ukončete MySQL pomocí následujícího příkazu:
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalovat Mattermost na Alma Linux 8
Nejprve vytvořte vyhrazeného uživatele pro spuštění Mattermost pomocí následujícího příkazu:
useradd --system --user-group mattermost
Dále si stáhněte nejnovější verzi Mattermost pomocí následujícího příkazu:
wget https://releases.mattermost.com/6.0.2/mattermost-6.0.2-linux-amd64.tar.gz
Po dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:
tar -xf mattermost-6.0.2-linux-amd64.tar.gz
Dále přesuňte extrahovaný adresář do /opt:
mv mattermost /opt
Dále vytvořte datový adresář pro Mattermost a změňte vlastnictví a oprávnění Mattermost:
mkdir /opt/mattermost/data
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
Dále upravte konfigurační soubor Mattermost:
nano /opt/mattermost/config/config.json
Definujte adresu URL svého webu Mattermost, jak je uvedeno níže:
"SiteURL": "http://mattermost.example.com",
Dále najděte následující řádky:
"DriverName": "postgres", "DataSource": "postgres://mmuser:[email protected]/mattermost_test?sslmode=disable\u0026connect_timeout=10",
A nahraďte je následujícími řádky:
"DriverName": "mysql", "DataSource": "matteruser:[email protected](localhost:3306)/matterdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Po dokončení uložte a zavřete soubor.
Vytvoření souboru Systemd Service pro Mattermost
Dále budete muset vytvořit soubor služby systemd pro správu služby Mattermost. Můžete jej vytvořit spuštěním následujícího příkazu:
nano /etc/systemd/system/mattermost.service
Přidejte následující řádky:
[Unit] Description=Mattermost After=syslog.target network.target mysqld.service [Service] Type=notify WorkingDirectory=/opt/mattermost User=mattermost ExecStart=/opt/mattermost/bin/mattermost PIDFile=/var/spool/mattermost/pid/master.pid TimeoutStartSec=3600 LimitNOFILE=49152 [Install] WantedBy=multi-user.target
Uložte a zavřete soubor a poté znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reload
Dále spusťte službu Mattermost a povolte její spuštění při restartu systému:
systemctl start mattermost
systemctl enable mattermost
Nyní můžete zkontrolovat stav služby Mattermost pomocí následujícího příkazu:
systemctl status mattermost
Získáte následující výstup:
? mattermost.service - Mattermost Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2022-01-15 14:12:29 UTC; 7s ago Main PID: 15201 (mattermost) Tasks: 32 (limit: 11411) Memory: 265.2M CGroup: /system.slice/mattermost.service ??15201 /opt/mattermost/bin/mattermost ??15298 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64 ??15299 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64 ??15308 plugins/playbooks/server/dist/plugin-linux-amd64 ??15313 plugins/focalboard/server/dist/plugin-linux-amd64 Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.344 Z","level":"info","msg":"Sent notification of next survey> Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.402 Z","level":"info","msg":"Post.Message has size restrictio> Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.499 Z","level":"info","msg":"info [2022-01-15 14:12:26.497 Z]> Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.537 Z","level":"info","msg":"\n -- collation of mattermost> Jan 15 14:12:28 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:28.297 Z","level":"info","msg":"debug [2022-01-15 14:12:28.295 Z> Jan 15 14:12:28 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:28.804 Z","level":"info","msg":"info [2022-01-15 14:12:28.803 Z]> Jan 15 14:12:29 almalinux8 systemd[1]: Started Mattermost. Jan 15 14:12:29 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:29.149 Z","level":"info","msg":"Starting Server...","caller":"ap> Jan 15 14:12:29 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:29.150 Z","level":"info","msg":"Server is listening on [::]:8065> Jan 15 14:12:29 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:29.150 Z","level":"info","msg":"Sending systemd READY notificati>
V tomto okamžiku je Mattermost spuštěn a běží na portu 8065. Můžete to zkontrolovat pomocí následujícího příkazu:
ss -antpl | grep 8065
Získáte následující výstup:
LISTEN 0 128 *:8065 *:* users:(("mattermost",pid=15201,fd=35))
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Nakonfigurujte Nginx jako reverzní proxy pro Mattermost
Doporučuje se nainstalovat a nakonfigurovat Nginx jako reverzní proxy pro Mattermost. Chcete-li tak učinit, budete muset nainstalovat server Nginx na váš server. Můžete jej nainstalovat spuštěním následujícího příkazu:
dnf install nginx -y
Po instalaci Nginx vytvořte konfigurační soubor virtuálního hostitele Nginx pomocí následujícího příkazu:
nano /etc/nginx/conf.d/mattermost.conf
Přidejte následující řádky:
server { listen 80; server_name mattermost.example.com; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { proxy_pass http://localhost:8065/; index index.html index.htm; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
Uložte a zavřete soubor a poté ověřte, zda Nginx neobsahuje nějakou chybu konfigurace:
nginx -t
Pokud je vše v pořádku, dostanete následující výstup:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Nyní spusťte a povolte spuštění služby Nginx při restartu systému:
systemctl start nginx
systemctl enable nginx
Stav Nginx můžete zkontrolovat pomocí následujícího příkazu:
systemctl status nginx
Získáte následující výstup:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2022-01-15 14:14:05 UTC; 7s ago Process: 15356 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 15354 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 15351 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 15358 (nginx) Tasks: 2 (limit: 11411) Memory: 3.8M CGroup: /system.slice/nginx.service ??15358 nginx: master process /usr/sbin/nginx ??15359 nginx: worker process Jan 15 14:14:05 almalinux8 systemd[1]: nginx.service: Succeeded. Jan 15 14:14:05 almalinux8 systemd[1]: Stopped The nginx HTTP and reverse proxy server. Jan 15 14:14:05 almalinux8 systemd[1]: Starting The nginx HTTP and reverse proxy server... Jan 15 14:14:05 almalinux8 nginx[15354]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Jan 15 14:14:05 almalinux8 nginx[15354]: nginx: configuration file /etc/nginx/nginx.conf test is successful Jan 15 14:14:05 almalinux8 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Jan 15 14:14:05 almalinux8 systemd[1]: Started The nginx HTTP and reverse proxy server.
V tomto okamžiku je Nginx nainstalován a nakonfigurován tak, aby sloužil Mattermost. Nyní můžete přejít k dalšímu kroku.
Konfigurovat bránu firewall
Dále budete muset povolit port 80 přes bránu firewall. Můžete to povolit spuštěním následujícího příkazu:
firewall-cmd --add-service=http --permanent
Poté znovu načtěte bránu firewall, aby se změny projevily:
firewall-cmd --reload
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Přístup k webovému uživatelskému rozhraní Mattermost
Nyní otevřete webový prohlížeč a přejděte na webové rozhraní Mattermost pomocí adresy URL http://mattermost.example.com . Budete přesměrováni na následující obrazovku:
Zadejte svou e-mailovou adresu, uživatelské jméno správce, heslo a klikněte na Vytvořit Účet knoflík. Zobrazí se následující obrazovka:
Klikněte na Vytvořit a tým . Zobrazí se následující obrazovka:
Zadejte název týmu a klikněte na Další knoflík. Zobrazí se následující obrazovka:
Zadejte URL svého týmu Mattermost a klikněte na Dokončit knoflík. Ovládací panel Mattermost se zobrazí na následující obrazovce:
Závěr
Ve výše uvedené příručce jste se naučili, jak nainstalovat chatovací službu Mattermost s Nginx na Alma Linux 8. Nyní můžete Mattermost implementovat ve své organizaci a začít ji používat jako interní chat. Pokud máte nějaké dotazy, neváhejte se mě zeptat.