Cara Menginstall Mattermost di Ubuntu 22.04 Dengan Nginx Proxy

Apa Itu Mattermost ?

Cara Menginstall Mattermost di Ubuntu – Mattermost adalah aplikasi pesan atau chat yang bersifat open source. Aplikasi Mattermost ini mirip seperti WhatsApp atau Slack. Yang membedakan adalah Mattermost dapat diinstal di server sendiri atau self-hosted.

Mattermost bisa digunakan untuk call dengan sesama pengguna, mengirim pesan teks, gambar, dan bisa juga untuk mengirim file. Selain itu, mattermost juga dapat diintegrasikan dengan platform lain seperti gitlab, dll.

Mattermost mengutamakan keamanan dan privasi, sehingga cocok untuk organisasi yang sangat peduli tentang melindungi informasi mereka. Anda dapat mengaksesnya melalui komputer atau ponsel, dan Anda juga bisa menyesuaikan fiturnya sesuai dengan kebutuhan tim Anda.

Cara Install Mattermost di Ubuntu dengan Nginx

VPS Requirements :

  • 1 Core
  • 2 GB RAM ( Support Up to 1000 User )
  • Database: PostgreSQL v11+
  • Network Firewall:
    • Application 80/443, TLS, TCP Inbound
    • Administrator Console 8065, TLS, TCP Inbound
    • SMTP port 10025, TCP/UDP Outbound

Tapi pada tutorial kali ini saya hanya menggunakan VPS dengan spesifikasi 1 core dan 1 GB RAM saja. Untuk proses penginstalan mattermost ini, kita akan menggunakan database postgresql dan untuk akses keluarnya kita menggunakan nginx proxy. Agar mattermost dapat diakses menggunakan domain.

Baca Juga : Cara Menginstall Nextcloud di Ubuntu

Langkah #1 : Mengupdate Server

Mulai dengan mengupdate, mengupgrade, dan menginstall beberapa paket aplikasi yang diperlukan.

sudo apt update
sudo apt -y upgrade
sudo apt -y install wget curl nano

Kemudian dianjurkan untuk mereboot servernya.

sudo reboot

Kemudian ubah server hostname

sudo hostnamectl set-hostname mattermost.awanservers.com --static

Mengatur Zona Waktu (Time Zone)

Masukkan perintah di bawah ini dan pilih zona waktu sesuai tempat tinggal Anda. Karena saya tinggal di zona waktu Indonesia Barat, maka saya pilih Asia/Jakarta

sudo dpkg-rexonfigure tzdata
Time Zone

Langkah #2 : Menginstall PostgreSQL

Pertama install postgresql database dengan perintah berikut.

sudo apt -y install postgresql postgresql-contrib

Kemudian login ke database postgresql.

sudo --login --user postgres

Buat user database untuk mattermost

psql
CREATE DATABASE mattermost_db;
CREATE USER mattermostuser WITH PASSWORD 'your-password';
GRANT ALL PRIVILEGES ON DATABASE mattermost_db to mattermostuser;
\q

Keluar dari postgresql

exit

Seperti ini langkah-langkah pembuatan database mattermost di postgresql.

Membuat Database Mattermost di Postgresql

Langkah #3 : Membuat User dan Group Mattermost

User dan groups mattermost digunakan untuk menjalankan service nantinya.

sudo useradd --system --user-group mattermost

Kemudian Cek dan pastikan ID berada di angka kurang dari 1000

id mattermost
uid=998(mattermost) gid=998(mattermost) groups=998(mattermost)
ID Mattermost

Langkah #4 : Download dan Install Mattermost Server

Anda dapat mengunjungi laman berikut untuk mendownload mattermost versi terbaru. Versi yang akan kita gunakan kali ini adalah v9.0.0

Website Mattermost Official

wget https://releases.mattermost.com/9.5.2/mattermost-9.5.2-linux-amd64.tar.gz

Kemudian ekstrak.

tar xvf mattermost-9.5.2-linux-amd64.tar.gz

Pindahkan folder hasil ekstrakan ke direktori /opt

sudo mv mattermost /opt

Buat direktori penyimpanan yang akan digunakan untuk menyimpan semua file dan gambar yang diposting oleh pengguna Mattermost.

sudo mkdir /opt/mattermost/data

Lalu setup kepemilikna folder dan permission

sudo chown -R mattermost:mattermost /opt/mattermost

Beri akses write ke mattermost groups user

sudo chmod -R g+w /opt/mattermost

Langkah #5 : Konfigurasi Mattermost Server

Kemudian kita hubungkan ke database. scroll ke bawah dan cari bagian Sql Settings

