Mattermost adalah alternatif Slack cloud pribadi open-source. Sistem pesan tempat kerja untuk web, PC, dan telepon, dirilis di bawah lisensi MIT. Sebagai alternatif dari pesan SaaS berpemilik, Mattermost membawa semua komunikasi tim Anda ke satu tempat, membuatnya dapat dicari dan diakses di mana saja. Yang terpenting adalah "Slack-compatible, not Slack-limited", mendukung superset integrasi webhook masuk dan keluar Slack, termasuk kompatibilitas dengan integrasi Slack yang ada. Dari tim Slack yang ada, Anda dapat mengimpor pengguna, riwayat saluran publik, dan bahkan warna pengaturan tema ke Mattermost.
Di sini, di LinuxAPT, sebagai bagian dari Layanan Manajemen Server kami, kami secara teratur membantu Pelanggan kami untuk melakukan permintaan Instalasi Perangkat Lunak sistem Linux terkait.
Dalam konteks ini, kita akan melihat cara menginstal Mattermost di CentOS 8.
Langkah-langkah untuk menginstal dan mengkonfigurasi Mattermost pada CentOS 8 ?
1. Lakukan Pembaruan Sistem
Pertama, mari kita mulai dengan memastikan sistem Anda mutakhir:
$ sudo dnf clean all
$ sudo dnf install epel-release
$ sudo dnf update
2. Instal Server Basis Data
Jalankan perintah berikut untuk menginstal MariaDB:
$ sudo dnf install mariadb-server
Secara default, MariaDB tidak dikeraskan. Anda dapat mengamankan MariaDB menggunakan skrip mysql_secure_installation. Anda harus membaca dan di bawah setiap langkah dengan cermat yang akan menetapkan kata sandi root, menghapus pengguna anonim, melarang login root jarak jauh, dan menghapus database pengujian dan akses untuk mengamankan 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!
Kemudian, restart server database MariaDB dan aktifkan untuk memulai sistem start-up menggunakan:
$ sudo systemctl restart mariadb
$ sudo systemctl status mariadb
$ sudo systemctl enable mariadb
Setelah instalasi database, login ke shell MariaDB dan buat database dan pengguna untuk 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. Instal Mattermost pada sistem
Pertama, Anda perlu membuat pengguna terpisah untuk menjalankan Mattermost. Anda dapat membuatnya dengan perintah berikut:
$ sudo useradd -d /opt/mattermost -U -M mattermost
Selanjutnya, download Mattermost versi terbaru :
$ wget https://releases.mattermost.com/5.20.2/mattermost-5.20.2-linux-amd64.tar.gz
Buka paket arsip Mattermost ke direktori root dokumen di server Anda:
$ tar xf *.gz
$ mv mattermost /opt/
Buat direktori penyimpanan untuk file:
$ mkdir /opt/mattermost/data
Juga, atur kepemilikan dan izin:
$ sudo chown -R mattermost:mattermost /opt/mattermost
$ sudo chmod -R g+w /opt/mattermost
Selanjutnya, kita harus mengatur driver database di file /opt/mattermost/config/config.json dengan membuat beberapa perubahan pada isinya. Cari baris "DriverName" dan "DataSource" dan ubah sebagai berikut:
$ 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
},
Simpan dan tutup file. Kemudian, ubah direktori ke /opt/mattermost dan mulai server Mattermost dengan perintah berikut:
$ cd /opt/mattermost
$ sudo -u mattermost ./bin/mattermost
4. Konfigurasi Layanan Mattermost Systemd
Pertama, kita akan membuat file unit systemd baru menggunakan perintah berikut:
$ 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
Selanjutnya, mulai layanan Mattermost dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
$ sudo systemctl daemon-reload
$ sudo systemctl start mattermost.service
$ sudo systemctl enable mattermost.service
Pastikan Mattermost berjalan dan mendengarkan pada port 8065. Anda dapat memeriksanya dengan perintah berikut:
$ curl http://localhost:8065
5. Konfigurasi Nginx dengan Mattermost
Instal dan konfigurasikan Nginx sebagai proxy terbalik untuk kinerja dan keamanan yang lebih baik. Sekarang kita menginstal Nginx pada sistem CentOS:
$ sudo dnf install nginx
Setelah menginstal server web Nginx, mulai layanan Nginx dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
Kemudian, konfigurasikan server web Nginx sebagai proxy untuk 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;
}
}
Terakhir, restart layanan Nginx untuk menerapkan perubahan:
$ nginx -t
$ sudo systemctl restart nginx
6. Konfigurasi Firewall
Izinkan akses firewall pada port HTTP dan HTTPS:
$ sudo firewall-cmd --add-service={http,https} --permanent
$ sudo firewall-cmd --reload
Bagaimana Cara Mengakses Antarmuka Web Terpenting ?
Mattermost akan tersedia pada port HTTP 80 secara default.
Buka browser favorit Anda dan navigasikan ke http://mattermost.example.com dan lanjutkan untuk mengonfigurasi Mattermost dengan memasukkan alamat email dan membuat akun.