Mattermost
Mattermost adalah salah satu open-source private cloud messaging, yang dijadikan sebagai alternatif dari Slack. Source code Mattermost sendiri dapat kamu cek di GitHub, sudah lengkap dengan server side & client side.
Pada artikel ini, kami akan membahas mengenai cara install Mattermost pada Ubuntu 18.04.
Persyaratan
Terdapat beberapa persyaratan sebelum melakukan instalasi.
- Memiliki VPS yang aktif dengan OS Ubuntu 18.04.
- Memiliki akses root.
- Memiliki Domain yang sudah di pointing ke IP Server.
Point
Terdapat beberapa rangkuman point instalasi pada artikel ini.
- Update Server
- Install Firewall
- Download Mattermost
- Create User Group
- Install MySQL Database
- Create Database & User Database
- Konfigurasi Mattermost
- Create Service Mattermost
- Konfigurasi Virtual Host Nginx
- Testing
Cara Install Mattermost pada Ubuntu 18.04
Update Server
Login sebagai root ke server dan update server untuk memastikan packages nya sudah up-to-date.
$ apt-get update -y
$ apt-get upgrade -y
$ reboot
Install beberapa packages yang dibutuhkan.
$ apt-get install nano perl wget -y
Install Firewall
Sebelum memulainya, perlu instalasi Firewall supaya lebih secure. Pada Firewall ini menggunakan CSF (ConfigServer Security & Firewall). Instalasinya dengan perintah di bawah ini:
$ cd /usr/src
$ wget https://download.configserver.com/csf.tgz
$ tar -xzf csf.tgz
$ cd csf/
$ sh install.sh
Pada konfigurasi CSF rubah “make TESTING=’1’ menjadi 0”.
$ nano /etc/csf/csf.conf
Kemudian restart CSF supaya reload konfigurasi yang ter-update.
$ csf -r
Download Mattermost
Install Mattermost Server, download terlebih dahulu versi terbarunya di website resmi Mattermost.
$ wget https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz
Ubah X.X.X dengan versi yang kamu dapatkan dari website resmi Mattermost.
Extract Mattermost Files.
$ tar -xvzf mattermost*.gz
Move file yang sudah di extract ke directory /opt/
$ mv mattermost /opt
Create storage directory untuk file
$ mkdir /opt/mattermost/data
Create User Group
Buat User dan Group untuk mattermost, yang nantinya akan run service mattermost dan juga set ownership & permission.
$ useradd –system –user-group mattermost
Ubah ownership.
$ chown -R mattermost:mattermost /opt/mattermost
Set Permission ke mattermost group.
$ chmod -R g+w /opt/mattermost/
Install MySQL Database
Mattermost juga perlu database, terdapat 2 pilihan, yaitu MySQL / MariaDB atau PostgreSQL, kami memilih MariaDB.
$ apt-get install mariadb-server mariadb-client -y
Start dan enable on-boot untuk MariaDB services dan kemudian lakukan secure installation
$ systemctl enable mariadb
$ systemctl start mariadb
$ mysql_secure_installation
Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. 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... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Pada current password for root langsung enter saja, kemudian pada set root password pilih Y. Kemudian selanjutnya pilih Y semua sampai proses secure selesai.
Cek status MariaDB sudah aktif atau belum:
$ systemctl status mariadb
● mariadb.service - MariaDB 10.3.34 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor p Active: active (running) since Tue 2022-04-12 09:59:43 UTC; 1min 34s a Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 3884 (mysqld) Status: "Taking your SQL requests now..." Tasks: 27 (limit: 1150) CGroup: /system.slice/mariadb.service └─3884 /usr/sbin/mysqld
Create Database & User Database
Buat database dan user database mattermost.
$ mysql -u root -p
> create user ‘mmuser’@’localhost’ identified by ‘p4ssw0rd’;
> create database mattermost;
> grant all privileges on mattermost.* to ‘mmuser’@’localhost’;
> flush privileges;
> exit;
Konfigurasi Mattermost
Perlu lakukan beberapa konfigurasi pada config.json mattermost.
$ nano /opt/mattermost/config/config.json
Ubah pada beberapa config seperti:
SiteURL: “http://vps201.dewiweb.net” DriverName: “mysql” DataSource: “mmuser:@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&writeTimeout=30s”
Jika sudah, save dan exit.
Create Service Mattermost
Buat file service untuk mattermost.
$ nano /lib/systemd/system/mattermost.service
Pastekan script di bawah ini.
[Unit] Description=Mattermost After=network.target After=mysql.service BindsTo=mysql.service [Service] Type=notify ExecStart=/opt/mattermost/bin/mattermost TimeoutStartSec=3600 KillMode=mixed Restart=always RestartSec=10 WorkingDirectory=/opt/mattermost User=mattermost Group=mattermost LimitNOFILE=49152 [Install] WantedBy=mysql.service Save dan exit.
Lakukan daemon reload kemudian start services.
$ systemctl daemon-reload
$ systemctl start mattermost.service
Cek status mattermost services apakah sudah running atau belum.
$ systemctl status mattermost.service
● mattermost.service - Mattermost Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2022-04-13 05:54:30 UTC; 1min 57s ago Main PID: 1356 (mattermost) Tasks: 35 (limit: 1150) CGroup: /system.slice/mattermost.service ├─1356 /opt/mattermost/bin/mattermost ├─1542 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64 ├─1544 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64 ├─1556 plugins/playbooks/server/dist/plugin-linux-amd64 └─1562 plugins/focalboard/server/dist/plugin-linux-amd64
Konfigurasi Virtual Host Nginx
Agar tidak perlu menggunakan port 8065 saat mengakses MatterMost, maka diperlukan konfigurasi virtual host nginx dengan proxy_pass supaya binding port 8065 ke 80. Namun, sebelum itu perlu install Nginx sebagai Web Server terlebih dahulu.
$ apt-get install nginx -y
$ nano /etc/nginx/conf.d/vps201.dewiweb.net.conf
server { listen 80; listen [::]:80; server_name vps201.dewiweb.net; rewrite ^/.*$ http://$host$request_uri? permanent; location / { proxy_pass http://103.xxx.xxx.xxx:8065/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_temp_path /var/nginx/tmp/; proxy_connect_timeout 5s; error_page 500 502 503 504 /50x.html; proxy_next_upstream error timeout http_500; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Host $http_host; proxy_set_header X-Forwarded-For $http_x_forwarded_for; proxy_set_header X-Remote-Port $http_x_remote_port; proxy_set_header X-URI $request_uri; proxy_set_header X-ARGS $args; proxy_set_header Refer $http_refer; } } Jika sudah, save dan exit.
Verifikasi konfigurasi virtual host nya.
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Restart Nginx
$ systemctl restart nginx
Testing
Langkah terakhir adalah testing, yaitu dengan mengakses domain yang sudah kamu setting melalui browser.
Tampilan di atas menandakan bahwa instalasi Mattermost sudah selesai dan berhasil.
Kesimpulan
Untuk domain dan IP Address dapat kamu ubah sesuai dengan kebutuhan kamu.
Jika kamu mengikuti artikel ini dari awal sampai akhir, artinya kamu telah berhasil Install Mattermost pada Ubuntu 18.04.
Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin Anda baca di blog Dewaweb. Semoga artikel ini membantu