Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Administrasi Linux

Cara Menginstal Mattermost di Ubuntu: Panduan Lengkap Langkah demi Langkah

Mattermost adalah platform messaging dan kolaborasi tim yang powerful dan open-source yang memberikan organisasi kontrol penuh atas infrastruktur komunikasi mereka. Sebagai alternatif self-hosted untuk Slack dan Microsoft Teams, Mattermost menawarkan keamanan tingkat enterprise, kepemilikan data lengkap, dan kustomisasi ekstensif — semuanya tanpa biaya langganan SaaS berulang.

Panduan komprehensif ini memandu Anda melalui setiap langkah instalasi dan konfigurasi Mattermost di server Ubuntu, termasuk setup database PostgreSQL, konfigurasi reverse proxy Nginx, dan integrasi sertifikat SSL.

1. Prasyarat

Sebelum Anda memulai, pastikan persyaratan berikut sudah terpenuhi:

  • Server yang menjalankan Ubuntu 20.04 atau Ubuntu 22.04 LTS (Ubuntu 18.04 sudah end-of-life dan tidak direkomendasikan untuk produksi)
  • Hak akses Sudo atau root di server
  • Nama domain yang menunjuk ke alamat IP server Anda (sangat direkomendasikan untuk deployment produksi)
  • Hardware minimum: 1 vCPU, 2 GB RAM, 10 GB ruang disk (untuk tim kecil); tingkatkan untuk deployment yang lebih besar

> Hosting Tip: Untuk deployment Mattermost yang lancar, pertimbangkan paket VPS Hosting yang andal dari AlexHost. Dengan penyimpanan SSD, akses root penuh, dan uptime terjamin, instance VPS AlexHost ideal untuk alat kolaborasi yang di-host sendiri.

2. Perbarui Sistem Anda

Selalu mulai dengan menyegarkan indeks paket Anda dan menerapkan semua pembaruan keamanan dan sistem yang tertunda:

sudo apt update
sudo apt upgrade -y

Mulai ulang server jika pembaruan kernel diterapkan:

sudo reboot

3. Instal Dependensi yang Diperlukan

Mattermost bergantung pada tiga komponen utama: PostgreSQL (database), Nginx (reverse proxy), dan Certbot (manajemen sertifikat SSL).

Instal semua paket yang diperlukan dalam satu langkah:

sudo apt install -y postgresql postgresql-contrib
sudo apt install -y nginx
sudo apt install -y certbot python3-certbot-nginx

Verifikasi bahwa PostgreSQL dan Nginx sedang berjalan:

sudo systemctl status postgresql
sudo systemctl status nginx

Kedua layanan harus menampilkan active (running).

4. Download dan Install Mattermost

Step 1: Download Rilis Mattermost Terbaru

Kunjungi halaman rilis resmi Mattermost untuk menemukan versi stabil terbaru. Gunakan wget untuk mengunduhnya langsung ke server Anda:

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

> Catatan: Ganti 9.5.0 dengan nomor versi terbaru yang tersedia. Selalu gunakan rilis stabil terbaru untuk patch keamanan dan fitur baru.

Step 2: Ekstrak Arsip

tar -xvzf mattermost-team-9.5.0-linux-amd64.tar.gz

Step 3: Pindahkan Mattermost ke Direktori Sistem

Pindahkan folder yang diekstrak ke /opt, yang merupakan lokasi standar Linux untuk perangkat lunak pihak ketiga opsional:

sudo mv mattermost /opt/mattermost

Step 4: Buat Pengguna Sistem Mattermost Khusus

Menjalankan Mattermost sebagai pengguna khusus tanpa hak istimewa adalah praktik keamanan terbaik yang kritis:

sudo useradd -r -m -d /opt/mattermost -s /bin/false mattermost

Step 5: Buat Direktori Data dan Atur Izin

sudo mkdir -p /opt/mattermost/data
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R 750 /opt/mattermost

5. Siapkan Database PostgreSQL

Mattermost memerlukan database PostgreSQL dan pengguna yang didedikasikan. Ikuti langkah-langkah ini dengan hati-hati.

