Self Hosting Communication Platform: Deploy Mattermost Chat Team on Alibaba Cloud

Tools platform Chat Teams open source yang bisa di-host sendiri di server menggunakan Mattermost
Deploy Mattermost Chat Team Docker di Alibaba Cloud VPS Indonesia

Pernah nggak sih kalian kepikiran buat punya platform chat internal yang nggak bergantung sama layanan cloud publik kayak Slack, Microsoft Teams dan lain lain? Apalagi kalau kita butuh kontrol penuh atas data dan pengin bebas ngoprek fitur-fitur sesuai kebutuhan tim.
Mattermost ini ibaratnya Slack versi open-source yang bisa kamu install di server sendiri. Fiturnya lengkap, bisa diintegrasiin sama banyak tools developer (kayak Jira, GitHub, Jenkins), dan yang paling penting, komunitasnya aktif!
Nah, di artikel ini kita bakal ngobrolin gimana cara self hosting Mattermost—platform chat team open-source favorit banyak engineer.

Prerequisites

Sebelum kita mulai, ada beberapa hal yang perlu disiapin dulu nih:

  • Akun Alibaba Cloud yang aktif
  • VPS (ECS) minimal 2 vCPU, RAM 4 GB, OS Ubuntu 22.04 dengan storage minimal 50 GB
  • Akses SSH ke server
  • Docker & Docker Compose udah terinstall
  • Domain/subdomain untuk Mattermost (contoh: chat.dika.dev)
  • SSL “Let’s encrypt” Sertifikat agar mattermost dapat diakses menggunakan protokol HTTPS

Apa Itu Self-Hosting Platform Komunikasi dan Kenapa Mattermost?

Sebelum kita loncat ke teknis Deploy Mattermost dengan Docker, penting banget nih buat kita sepaham dulu soal konsep dasarnya. Kenapa sih self-hosting itu menarik, dan kenapa dari sekian banyak pilihan, Mattermost yang jadi pilihan?

Apa Sih Platform Komunikasi Self-Host Itu?

Gampangnya gini, self-hosting communication platform itu artinya kamu punya dan ngelola sendiri aplikasi buat ngobrol dan kolaborasi tim (kayak chat, file sharing, video call mungkin) di server punya kamu sendiri, bukan numpang di server penyedia layanan. Jadi, ibaratnya kamu bangun rumah sendiri, bukan sewa apartemen.

Keuntungannya apa aja?

  1. Kontrol Penuh atas Data (Data Sovereignty): Ini yang paling utama. Semua percakapan, file, informasi sensitif perusahaan, semuanya ada di tanganmu. Kamu yang nentuin kebijakan keamanannya, kamu yang ngatur siapa aja yang boleh akses. Gak ada lagi cerita data “disandera” atau tiba-tiba syarat dan ketentuan layanan berubah seenaknya.
  2. Kustomisasi Tanpa Batas: Karena servernya punya sendiri, aplikasinya juga bisa kamu utak-atik sesuai kebutuhan. Mau nambah fitur? Ubah tampilan? Integrasi sama sistem internal lain?.
  3. Potensi Hemat Biaya Jangka Panjang: Awalnya mungkin kerasa ada investasi buat server dan waktu buat setup. Tapi buat tim yang besar atau penggunaan jangka panjang, self-hosting bisa jadi lebih murah daripada bayar langganan bulanan per pengguna ke penyedia SaaS.
  4. Fleksibilitas Integrasi: Platform self-host biasanya lebih gampang diintegrasikan dengan tools atau sistem lain yang udah ada di perusahaanmu. Bayangin integrasi Mattermost dengan tools developer kayak Jira atau GitLab dll.
  5. Tidak Tergantung Pihak Ketiga: Bisnis kamu gak akan terganggu kalau tiba-tiba penyedia layanan SaaS favoritmu bangkrut, diakuisisi, atau ganti model bisnis. Kamu yang pegang kendali penuh.

Tentu ada tantangannya juga, kayak butuh pengetahuan teknis buat setup dan maintenance, serta tanggung jawab penuh soal keamanan dan uptime. Tapi, buat kita para DevOps, atau SysAdmin, tantangan kayak gini justru lebih seru!

Kenapa Mattermost Jadi Pilihan? Slack Kan Udah Oke?

Nah, ini pertanyaan bagus: “Mattermost vs Slack, mana yang lebih oke?” Slack emang populer banget, UI-nya cakep, fiturnya banyak. Tapi, Slack itu proprietary dan modelnya SaaS. Buat yang pengen self-host, Slack jelas bukan pilihan. Di sinilah Mattermost jadi pilihan.

Alasan Kenapa Mattermost Layak Dipertimbangkan:

  1. Open Source: Lisensi MIT-nya Mattermost ngasih kamu kebebasan buat pake, modifikasi, dan distribusi. Ini artinya gak ada biaya lisensi tersembunyi dan kamu bisa “ngintip” kode sumbernya kalau penasaran.
  2. Dirancang untuk Self-Hosting: Mattermost dari awal emang didesain buat di-install di server sendiri. Jadi, dokumentasi dan dukungannya buat skenario self-host itu cukup lengkap.
  3. Fokus pada Keamanan dan Privasi: Karena kamu yang pegang data, Mattermost nyediain banyak fitur keamanan, mulai dari enkripsi at-rest dan in-transit, otentikasi multi-faktor (MFA), sampai integrasi dengan direktori perusahaan (LDAP/AD).
  4. Skalabilitas: Mattermost bisa di-deploy dalam berbagai konfigurasi, mulai dari server tunggal buat tim kecil, sampai arsitektur high-availability buat ribuan pengguna. Cocok buat kolaborasi tim internal perusahaan skala apapun.
  5. Kaya Fitur dan Integrasi: Jangan salah, meskipun open-source, fitur Mattermost gak kalah sama kompetitor. Ada channels publik dan privat, direct messages, threads, file sharing, pencarian canggih, notifikasi, emojis, dan yang paling penting, integrasi Mattermost dengan tools developer seperti GitHub, GitLab, Jenkins, Jira, dan masih banyak lagi lewat webhooks dan API. Ada juga plugin marketplace yang terus berkembang.
  6. Migrasi Mudah dari Slack: Kalau tim kamu udah terlanjur pakai Slack dan mau pindah ke Mattermost, ada tools buat impor data dari Slack. Jadi, transisinya bisa lebih mulus.
  7. White-Labeling: Kamu bisa kustomisasi tampilan Mattermost biar sesuai sama brand perusahaanmu. Ganti logo, warna, bahkan teks tertentu. Ini penting buat branding internal.

Jadi, kalau kamu cari platform komunikasi tim yang aman, fleksibel, bisa di-custom, dan yang paling penting, bisa kamu kontrol sepenuhnya dengan self-hosting, Mattermost adalah jawaban yang sangat tepat.

Deploy Mattermost menggunakan Docker

Nah, ini dia bagian yang paling ditunggu-tunggu! Kita bakal praktek langsung deploy Mattermost pakai Docker di server. Tinggal ikutin langkah-langkahnya aja, simple, cepat dan bisa buat skala production.

1. Bikin ECS Instance di Alibaba Cloud

