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 -yMulai ulang server jika pembaruan kernel diterapkan:
sudo reboot3. 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-nginxVerifikasi bahwa PostgreSQL dan Nginx sedang berjalan:
sudo systemctl status postgresql
sudo systemctl status nginxKedua 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.gzStep 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/mattermostStep 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 mattermostStep 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/mattermost5. 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 postgresLangkah 2: Buka Shell Interaktif PostgreSQL
psqlLangkah 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
exit6. Konfigurasi Mattermost
Langkah 1: Buka File Konfigurasi Mattermost
sudo nano /opt/mattermost/config/config.jsonLangkah 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.serviceLangkah 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.targetLangkah 3: Aktifkan dan Mulai Layanan Mattermost
sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermostLangkah 4: Verifikasi Layanan Sedang Berjalan
sudo systemctl status mattermostAnda 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/mattermostLangkah 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 -tOutput yang diharapkan:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulLangkah 5: Restart Nginx
sudo systemctl restart nginx9. 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.comCertbot 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-runLangkah 3: Mulai Ulang Nginx
sudo systemctl restart nginxInstans 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 nginxUji Mattermost Langsung di Port 8065
curl -I http://localhost:8065Anda harus menerima respons HTTP 200 OK atau redirect.
Selesaikan Pengaturan Berbasis Web
- Buka browser Anda dan navigasikan ke
https://your_domain.com - Anda akan disambut oleh wizard pengaturan Mattermost
- Buat akun administrator Anda
- Konfigurasikan tim dan workspace pertama Anda
- Undang anggota tim dan mulai berkolaborasi
Pemecahan Masalah Umum
| Masalah | Penyebab Kemungkinan | Solusi |
|---|---|---|
| Layanan Mattermost gagal dimulai | Kredensial database salah di config.json | Periksa kembali DataSource string di SqlSettings |
| 502 Bad Gateway di Nginx | Mattermost tidak berjalan di port 8065 | Jalankan sudo systemctl restart mattermost |
| Kesalahan koneksi WebSocket | Header proxy WebSocket hilang di Nginx | Verifikasi blok lokasi WebSocket di konfigurasi Nginx |
| Kesalahan sertifikat SSL | Domain tidak menunjuk ke IP server | Perbarui catatan DNS A dan tunggu propagasi |
| Koneksi database ditolak | PostgreSQL tidak berjalan | Jalankan 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.
untuk semua layanan hosting