Langkah 1: Beralih ke Pengguna Sistem PostgreSQL

sudo -i -u postgres

Langkah 2: Buka Shell Interaktif PostgreSQL

psql

Langkah 3: Buat Database, Pengguna, dan Berikan Hak Istimewa

Jalankan perintah SQL berikut satu per satu:

CREATE DATABASE mattermost_db;
CREATE USER mattermost WITH PASSWORD 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON DATABASE mattermost_db TO mattermost;

> Catatan Keamanan: Ganti YourStrongPassword123! dengan kata sandi yang kuat dan unik. Gunakan pengelola kata sandi untuk membuat dan menyimpannya dengan aman.

Untuk PostgreSQL 15 dan yang lebih baru, Anda juga perlu memberikan hak istimewa skema:

c mattermost_db
GRANT ALL ON SCHEMA public TO mattermost;

Langkah 4: Keluar dari Shell PostgreSQL dan Kembali ke Pengguna Anda

q
exit

6. Konfigurasi Mattermost

Langkah 1: Buka File Konfigurasi Mattermost

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

Langkah 2: Perbarui Pengaturan Koneksi Database

Temukan blok SqlSettings dan perbarui dengan kredensial PostgreSQL Anda:

"SqlSettings": {
    "DriverName": "postgres",
    "DataSource": "postgres://mattermost:YourStrongPassword123!@localhost:5432/mattermost_db?sslmode=disable&connect_timeout=10",
    "DataSourceReplicas": [],
    "DataSourceSearchReplicas": [],
    "MaxIdleConns": 20,
    "ConnMaxLifetimeMilliseconds": 3600000,
    "MaxOpenConns": 300,
    "Trace": false,
    "AtRestEncryptKey": "",
    "QueryTimeout": 30
}

Langkah 3: Konfigurasi URL Situs

Temukan blok ServiceSettings dan atur domain Anda:

"ServiceSettings": {
    "SiteURL": "https://your_domain.com",
    ...
}

Ganti your_domain.com dengan nama domain aktual Anda.

Langkah 4: Simpan dan Keluar

Tekan Ctrl+X, kemudian Y, kemudian Enter untuk menyimpan dan menutup file.

7. Buat Layanan Systemd

Menjalankan Mattermost sebagai layanan systemd memastikan ia dimulai secara otomatis saat boot dan restart saat terjadi kegagalan — penting untuk setiap deployment produksi.

Langkah 1: Buat File Layanan

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

Langkah 2: Tambahkan Konfigurasi Layanan

Tempel konten berikut:

[Unit]
Description=Mattermost Team Messaging Server
After=network.target postgresql.service
Wants=postgresql.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=multi-user.target

Langkah 3: Aktifkan dan Mulai Layanan Mattermost

sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermost

Langkah 4: Verifikasi Layanan Sedang Berjalan

sudo systemctl status mattermost

Anda seharusnya melihat active (running). Mattermost mendengarkan pada port 8065 secara default.

8. Konfigurasi Nginx sebagai Reverse Proxy

Nginx bertindak sebagai reverse proxy, meneruskan traffic HTTP/HTTPS yang masuk dari port 80/443 ke port internal Mattermost 8065. Ini juga mengaktifkan dukungan WebSocket, yang diperlukan Mattermost untuk messaging real-time.

Langkah 1: Buat File Konfigurasi Nginx

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

Langkah 2: Tambahkan Konfigurasi Reverse Proxy

upstream backend {
    server localhost: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 your_domain.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;
        proxy_read_timeout 600s;
        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_pass http://backend;
    }
}

Ganti your_domain.com dengan nama domain aktual Anda.

Langkah 3: Aktifkan Konfigurasi Situs

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

Langkah 4: Uji Konfigurasi Nginx untuk Kesalahan Sintaks

sudo nginx -t

Output yang diharapkan:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Langkah 5: Restart Nginx

sudo systemctl restart nginx

9. Amankan Mattermost dengan SSL (HTTPS)