Langkah pertama adalah nyiapin server buat Mattermost kita, yaitu sebuah server virtual atau Elastic Compute Service (ECS) Instance di Alibaba Cloud.

  1. Login ke Konsol Alibaba Cloud: Buka browser, akses konsol Alibaba Cloud, dan login pake akun kamu.
  2. Pilih Region Data Center: Penting nih! Pilih region yang paling deket sama mayoritas pengguna kamu. Kalau targetnya Indonesia, pilih region Indonesia (Jakarta). Ini biar latency-nya kecil.
  3. Buat ECS Instance Baru:
    • Dari dashboard, cari layanan “Elastic Compute Service” (ECS), lalu klik “Instances”.
    • Klik tombol “Create Instance”.
    • Billing Method: Pilih antara “Subscription” (bayar di depan buat periode tertentu, biasanya lebih murah buat jangka panjang) atau “Pay-As-You-Go” (bayar sesuai pemakaian, dan fleksibel).
    • Region and Zone: Pastikan region-nya udah bener (misal, Indonesia (Jakarta)). Zone bisa dipilih salah satu yang tersedia, biasanya gak terlalu signifikan bedanya buat satu server.
    • Instance Type: Ini krusial! Pilih tipe instans yang sesuai. Mattermost merekomendasikan minimal:
      • Untuk 1-1000 pengguna: 2 vCPU, 4 GB RAM.
      • Untuk 1000-2000 pengguna: 4 vCPU, 8 GB RAM.
  4. Image (Sistem Operasi): Pilih “Public Image”. Untuk OS-nya, kita rekomendasikan Ubuntu Server versi LTS terbaru (misalnya Ubuntu 22.04 LTS).
  5. Storage:
    • System Disk: Biasanya SSD (ESSD) udah cukup bagus. Ukuran default (misal 50GB) biasanya cukup buat OS dan Docker.
    • Data Disk (Opsional tapi Direkomendasikan): Untuk data Mattermost (database, file uploads), sangat disarankan pakai Data Disk terpisah. Ini memudahkan kalau mau resize, snapshot, atau ganti server. Pilih ukuran sesuai perkiraan kebutuhan (misal 50GB atau 100GB ESSD).
  6. Duration & Quantity: Kalau pilih Subscription, tentuin durasinya. Quantity pastinya 1.
  7. Networking:
    • Network: Pilih VPC (Virtual Private Cloud) yang udah ada, atau buat baru kalau belum punya. VPC ini kayak jaringan pribadi virtualmu di cloud.
    • VSwitch: Pilih VSwitch yang ada di dalam VPC tersebut.
    • Security Group: Ini penting banget buat firewall! Buat Security Group baru atau pilih yang sudah ada. Pastikan kamu membuka port-port berikut:
      • SSH (Port 22): Buat ngakses server via terminal. Wajib!
      • HTTP (Port 80): Buat akses Mattermost via web (sebelum pakai SSL).
      • HTTPS (Port 443): Buat akses Mattermost via web dengan aman (setelah SSL di-setting).
      • Mattermost juga secara default berjalan di port 8065. Kita bisa ekspos ini langsung atau, lebih baik, pakai reverse proxy (Nginx) di port 80/443. Untuk awal, buka 22, 80, 443. Nanti port 8065 hanya perlu diakses dari dalam server (localhost) atau dari reverse proxy.
    • Public IP Address: Centang “Assign public IPv4 address” biar server bisa diakses dari internet.
  8. Logon Credentials:
    • Authentication Method: Pilih “Password” atau “Key Pair”. “Key Pair” (SSH Key) jauh lebih aman daripada password. Kalau belum punya, buat Key Pair baru, download private key (.pem file)-nya, dan simpen baik-baik. Kalau pilih password, bikin password yang kuat.
    • Advanced (Opsional): Kamu bisa kasih nama buat instance-nya (Instance Name, Host Name) biar gampang diinget.
    • Review dan Create: Cek lagi semua konfigurasi. Kalau udah yakin, klik “Create Instance”. Tunggu beberapa menit sampai servernya selesai dibuat dan statusnya “Running”.

Setelah server ECS kamu jadi dan berjalan, catat Public IP Address-nya. Ini yang bakal kita pakai buat SSH ke server. Jika kamu memilih Key Pair, pastikan file .pem kamu aman dan memiliki permission yang benar (chmod 400 namafile.pem).

2. Setting Domain dan DNS

