Cara Install Mattermost pada Ubuntu 18.04

Cara Install Mattermost pada Ubuntu 18.04

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.

testing - cara install mattermost pada ubuntu

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