15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
01.11.2024
1 +1

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

  1. Prasyarat
  2. Perbarui Sistem Anda
  3. Instal Dependensi yang Diperlukan
  4. Unduh dan Instal Mattermost
  5. Atur Database PostgreSQL
  6. Konfigurasi Mattermost
  7. Buat Layanan Systemd
  8. Konfigurasi Nginx sebagai Reverse Proxy
  9. Amankan Mattermost dengan SSL (HTTPS)
  10. 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 -y

Restart server jika pembaruan kernel diterapkan:

sudo reboot

3. 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-nginx

Verifikasi bahwa PostgreSQL dan Nginx berjalan:

sudo systemctl status postgresql
sudo systemctl status nginx

Kedua 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.gz

Langkah 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

Langkah 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 mattermost

Langkah 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. 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 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 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
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 gagal — penting untuk deployment production apa pun.

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 Berjalan

sudo systemctl status mattermost

Anda 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/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 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.com

Certbot 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-run

Langkah 3: Restart Nginx

sudo systemctl restart nginx

Instance 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 nginx

Uji Mattermost Langsung di Port 8065

curl -I http://localhost:8065

Anda harus menerima respons HTTP 200 OK atau redirect.

Selesaikan Setup Berbasis Web

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

Pemecahan Masalah Umum

MasalahKemungkinan PenyebabSolusi
Layanan Mattermost gagal dimulaiKredensial database salah di ###PPT_
15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai