Mattermost adalah platform gratis, sumber terbuka, dan aman untuk komunikasi, kolaborasi, dan orkestrasi alur kerja di seluruh alat dan tim. Ini adalah layanan obrolan yang dihosting sendiri yang dirancang untuk organisasi dan perusahaan untuk menerapkan layanan obrolan internal. Ini menawarkan beberapa fitur berguna termasuk pesan satu-ke-satu, riwayat pencarian tidak terbatas, berbagi file, otentikasi dua faktor, pemberitahuan, dan banyak lagi. Jika Anda mencari solusi alternatif untuk Slack, maka Mattermost adalah pilihan terbaik untuk Anda.
Dalam tutorial ini, kami akan menunjukkan cara menginstal Mattermost dengan Nginx di Alma Linux 8.
Prasyarat
- Server yang menjalankan Alma Linux 8.
- Nama domain valid yang ditunjukkan dengan IP server Anda.
- Kata sandi root dikonfigurasi di server.
Instal Server MySQL
Mattermost menggunakan MySQL sebagai backend database. Jadi MySQL harus diinstal di server Anda. Anda dapat menginstalnya dengan menjalankan perintah berikut:
dnf install mysql-server -y
Setelah server MySQL terinstal, mulai dan aktifkan layanan MySQL dengan perintah berikut:
systemctl start mysqld
systemctl enable mysqld
Sekarang, Anda dapat mengamankan instalasi MySQL dengan menjalankan skrip berikut:
mysql_secure_installation
Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini untuk mengatur kata sandi root MySQL dan mengamankan instalasi:
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
Buat Database untuk Mattermost
Selanjutnya, Anda perlu membuat database dan pengguna untuk Mattermost. Pertama, login ke MySQL dengan perintah berikut:
mysql -u root -p
Setelah Anda masuk, buat database dan pengguna dengan perintah berikut:
mysql> CREATE DATABASE matterdb;
mysql> CREATE USER 'matteruser'@'localhost' IDENTIFIED BY 'password';
Selanjutnya, berikan semua hak istimewa ke database Mattermost:
mysql> GRANT ALL PRIVILEGES ON matterdb.* TO [email protected];
Selanjutnya, flush hak istimewa dan keluar dari MySQL dengan perintah berikut:
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Instal Mattermost di Alma Linux 8
Pertama, buat pengguna khusus untuk menjalankan Mattermost menggunakan perintah berikut:
useradd --system --user-group mattermost
Selanjutnya, unduh Mattermost versi terbaru menggunakan perintah berikut:
wget https://releases.mattermost.com/6.0.2/mattermost-6.0.2-linux-amd64.tar.gz
Setelah unduhan selesai, ekstrak file yang diunduh dengan perintah berikut:
tar -xf mattermost-6.0.2-linux-amd64.tar.gz
Selanjutnya, pindahkan direktori yang diekstrak ke /opt:
mv mattermost /opt
Selanjutnya, buat direktori data untuk Mattermost dan ubah kepemilikan dan izin dari Mattermost:
mkdir /opt/mattermost/data
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
Selanjutnya, edit file konfigurasi Mattermost:
nano /opt/mattermost/config/config.json
Tentukan URL situs web Mattermost Anda seperti yang ditunjukkan di bawah ini:
"SiteURL": "http://mattermost.example.com",
Selanjutnya, cari baris berikut:
"DriverName": "postgres", "DataSource": "postgres://mmuser:[email protected]/mattermost_test?sslmode=disable\u0026connect_timeout=10",
Dan, ganti dengan baris berikut:
"DriverName": "mysql", "DataSource": "matteruser:[email protected](localhost:3306)/matterdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Simpan dan tutup file setelah Anda selesai.
Buat File Layanan Systemd untuk Mattermost
Selanjutnya, Anda perlu membuat file layanan systemd untuk mengelola layanan Mattermost. Anda dapat membuatnya dengan menjalankan perintah berikut:
nano /etc/systemd/system/mattermost.service
Tambahkan baris berikut:
[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
Simpan dan tutup file kemudian muat ulang daemon systemd dengan perintah berikut:
systemctl daemon-reload
Selanjutnya, mulai layanan Mattermost dan aktifkan untuk memulai saat reboot sistem:
systemctl start mattermost
systemctl enable mattermost
Anda sekarang dapat memeriksa 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 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>
Pada titik ini, Mattermost dimulai dan dijalankan pada port 8065. Anda dapat memeriksanya dengan perintah berikut:
ss -antpl | grep 8065
Anda akan mendapatkan output berikut:
LISTEN 0 128 *:8065 *:* users:(("mattermost",pid=15201,fd=35))
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasikan Nginx sebagai Proxy Terbalik untuk Mattermost
Disarankan untuk menginstal dan mengkonfigurasi Nginx sebagai proxy terbalik untuk Mattermost. Untuk melakukannya, Anda perlu menginstal server Nginx ke server Anda. Anda dapat menginstalnya dengan menjalankan perintah berikut:
dnf install nginx -y
Setelah Nginx diinstal, buat file konfigurasi virtual host Nginx dengan perintah berikut:
nano /etc/nginx/conf.d/mattermost.conf
Tambahkan baris berikut:
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 { } }
Simpan dan tutup file kemudian verifikasi Nginx untuk kesalahan konfigurasi apa pun:
nginx -t
Jika semuanya baik-baik saja, 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
Sekarang, mulai dan aktifkan layanan Nginx untuk memulai saat reboot sistem:
systemctl start nginx
systemctl enable nginx
Anda dapat memeriksa status Nginx menggunakan perintah berikut:
systemctl status nginx
Anda akan mendapatkan output berikut:
? 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.
Pada titik ini, Nginx diinstal dan dikonfigurasi untuk melayani Mattermost. Sekarang Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasi Firewall
Selanjutnya, Anda harus mengizinkan port 80 melalui firewall. Anda dapat mengizinkannya dengan menjalankan perintah berikut:
firewall-cmd --add-service=http --permanent
Selanjutnya, muat ulang firewall untuk menerapkan perubahan:
firewall-cmd --reload
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Akses UI Web Penting
Sekarang, buka browser web Anda dan akses antarmuka web Mattermost menggunakan URL http://mattermost.example.com . Anda akan diarahkan ke layar berikut:
Berikan alamat email Anda, nama pengguna admin, kata sandi, dan klik tombol Buat Akun tombol. Anda akan mendapatkan layar berikut:
Klik Buat a tim . Anda akan mendapatkan layar berikut:
Berikan nama Tim Anda dan klik Berikutnya tombol. Anda akan mendapatkan layar berikut:
Berikan URL tim Terpenting Anda dan klik tombol Selesai tombol. Anda akan mendapatkan dasbor Mattermost pada layar berikut:
Kesimpulan
Dalam panduan di atas, Anda mempelajari cara menginstal layanan obrolan Mattermost dengan Nginx di Alma Linux 8. Sekarang Anda dapat mengimplementasikan Mattermost di organisasi Anda dan mulai menggunakannya sebagai obrolan internal. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.