Cara Menginstal Mattermost di Ubuntu: Panduan Lengkap Langkah demi Langkah
Mattermost adalah platform messaging dan kolaborasi tim open-source yang powerful, 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 berlangganan 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.
Daftar Isi
- Prasyarat
- Perbarui Sistem Anda
- Instal Dependensi yang Diperlukan
- Unduh dan Instal Mattermost
- Atur Database PostgreSQL
- Konfigurasi Mattermost
- Buat Layanan Systemd
- Konfigurasi Nginx sebagai Reverse Proxy
- Amankan Mattermost dengan SSL (HTTPS)
- Verifikasi Akhir
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 production)
- Hak istimewa sudo atau root di server
- Nama domain yang menunjuk ke alamat IP server Anda (sangat direkomendasikan untuk deployment production)
- Hardware minimum: 1 vCPU, 2 GB RAM, 10 GB ruang disk (untuk tim kecil); tingkatkan untuk deployment yang lebih besar
> Tips Hosting: 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 self-hosted.
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 -yRestart server jika pembaruan kernel diterapkan:
sudo reboot3. Instal Dependensi yang Diperlukan
Mattermost bergantung pada tiga komponen kunci: 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 berjalan:
sudo systemctl status postgresql
sudo systemctl status nginxKedua layanan harus menampilkan active (running).
4. Unduh dan Instal Mattermost
Langkah 1: Unduh 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.
Langkah 2: Ekstrak Arsip
tar -xvzf mattermost-team-9.5.0-linux-amd64.tar.gzLangkah 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/mattermostLangkah 4: Buat Pengguna Sistem Mattermost Khusus
Menjalankan Mattermost sebagai pengguna khusus yang tidak memiliki hak istimewa adalah praktik terbaik keamanan yang penting:
sudo useradd -r -m -d /opt/mattermost -s /bin/false mattermostLangkah 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. Atur Database PostgreSQL
Mattermost memerlukan database PostgreSQL dan pengguna khusus. 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 menghasilkan 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 gagal — penting untuk deployment production apa pun.
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 Berjalan
sudo systemctl status mattermostAnda harus melihat active (running). Mattermost mendengarkan di port 8065 secara default.
8. Konfigurasi Nginx sebagai Reverse Proxy
Nginx bertindak sebagai reverse proxy, meneruskan lalu lintas HTTP/HTTPS masuk dari port 80/443 ke port internal Mattermost 8065. Ini juga memungkinkan 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 production apa pun. Ini mengenkripsi semua komunikasi antara pengguna dan server Anda, melindungi kredensial dan pesan dari intersepsi.
> SSL Dibuat Mudah: AlexHost menawarkan Sertifikat SSL yang terjangkau untuk semua jenis website dan aplikasi. Alternatifnya, 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:
- Verifikasi 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: Restart Nginx
sudo systemctl restart nginxInstance Mattermost Anda sekarang dapat diakses di https://your_domain.com.
10. Verifikasi Akhir
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 Setup Berbasis Web
- Buka browser Anda dan navigasikan ke
https://your_domain.com - Anda akan disambut oleh wizard setup Mattermost
- Buat akun administrator Anda
- Konfigurasi tim dan workspace pertama Anda
- Undang anggota tim dan mulai berkolaborasi
Pemecahan Masalah Umum
| Masalah | Kemungkinan Penyebab | Solusi |
|---|---|---|
| Layanan Mattermost gagal dimulai | Kredensial database salah di ###PPT_ |