Untuk kemudahan akses, kita perlu menyiapkan domain/subdomain untuk Mattermost. Berikut langkah-langkahnya:

  1. Beli Domain di Namecheap atau penyedia domain lainnya, jika sudah ada domain, kamu bisa menggunakan subdomain untuk mattermost.
  2. Arahkan A record dari domain/subdomain (misal chat.dika.dev) ke IP publik instance ECS yang sudah dibuat sebelumnya.

Contoh konfigurasi DNS yang diperlukan:

Type: A
Host: chat
Value: [IP Publik ECS] misalnya 192.168.100.202
TTL: 600

Setelah mengkonfigurasi DNS, tunggu beberapa saat hingga perubahan DNS terpropagasi secara global (biasanya 5-15 menit).

3. Instal Docker dan Docker Compose

Sebelumnya saya sudah pernah membahas panduan instalasi docker di berbagai distribusi linux, tutorial tersebut dapat kamu baca di link Install Docker di Berbagai distro Linux, pastikan kamu install terlebih dahulu docker dan docker compose sebelum mengikuti panduan selanjutnya.

4. Konfigurasi Mattermost dengan docker compose

Langkah berikutnya adalah menyiapkan file docker-compose dan juga credentials untuk mattermost.

4.1 Clone Repositori Mattermost

Clone repository mattermost dengan tools git, lalu masuk ke folder mattermost dengan perintah berikut:

Bash
git clone https://github.com/mattermost/docker
cd docker

4.2 Konfigurasi .env file

Edit file .env sesuai kebutuhan. Misal password database, path volume, dan sebagainya.

Bash
mv env.example .env

Sesuaikan konfigurasi .env seperti konten dibawah ini, dan untuk lainya dapat di abaikan mengikuti default:

DOMAIN=chat.dika.dev
TZ=Asia/Jakarta
POSTGRES_USER=mattermost_user
POSTGRES_PASSWORD=M4tt3rm0sT_S3Cu12EP@ssW0rD
POSTGRES_DB=mattermost
RESTART_POLICY=always
  • DOMAIN = isi dengan domain/subdomain anda misalnya: chat.dika.dev
  • TZ = Zona waktu jakarta indonesia, dan isi dengan Asia/Jakarta
  • POSTGRES_USER = username database postgresql
  • POSTGRES_PASSWORD = kata sandi database postgresql
  • POSTGRES_DB = nama database postgresql
  • RESTART_POLICY = pengaturan policy restart service

Simpan konfigurasi yang sudah anda buat sebelumnya.

4.3 Buat direktori mattermost dan permission folder

Buat Direktori untuk Volumes mattermost secara manual dan pastikan permission-nya benar, terutama untuk data yang akan ditulis oleh proses di dalam kontainer (yang mungkin berjalan dengan user non-root).

Bash
mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}

Untuk beberapa direktori yang akan ditulis oleh Mattermost (yang berjalan sebagai user mattermost UID/GID 2000 di dalam kontainer), kita perlu atur kepemilikannya di host agar bisa ditulis.

Bash
sudo chown -R 2000:2000 ./volumes/app/mattermost

Jika direktori ./volumes/db/data untuk PostgreSQL membutuhkan permission khusus, biasanya Docker menanganinya saat inisialisasi. Namun, jika ada masalah permission, kamu mungkin perlu menyesuaikannya juga.

4.4 Menjalankan mattermost docker

Pastikan kamu masih berada di dalam direktori ~/mattermost (tempat file docker-compose.yml berada).
Langkah selanjutnya adalah menjalankan mattermost dengan tools docker compose tanpa nginx bawaan mattermost, karena konfigurasi nginx akan dilakukan terpisah. Lalu, jalankan perintah:

Bash
docker compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d

cek Status Kontainer: Setelah perintah di atas selesai, kamu bisa cek apakah kontainer-kontainernya berjalan dengan baik:

Bash
sudo docker ps

