Mattermost adalah sistem pesan kolaborasi tim perusahaan yang gratis, bersumber terbuka, dan dihosting sendiri. Itu ditulis dalam Golang dan React, dan menggunakan MySQL/MariaDB/PostgreSQL sebagai backend database. Ini menawarkan klien desktop untuk Windows, macOS, dan Linux dan aplikasi seluler untuk iOS dan Android Ini sangat mirip dengan Slack dan membawa semua komunikasi tim Anda ke satu tempat. Ini menawarkan fitur yang sangat berguna termasuk, perpesanan satu-ke-satu dan grup, berbagi file, panggilan video, emoji khusus, webhook &perintah, dan banyak lagi.
Dalam tutorial ini, kami akan menunjukkan cara menginstal Mattermost di CentOS 8.
Prasyarat
- Server yang menjalankan CentOS 8.
- Kata sandi root dikonfigurasi di server Anda.
Instal dan Konfigurasikan Database MariaDB
Mattermost menggunakan MariaDB/MySQL sebagai backend database. Jadi MariaDB harus diinstal di server Anda. Jika belum terinstal, Anda dapat menginstalnya dengan perintah berikut:
dnf install mariadb-server -y
Setelah terinstal, mulai layanan MariaDB dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
systemctl start mariadb
systemctl enable mariadb
Secara default, MariaDB tidak diamankan dan kata sandi root tidak diatur di CentOS 8. Jadi Anda dapat mengaturnya dengan perintah berikut:
mysql_secure_installation
Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini:
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
Setelah selesai, masuk ke MariaDB dengan pengguna root:
mysql -u root -p
Berikan kata sandi root Anda lalu buat database dan pengguna untuk Mattermost dengan perintah berikut:
MariaDB [(none)]> CREATE DATABASE mattermostdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO [email protected] IDENTIFIED BY 'password';
Selanjutnya, flush hak istimewa dan keluar dari shell MariaDB dengan perintah berikut:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Instal Mattermost
Pertama, Anda perlu membuat pengguna terpisah untuk menjalankan Mattermost. Anda dapat membuatnya dengan perintah berikut:
useradd -d /opt/mattermost -U -M mattermost
Selanjutnya, unduh Mattermost versi terbaru dengan perintah berikut:
wget https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz
Setelah unduhan selesai, ekstrak file yang diunduh dengan perintah berikut:
tar -xvzf mattermost-5.21.0-linux-amd64.tar.gz
Selanjutnya pindahkan direktori hasil ekstrak ke /opt dengan perintah berikut:
mv mattermost /opt/
Selanjutnya, buat direktori data di dalam mattermost dan berikan izin yang tepat untuk mattermost dengan perintah berikut:
mkdir /opt/mattermost/data
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasi Mattermost
Selanjutnya, Anda perlu mendefinisikan database Anda di Mattermost. Anda dapat melakukannya dengan mengedit file config.json:
nano /opt/mattermost/config/config.json
Ubah baris berikut sesuai pengaturan database Anda:
"SqlSettings": { "DriverName": "mysql", "DataSource": "mattermost:[email protected](localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Simpan dan tutup file setelah Anda selesai. Kemudian, ubah direktori ke /opt/mattermost dan mulai server Mattermost dengan perintah berikut:
cd /opt/mattermost
sudo -u mattermost bin/mattermost
Setelah server berhasil dimulai, Anda akan mendapatkan output berikut:
{"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."}
Selanjutnya, tekan CTRL + C untuk menghentikan server Mattermost.
Buat File Layanan Systemd untuk Mattermost
Selanjutnya, Anda perlu membuat file layanan systemd untuk mengelola layanan Mattermost. Anda dapat membuatnya dengan perintah berikut:
nano /etc/systemd/system/mattermost.service
Tambahkan baris berikut:
[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
Simpan dan tutup file setelah Anda selesai. Kemudian, muat ulang daemon systemd dengan perintah berikut:
systemctl daemon-reload
Selanjutnya, mulai layanan Mattermost dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
systemctl start mattermost
systemctl enable mattermost
Anda juga dapat memverifikasi status layanan Mattermost dengan perintah berikut:
systemctl status mattermost
Anda akan mendapatkan output berikut:
? 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">
Pada titik ini, server Mattermost sedang berjalan dan mendengarkan pada port 8065. Anda dapat memeriksanya dengan perintah berikut:
netstat -antup | grep 8065
Anda akan mendapatkan output berikut:
tcp6 0 0 :::8065 :::* LISTEN 15204/mattermost
Konfigurasikan Nginx sebagai Proxy Terbalik untuk Mattermost
Sebaiknya instal dan konfigurasikan Nginx sebagai proxy terbalik untuk kinerja dan keamanan yang lebih baik.
Pertama, instal server web Nginx dengan perintah berikut:
dnf install nginx -y
Setelah menginstal server web Nginx, mulai layanan Nginx dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
systemctl start nginx
systemctl enable nginx
Selanjutnya, buat file virtual host Nginx baru untuk Mattermost dengan perintah berikut:
nano /etc/nginx/conf.d/mattermost.conf
Tambahkan baris berikut:
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; } }
Simpan dan tutup file setelah selesai. Kemudian, periksa Nginx apakah ada kesalahan sintaks dengan perintah berikut:
nginx -t
Anda akan mendapatkan output berikut:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Terakhir, restart layanan Nginx untuk menerapkan perubahan:
systemctl restart nginx
Pada titik ini, server web Nginx dikonfigurasi untuk melayani Mattermost. Sekarang Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasi SELinux dan Firewalld
Secara default, SELinux diaktifkan di CentOS 8. Disarankan untuk menonaktifkannya untuk Mattermost. Anda dapat menonaktifkannya dengan mengedit file /etc/selinux/config:
nano /etc/selinux/config
Temukan baris berikut:
SELINUX=enforcing
Dan, ganti dengan baris berikut:
SELINUX=permissive
Simpan dan tutup file setelah Anda selesai. Kemudian, mulai ulang sistem Anda untuk menerapkan perubahan.
Selanjutnya, Anda harus mengizinkan port 80 melalui firewalld. Anda dapat mengizinkannya dengan perintah berikut:
firewall-cmd --add-service=http --permanent
Selanjutnya, muat ulang firewalld untuk menerapkan perubahan:
firewall-cmd --reload
Akses Antarmuka Web Penting
Sekarang, buka browser web Anda dan ketik URL http://mattermost.example.com. Anda akan melihat halaman pembuatan pengguna yang paling penting:
Berikan alamat email, nama pengguna, sandi, dan klik Buat Akun tombol. Anda akan melihat halaman berikut:
Selanjutnya, klik tombol Buat tim baru untuk membuat tim Anda. Anda akan melihat halaman berikut:
Berikan nama tim Anda dan klik Berikutnya tombol. Anda akan melihat halaman berikut:
Berikan URL tim Anda dan klik Selesai untuk menyelesaikan instalasi. Anda akan melihat dasbor Mattermost di halaman berikut:
Kesimpulan
Selamat! Anda telah berhasil menginstal dan mengonfigurasi Mattermost di server CentOS 8. Sekarang Anda dapat membuat tim untuk organisasi Anda dan mulai berkolaborasi dengan tim Anda.