Mattermost je bezplatný, open-source a samostatně hostovaný podnikový týmový systém pro zasílání zpráv. Je napsán v Golang a React a jako backend databáze používá MySQL/MariaDB/PostgreSQL. Nabízí desktopové klienty pro Windows, macOS a Linux a mobilní aplikace pro iOS a Android Je velmi podobný Slacku a přináší veškerou vaši týmovou komunikaci na jedno místo. Nabízí velmi užitečné funkce včetně individuálních a skupinových zpráv, sdílení souborů, videohovorů, vlastních emotikonů, webhooků a příkazů a mnoha dalších.
V tomto tutoriálu vám ukážeme, jak nainstalovat Mattermost na CentOS 8.
Předpoklady
- Server se systémem CentOS 8.
- Na vašem serveru je nakonfigurováno heslo uživatele root.
Instalace a konfigurace databáze MariaDB
Mattermost používá MariaDB/MySQL jako databázový backend. MariaDB tedy musí být nainstalována na vašem serveru. Pokud není nainstalován, můžete jej nainstalovat pomocí následujícího příkazu:
dnf install mariadb-server -y
Po instalaci spusťte službu MariaDB a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start mariadb
systemctl enable mariadb
Ve výchozím nastavení není MariaDB zabezpečena a heslo uživatele root není nastaveno v CentOS 8. Můžete jej tedy nastavit pomocí následujícího příkazu:
mysql_secure_installation
Odpovězte na všechny otázky, jak je uvedeno níže:
Enter current password for root (enter for none): Set root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Jakmile budete hotovi, přihlaste se do MariaDB jako uživatel root:
mysql -u root -p
Zadejte své heslo uživatele root a poté vytvořte databázi a uživatele pro Mattermost pomocí následujícího příkazu:
MariaDB [(none)]> CREATE DATABASE mattermostdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO [email protected] IDENTIFIED BY 'password';
Dále vyprázdněte oprávnění a ukončete prostředí MariaDB pomocí následujícího příkazu:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalovat Mattermost
Nejprve budete muset vytvořit samostatného uživatele pro spuštění Mattermost. Můžete jej vytvořit pomocí následujícího příkazu:
useradd -d /opt/mattermost -U -M mattermost
Dále si stáhněte nejnovější verzi Mattermost pomocí následujícího příkazu:
wget https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz
Po dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:
tar -xvzf mattermost-5.21.0-linux-amd64.tar.gz
Dále přesuňte extrahovaný adresář do /opt pomocí následujícího příkazu:
mv mattermost /opt/
Dále vytvořte datový adresář uvnitř Matmost a udělte správná oprávnění tomu Matmost pomocí následujícího příkazu:
mkdir /opt/mattermost/data
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Konfigurovat Mattermost
Dále budete muset definovat svou databázi v Mattermost. Můžete to udělat úpravou souboru config.json:
nano /opt/mattermost/config/config.json
Změňte následující řádky podle nastavení databáze:
"SqlSettings": { "DriverName": "mysql", "DataSource": "mattermost:[email protected](localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Po dokončení uložte a zavřete soubor. Poté změňte adresář na /opt/mattermost a spusťte server Mattermost pomocí následujícího příkazu:
cd /opt/mattermost
sudo -u mattermost bin/mattermost
Po úspěšném spuštění serveru byste měli získat následující výstup:
{"level":"info","ts":1585379681.8383002,"caller":"utils/i18n.go:83","msg":"Loaded system translations","for locale":"en","from locale":"/opt/mattermost/i18n/en.json"} {"level":"info","ts":1585379681.83874,"caller":"app/server_app_adapters.go:58","msg":"Server is initializing..."} {"level":"info","ts":1585379681.8470004,"caller":"sqlstore/supplier.go:221","msg":"Pinging SQL","database":"master"} {"level":"info","ts":1585379684.7858346,"caller":"sqlstore/upgrade.go:112","msg":"The database schema version has been set","version":"5.21.0"} {"level":"error","ts":1585379690.8182986,"caller":"app/server_app_adapters.go:129","msg":"SiteURL must be set. Some features will operate incorrectly if the SiteURL is not set. See documentation for details: http://about.mattermost.com/default-site-url"} {"level":"info","ts":1585379690.821083,"caller":"app/license.go:39","msg":"License key from https://mattermost.com required to unlock enterprise features."}
Poté stiskněte CTRL + C pro zastavení serveru Mattermost.
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 pomocí 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 mariadb.service [Service] Type=notify WorkingDirectory=/opt/mattermost User=mattermost ExecStart=/opt/mattermost/bin/mattermost PIDFile=/var/run/mattermost.pid TimeoutStartSec=3600 LimitNOFILE=49152 [Install] WantedBy=multi-user.target
Po dokončení uložte a zavřete soubor. 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í po restartu systému pomocí následujícího příkazu:
systemctl start mattermost
systemctl enable mattermost
Stav služby Mattermost můžete také ověřit pomocí následujícího příkazu:
systemctl status mattermost
Měli byste získat následující výstup:
? mattermost.service - Mattermost Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2020-03-28 03:17:07 EDT; 14s ago Main PID: 15204 (mattermost) Tasks: 21 (limit: 25028) Memory: 120.8M CGroup: /system.slice/mattermost.service ??15204 /opt/mattermost/bin/mattermost ??15214 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64 Mar 28 03:17:07 centos8 mattermost[15204]: {"level":"info","ts":1585379827.1131086,"caller":"app/server.go:247","msg":"Printing current workin> Mar 28 03:17:07 centos8 mattermost[15204]: {"level":"info","ts":1585379827.1131282,"caller":"app/server.go:248","msg":"Loaded config","source">
V tomto okamžiku běží server Mattermost a naslouchá na portu 8065. Můžete to zkontrolovat pomocí následujícího příkazu:
netstat -antup | grep 8065
Měli byste získat následující výstup:
tcp6 0 0 :::8065 :::* LISTEN 15204/mattermost
Nakonfigurujte Nginx jako reverzní proxy pro Mattermost
Je dobré nainstalovat a nakonfigurovat Nginx jako reverzní proxy pro lepší výkon a zabezpečení.
Nejprve nainstalujte webový server Nginx pomocí následujícího příkazu:
dnf install nginx -y
Po instalaci webového serveru Nginx spusťte službu Nginx a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start nginx
systemctl enable nginx
Dále vytvořte nový soubor virtuálního hostitele Nginx pro Mattermost pomocí následujícího příkazu:
nano /etc/nginx/conf.d/mattermost.conf
Přidejte následující řádky:
upstream mattermost { server 127.0.0.1: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 mattermost.example.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; client_body_timeout 60; send_timeout 300; lingering_timeout 5; proxy_connect_timeout 90; proxy_send_timeout 300; proxy_read_timeout 90s; proxy_pass http://mattermost; } 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_http_version 1.1; proxy_pass http://mattermost; } }
Po dokončení uložte a zavřete soubor. Poté pomocí následujícího příkazu zkontrolujte Nginx, zda neobsahuje nějakou chybu syntaxe:
nginx -t
Měli byste získat 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
Nakonec restartujte službu Nginx, aby se změny projevily:
systemctl restart nginx
V tomto okamžiku je webový server Nginx nakonfigurován tak, aby sloužil Mattermost. Nyní můžete přejít k dalšímu kroku.
Konfigurovat SELinux a Firewalld
Ve výchozím nastavení je SELinux povolen v CentOS 8. Pro Mattermost je doporučeno jej zakázat. Můžete jej zakázat úpravou souboru /etc/selinux/config:
nano /etc/selinux/config
Najděte následující řádek:
SELINUX=enforcing
A nahraďte jej následujícím řádkem:
SELINUX=permissive
Po dokončení uložte a zavřete soubor. Poté restartujte systém, aby se změny projevily.
Dále budete muset povolit port 80 přes firewall. Můžete to povolit pomocí následujícího příkazu:
firewall-cmd --add-service=http --permanent
Poté znovu načtěte firewall, aby se změny projevily:
firewall-cmd --reload
Přístup k webovému rozhraní Mattermost
Nyní otevřete webový prohlížeč a zadejte adresu URL http://mattermost.example.com. Měli byste vidět stránku vytvoření uživatele Mattermost:
Zadejte svou e-mailovou adresu, uživatelské jméno, heslo a klikněte na Vytvořit Účet knoflík. Měli byste vidět následující stránku:
Dále klikněte na Vytvořit nový tým vytvořit svůj tým. Měli byste vidět následující stránku:
Zadejte název týmu a klikněte na Další knoflík. Měli byste vidět následující stránku:
Zadejte adresu URL svého týmu a klikněte na Dokončit k dokončení instalace. Na následující stránce byste měli vidět řídicí panel Mattermost:
Závěr
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali Mattermost na serveru CentOS 8. Nyní můžete vytvořit tým pro svou organizaci a začít se svým týmem spolupracovat.