Kamu seharusnya melihat dua kontainer (misalnya docker-mattermost-1 dan docker-postgres-1) dengan status Up atau healthy.

Lihat Log (Jika Ada Masalah): Kalau ada masalah atau mau lihat proses startup, kamu bisa lihat log dari masing-masing kontainer:

Bash
sudo docker compose logs -f

Ini akan menampilkan log gabungan dari semua layanan. Untuk log spesifik:

Bash
sudo docker logs -f docker-mattermost-1  # Log Mattermost
sudo docker logs -f docker-postgres-1   # Log PostgreSQL

Tekan Ctrl+C untuk berhenti melihat log.

5. Setup Nginx Reverse Proxy + SSL Let’s Encrypt

Kita akan pakai Nginx sebagai reverse proxy. Nginx bakal nerima koneksi dari luar di port 80 (HTTP) dan 443 (HTTPS), terus nerusin ke Mattermost yang jalan di port 8065.

5.1 Instal Nginx dan Certbot

Jalankan perintah berikut untuk instalasi nginx, certbot dan plugin certbot nginx:

Bash
sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx

5.2 Aktifkan nginx dan Jalankan pada saat boot

Aktfikan service nginx dan jalankan pada saat boot server.

Bash
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

5.3 Konfigurasi domain Nginx Mattermost

Buat konfigurasi file dengan nama mattermost.conf pada folder yang berlokasi /etc/nginx/conf.d/mattermost.conf, lalu isi konten seperti dibawah ini, dan jangan lupa ganti server_name menjadi domain kamu.

Bash
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

upstream backend {
    server localhost:8065;
    keepalive 64;
}

server {
    server_name chat.dika.dev;
    listen 80;
    listen [::]:80;

    access_log /var/log/nginx/mattermost.access.log;
    error_log /var/log/nginx/mattermost.error.log warn;

    gzip on;
    gzip_comp_level 5;
    gzip_min_length 256;
    gzip_proxied any;
    gzip_vary on;
    gzip_types
        application/atom+xml
        application/javascript
        application/json
        application/ld+json
        application/manifest+json
        application/rss+xml
        application/vnd.geo+json
        application/vnd.ms-fontobject
        application/x-font-ttf
        application/x-web-app-manifest+json
        application/xhtml+xml
        application/xml
        font/opentype
        image/bmp
        image/svg+xml
        image/x-icon
        text/cache-manifest
        text/css
        text/plain
        text/vcard
        text/vnd.rim.location.xloc
        text/vtt
        text/x-component
        text/x-cross-domain-policy;

    # Static file caching
    location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|css|js)$ {
    proxy_pass http://localhost:8065;
    proxy_cache_valid 200 7d;
    proxy_cache_valid 404 5m;
    expires 7d;
    add_header Cache-Control "public";
    }

    server_tokens off;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy no-referrer;
    add_header Strict-Transport-Security "max-age=63072000" always;
    add_header Permissions-Policy "interest-cohort=()";
    add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; connect-src 'self' wss://$host;";
    add_header X-Robots-Tag "noindex";

    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_set_header Early-Data $ssl_early_data;
        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_http_version 1.1;
        proxy_pass http://backend;
    }

    location / {
        client_max_body_size 100M;
        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_set_header Early-Data $ssl_early_data;
        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;
    }
}

Lalu hapus bawaan default file yang tidak digunakan pada folder /etc/nginx/sites-enabled dan juga /etc/nginx/sites-available dengan cara berikut:

Bash
sudo rm -r /etc/nginx/sites-enabled/*
sudo rm -r /etc/nginx/sites-available/*

Test nginx dengan menjalankan perintah berikut, untuk memastikan konfigurasi tidak ada yang error:

Bash
sudo nginx -t

Output result:

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

Restart konfigurasi nginx sebelum melakukan generate SSL Lets’Encrypt

Bash
sudo nginx -s reload

5.4 Firewall Config (UFW) Optional

Jika default kamu menggunakan firewall ufw maka kamu perlu enable http dan https protokol dengan perintah berikut:

Bash
sudo ufw allow http
sudo ufw allow https

atau jika ingin menonaktifkan firewall ufw, kamu bisa menjalankan perintah dibawah:

Bash
sudo systemctl stop ufw
sudo systemctl disable ufs

5.5 Generate SSL Let’e Encrypt

Jalankan perintah berikut untuk generate SSL certificate, agar platform mattermost diakses menggunakan protokol HTTPS:

Bash
sudo certbot --nginx --non-interactive --agree-tos -m [email protected] -d chat.dika.dev

Ganti email menggunakan email kamu
misalnya: [email protected]
serta domain/subdomain kamu.

misalnya: chat.dika.dev

Output result:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for chat.dika.dev

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/chat.dika.dev/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/chat.dika.dev/privkey.pem
This certificate expires on 2025-08-11.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for chat.dika.dev to /etc/nginx/conf.d/chat.dika.dev.conf
Congratulations! You have successfully enabled HTTPS on https://chat.dika.dev

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

5.5 Tes Akses via Domain dengan HTTPS:

Buka browser dan akses misalnya: https://chat.dika.dev (ganti dengan domain/subdomain mu).

Setelah berhasil dibuka, klik View in Browser, kemudian ikuti dan isi form sebagai akun administrator:

Jika sudah diisi klik tombol Create Account, dan halaman akan berpindah ke chat dashboard mattermost seperti tampilan berikut:

6. Optimasi Mattermost untuk Production

Kustomisasi Mattermost:

  • Undang temanmu ke mattermost
  • Buat workspace untuk memisahkan tim
  • Ganti Logo mattermost dengan logo perusahaanmu dan juga
  • Site tittle dengan nama perusahaanmu

Integrasi Third party:

  • Integrasi dengan SMTP Email
  • Integrasi dengan Alibaba Cloud Object Storage (OSS)
  • Disable registration user
  • Integrasi dengan DevOps Tools seperti gitlab/github dan lainya.
  • Plugin mattermost dapat kamu temukan di link berikut: https://mattermost.com/marketplace/

Keamanan & Autentikasi

  • Aktifin 2FA
  • Kalo enterprise, integrasi ke LDAP atau SAML
  • Bikin batasan akses pakai IP atau firewall

Backup dan Restore
Penting banget buat nyiapin backup harian. Bisa pake cron, bash script, atau tool lain. Yang penting, jangan sampe data chat hilang gara-gara lupa backup.

Monitoring & Logging
Biar gampang debug atau mantau performa, integrasiin ke Grafana, Prometheus, atau ELK Stack.

Kesimpulan

Self-hosting platform komunikasi tim seperti Mattermost memberimu kendali penuh atas data komunikasi perusahaan sambil tetap menikmati keunggulan cloud infrastructure. Dengan menggunakan Docker, deployment menjadi lebih mudah, portable, dan skalabel.

Langkah Selanjutnya?

  • Kontribusi Balik (Kalau Bisa): Mattermost itu open source. Kalau kamu nemu bug atau punya ide fitur, jangan ragu buat kontribusi ke komunitas.
  • Ajak Tim Kamu Pakai: Sosialisasikan ke tim, kasih panduan singkat, dan dorong penggunaannya.
  • Terus Belajar dan Eksplorasi: Mattermost itu fiturnya banyak. Komunitasnya juga aktif. Jangan berhenti belajar. Mungkin kamu nemu plugin keren atau trik optimasi baru.

Referensi:

Previous Article

Step-by-Step Instalasi Docker di Berbagai Distro Linux

Next Article

Cara Install Ruby on Rails di Ubuntu Linux dengan RBEnv

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *


Let’s Keep in Touch

Get handpicked content and updates — no noise, just the good stuff.
Sent with care, not robots 🤖