Mattermost je open source, privátní cloudová alternativa Slack. Systém zasílání zpráv na pracovišti pro web, počítače a telefony, vydaný pod licencí MIT. Jako alternativa k proprietárnímu zasílání zpráv SaaS přináší Mattermost veškerou vaši týmovou komunikaci na jedno místo, takže ji lze vyhledávat a zpřístupnit odkudkoli. Mattermost je „kompatibilní se Slackem, ne omezený na Slack“, podporuje nadmnožinu příchozích a odchozích integrací webhooku Slack, včetně kompatibility se stávajícími integracemi Slack. Ze stávajících týmů Slack můžete do Mattermost importovat uživatele, historii veřejného kanálu a dokonce i barvy nastavení motivu.
Zde v LinuxAPT, jako součást našich služeb správy serveru, pravidelně pomáháme našim zákazníkům provádět související dotazy týkající se instalace softwaru systému Linux.
V této souvislosti se podíváme na to, jak nainstalovat Mattermost na CentOS 8.
Postup instalace a konfigurace Mattermost na CentOS 8?
1. Proveďte aktualizaci systému
Za prvé, začněme tím, že zajistíme, aby byl váš systém aktuální:
$ sudo dnf clean all
$ sudo dnf install epel-release
$ sudo dnf update
2. Nainstalujte databázový server
Spusťte následující příkaz pro instalaci MariaDB:
$ sudo dnf install mariadb-server
Ve výchozím nastavení není MariaDB tvrzená. MariaDB můžete zabezpečit pomocí skriptu mysql_secure_installation. měli byste si pozorně přečíst a níže každý krok, který nastaví heslo root, odstraní anonymní uživatele, zakáže vzdálené přihlášení root a odstraní testovací databázi a přístup k zabezpečené MariaDB:
$ mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n] y
... Success!
Disallow root login remotely? [Y/n] y
... Success!
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
Thanks for using MariaDB!
Poté restartujte databázový server MariaDB a povolte jeho spuštění při startu systému pomocí:
$ sudo systemctl restart mariadb
$ sudo systemctl status mariadb
$ sudo systemctl enable mariadb
Po instalaci databáze se přihlaste do prostředí MariaDB a vytvořte databázi a uživatele pro Mattermost:
$ mysql -u root -p
CREATE DATABASE mattermost;
GRANT ALL PRIVILEGES ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'Your-Strong-Passwd';
FLUSH PRIVILEGES;
QUIT;
3. Nainstalujte Mattermost do systému
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:
$ sudo useradd -d /opt/mattermost -U -M mattermost
Dále si stáhněte nejnovější verzi Mattermost:
$ wget https://releases.mattermost.com/5.20.2/mattermost-5.20.2-linux-amd64.tar.gz
Rozbalte archiv Mattermost do kořenového adresáře dokumentu na vašem serveru:
$ tar xf *.gz
$ mv mattermost /opt/
Vytvořte adresář pro ukládání souborů:
$ mkdir /opt/mattermost/data
Také nastavte vlastnictví a oprávnění:
$ sudo chown -R mattermost:mattermost /opt/mattermost
$ sudo chmod -R g+w /opt/mattermost
Dále budeme muset nastavit ovladač databáze v souboru /opt/mattermost/config/config.json provedením změn v jeho obsahu. Vyhledejte řádky „DriverName“ a „DataSource“ a změňte je následovně:
$ nano /opt/mattermost/config/config.json
"SqlSettings": {
"DriverName": "mysql",
"DataSource": "mattermost:Str0ngP@ss@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
"DataSourceReplicas": [],
"DataSourceSearchReplicas": [],
"MaxIdleConns": 20,
"ConnMaxLifetimeMilliseconds": 3600000,
"MaxOpenConns": 300,
"Trace": false,
"AtRestEncryptKey": "myyti1r597i99qrk7eu91ywqhaawz4md",
"QueryTimeout": 30
},
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
4. Nakonfigurujte Mattermost Systemd Service
Nejprve vytvoříme nový soubor systemd unit pomocí následujícího příkazu:
$ nano /etc/systemd/system/mattermost.service
[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
Dále spusťte službu Mattermost a povolte její spuštění po restartu systému pomocí následujícího příkazu:
$ sudo systemctl daemon-reload
$ sudo systemctl start mattermost.service
$ sudo systemctl enable mattermost.service
Ověřte, že Mattermost běží a naslouchá na portu 8065. Můžete to zkontrolovat pomocí následujícího příkazu:
$ curl http://localhost:8065
5. Nakonfigurujte Nginx pomocí Mattermost
Nainstalujte a nakonfigurujte Nginx jako reverzní proxy pro lepší výkon a zabezpečení. Nyní nainstalujeme Nginx na systém CentOS:
$ sudo dnf install nginx
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:
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
Poté nakonfigurujte webový server Nginx jako proxy pro Mattermost:
$ sudo nano /etc/nginx/conf.d/mattermost.conf
upstream backend {
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://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_http_version 1.1;
proxy_pass http://backend;
}
}
Nakonec restartujte službu Nginx, aby se změny projevily:
$ nginx -t
$ sudo systemctl restart nginx
6. Nakonfigurujte bránu firewall
Povolit přístup brány firewall na portech HTTP a HTTPS:
$ sudo firewall-cmd --add-service={http,https} --permanent
$ sudo firewall-cmd --reload
Jak získat přístup k webovému rozhraní Mattermost?
Mattermost bude ve výchozím nastavení k dispozici na portu HTTP 80.
Otevřete svůj oblíbený prohlížeč a přejděte na http://mattermost.example.com a pokračujte v konfiguraci Mattermost zadáním e-mailové adresy a vytvořením účtu.