sudo nano /opt/mattermost/config/config.json

Konfigurasikan pengaturan database PostgreSQL agar terlihat seperti di bawah ini dalam bagian “SqlSettings”. Dan sesuaikan dengan nama database dan user yang telah Anda buat.

"DriverName": "postgres", "DataSource": "postgres://mattermostmuser:your-password@localhost:5432/mattermost_db?sslmode=disable&connect_timeout=10",

Keterangan :

  • mattermostuser = user postgresql
  • your-password = password user postgresql
  • mattermost_db = nama database mattermost

Test Jalankan mattermost

cd /opt/mattermost/bin
sudo /opt/mattermost/bin/mattermost

Akan tampil seperti ini. Lihat baik-baik lognya dan pastikan tidak ada eror.

Menjalankan Mattermost

Untuk berhenti tekan CTRL + C dan lanjut ke langkah selanjutnya.

Langkah #6 : Konfigurasi Systemd Service

Buat mattermost service unit

sudo nano /etc/systemd/system/mattermost.service

Kemudian masukkan baris perintah berikut

[Unit]
Description=Mattermost
After=network.target
After=postgresql.service
Requires=postgresql.service

[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Reload systemd agar mengenali unit baru

sudo systemctl daemon-reload

start dan buar mattermost service berjalan autostart

sudo systemctl start mattermost.service
sudo systemctl enable mattermost.service
sudo systemctl enable mattermost.service

Pastikan service mattermost active seperti ini.

Mattermost SErvices Status

Langkah #7 : Konfigurasi NGINX Reverse Proxy

Nginx proxy ini digunakan untuk memproxy mattermost agar aksesnya menggunakan domain dan port 443.

Pertama install dulu service nginx

sudo apt install nginx -y

Kemudian buat serverrblock nginxnya

sudo nano /etc/nginx/sites-available/mattermost.conf

masukkan baris block berikut

upstream backend {
   server <IP-PUBLIK-VPS>: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.awanservers.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;
   }
}
  • Ganti pada bagian server <IP-PUBLIK-VPS>:8065; dengan IP PUBLIK VPS yang asli.

Kemudian buat symlinks ke sites-enable

sudo ln -s /etc/nginx/sites-available/mattermost.conf /etc/nginx/sites-enabled/

terkahir cek konfigurasi nginx dan restart service nginx

sudo nginx -t
sudo systemctl restart nginx

Jangan lupa untuk mempoitning domain mattermost ke ip adress server. Setelah itu Anda bisa membuka mattermost dengan domain.

Langkah #8 : Menginstall SSL

SSL yang kita pakai adalah Lets Encrypt. Langsung saja ke proses penginstalanya.

sudo apt install certbot python3-certbot-nginx

Kemudian jalankan perintah ini untuk mendapatkan dan menginstal sertifikat SSL

sudo certbot --nginx --agree-tos --redirect --email [email protected] -d mattermost.awanservers.com

Silahkan akses url website mattermos menggunakan domain dan sekarang sudah menggunakan HTTPs.

Dashboard Mattermost

Silahkan membuat user dan setelah itu login ke mattermost.

Town Square Mattermost

Langkah #9 : Konfigurasi Firewall

Pada konfigurasi di atas, mattermost masih bisa diakses menggunakan IP server. Untuk itu kita akan memblokir akses mattermost menggunakan IP dan memblokir port mattermost yaitu, 8065. Tujuanya adalah agar mattermost hanya bisa diakses melalui proxy nginx dan domain. Selain akses it kita disable.

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

Kemudian enable service UFW Firewallnya

sudo ufw enable

Dengan begitu kita hanya mengijinkan akses http, ssh, dan https saja ke server kita.

Penutup

Jadi begitulah langkah-langkah cara menginstall mattermost di ubuntu 22.04. Untuk pertanyaan lebih lanjut seputar instalasi bisa berkomentar di kolom bawah ini. dan Terimakasih sudah berkunjung.

Suka Menulis

You might also like
Cara Install FileGator di Ubuntu Server 22.04 dan 24.04

Cara Install FileGator di Ubuntu Server 22.04 dan 24.04

Cara Install NextCloud di Ubuntu 22.04 dengan Apache

Cara Install NextCloud di Ubuntu 22.04 dengan Apache

Cara Mengamankan Server Ubuntu dari Peretas

Cara Mengamankan Server Ubuntu dari Peretas

Cara Install Nextcloud di Ubuntu 22.04 dengan Nginx

Cara Install Nextcloud di Ubuntu 22.04 dengan Nginx