Menjalankan Mattermost melalui HTTPS adalah wajib untuk lingkungan produksi apa pun. Ini mengenkripsi semua komunikasi antara pengguna dan server Anda, melindungi kredensial dan pesan dari intersepsi.

> SSL Dibuat Mudah: AlexHost menawarkan SSL Certificates yang terjangkau untuk semua jenis situs web dan aplikasi. Atau, gunakan metode Let’s Encrypt gratis di bawah ini.

Langkah 1: Dapatkan Sertifikat SSL Gratis dengan Certbot

sudo certbot --nginx -d your_domain.com

Certbot akan secara otomatis:

  • Memverifikasi kepemilikan domain
  • Mengeluarkan sertifikat Let’s Encrypt
  • Memodifikasi konfigurasi Nginx Anda untuk mengaktifkan HTTPS
  • Menyiapkan pembaruan sertifikat otomatis

Langkah 2: Verifikasi Pembaruan Otomatis

sudo certbot renew --dry-run

Langkah 3: Mulai Ulang Nginx

sudo systemctl restart nginx

Instans Mattermost Anda sekarang dapat diakses di https://your_domain.com.

10. Verifikasi Final

Periksa Semua Layanan Berjalan

sudo systemctl status postgresql
sudo systemctl status mattermost
sudo systemctl status nginx

Uji Mattermost Langsung di Port 8065

curl -I http://localhost:8065

Anda harus menerima respons HTTP 200 OK atau redirect.

Selesaikan Pengaturan Berbasis Web

  1. Buka browser Anda dan navigasikan ke https://your_domain.com
  2. Anda akan disambut oleh wizard pengaturan Mattermost
  3. Buat akun administrator Anda
  4. Konfigurasikan tim dan workspace pertama Anda
  5. Undang anggota tim dan mulai berkolaborasi

Pemecahan Masalah Umum

MasalahPenyebab KemungkinanSolusi
Layanan Mattermost gagal dimulaiKredensial database salah di config.jsonPeriksa kembali DataSource string di SqlSettings
502 Bad Gateway di NginxMattermost tidak berjalan di port 8065Jalankan sudo systemctl restart mattermost
Kesalahan koneksi WebSocketHeader proxy WebSocket hilang di NginxVerifikasi blok lokasi WebSocket di konfigurasi Nginx
Kesalahan sertifikat SSLDomain tidak menunjuk ke IP serverPerbarui catatan DNS A dan tunggu propagasi
Koneksi database ditolakPostgreSQL tidak berjalanJalankan sudo systemctl start postgresql

Mengapa Memilih Host yang Andal untuk Mattermost?

Performa dan keandalan instans Mattermost Anda sangat bergantung pada infrastruktur yang mendasarinya. Untuk tim kecil hingga menengah, VPS yang dikonfigurasi dengan baik adalah pilihan ideal. Untuk organisasi yang lebih besar dengan volume pesan tinggi, pertimbangkan untuk upgrade ke Dedicated Server untuk performa maksimal, isolasi, dan kontrol.

Jika Anda membutuhkan nama domain untuk deployment Mattermost Anda, AlexHost menawarkan Domain Registration yang kompetitif dengan manajemen DNS lengkap. Dan jika Anda menjalankan beberapa layanan bersama Mattermost, Shared Web Hosting atau VPS dengan cPanel dapat menyederhanakan manajemen dengan panel kontrol yang intuitif.

Ringkasan

Anda telah berhasil menginstal dan mengonfigurasi Mattermost di Ubuntu dengan:

  • ✅ PostgreSQL sebagai database backend
  • ✅ Nginx sebagai reverse proxy tingkat produksi dengan dukungan WebSocket
  • ✅ Let’s Encrypt SSL untuk koneksi HTTPS terenkripsi
  • ✅ Layanan systemd untuk startup otomatis dan pemulihan crash
  • ✅ Izin file yang tepat dan pengguna sistem khusus untuk keamanan

Mattermost sekarang siap berfungsi sebagai hub komunikasi pribadi yang di-host sendiri untuk tim Anda — sepenuhnya di bawah kontrol Anda, tanpa data yang meninggalkan infrastruktur Anda.