SSD Nodes Learn 🎉 VPS mulai $5.50/bln
Panduan Matt ConnorOleh Matt Connor

Perbandingan Alternatif Slack Self-Hosted Terbaik

Bandingkan Mattermost, Rocket.Chat, Synapse, dan Zulip berdasarkan RAM, database, push mobile, SSO, upgrade, lisensi, serta angka sizing resmi vendor.

Alternatif Slack self-hosted mana yang sebaiknya Anda jalankan

Alternatif Slack self-hosted yang layak digunakan oleh tim kecil adalah Mattermost, Rocket.Chat, Matrix dengan Synapse, dan Zulip. Untuk alat komunikasi tim internal pada satu server, gunakan Mattermost. Untuk komunitas publik, gunakan Zulip. Gunakan Matrix dengan Synapse jika Anda harus berkomunikasi dengan server milik pihak lain, dan hanya dalam kondisi tersebut, karena federation adalah satu-satunya kemampuan yang tidak dapat ditiru oleh alternatif lain. Federation juga mengubah tugas Anda sebagai administrator.

Daftar fitur tidak cukup untuk membedakan keempatnya. Semuanya menyediakan channel, thread, pencarian, upload file, dan aplikasi mobile. Perbedaannya terletak pada tuntutan operasional bulanannya: kapasitas memory, database yang harus tetap aktif, jalur push notification mobile yang mungkin tidak dapat Anda kendalikan, serta lisensi yang menentukan apakah fitur yang Anda perlukan tersedia tanpa pembayaran. Perbandingan berikut menggunakan aspek-aspek tersebut, pada skala 10 pengguna dan 100 pengguna.

Apa sebenarnya keempatnya

Mattermost adalah server Go dengan database PostgreSQL. Satu binary, satu database, satu file konfigurasi. Cara kerjanya mirip Slack, termasuk thread dan slash command, dan Mattermost adalah yang paling mudah dioperasikan di antara keempatnya. Ini merupakan kelebihan.

Rocket.Chat adalah aplikasi Node.js yang menggunakan MongoDB. Produk ini memiliki rangkaian fitur paling luas di antara keempatnya, termasuk panggilan suara dan video, serta kotak masuk omnichannel yang menggabungkan percakapan pelanggan dari email dan kanal sosial ke dalam antarmuka yang sama. Jika kotak masuk tersebut adalah alasan Anda mempertimbangkannya, bandingkan terlebih dahulu dengan meja dukungan Chatwoot khusus, karena server chat yang digunakan untuk dukungan pelanggan memiliki kebutuhan berbeda dari server chat yang digunakan untuk kerja tim.

Matrix adalah protokol, bukan produk. Synapse adalah server referensi (Python, PostgreSQL), sedangkan Element adalah client yang paling banyak digunakan. Ini satu-satunya opsi di sini yang memungkinkan server Anda berkomunikasi dengan server yang tidak Anda kelola.

Zulip adalah server Python (Django dan Tornado) dengan PostgreSQL, RabbitMQ, memcached, dan Redis sebagai komponennya, yang diinstal sebagai satu unit menggunakan script bawaannya. Modelnya menggunakan topik di dalam kanal, sehingga percakapan dari hari Selasa tetap dapat ditemukan pada hari Jumat. Versi 12.0 dirilis pada April 2026.

Berapa banyak RAM dan database mana, pada 10 pengguna dan 100 pengguna

Semua angka dalam bagan di bawah ini berasal dari dokumentasi proyek masing-masing, yang dibaca pada Agustus 2026. Tidak ada angka yang merupakan hasil pengukuran saya atau dibuat-buat. Dasarnya sama untuk setiap baris: konfigurasi terkecil yang dipublikasikan proyek tersebut, dengan database ikut dihitung jika proyek menghitungnya secara terpisah.

ChartRAM in the smallest deployment each project documents (vendor figures, August 2026)
The data behind this chart
[
  {
    "label": "Synapse",
    "published_ram_gb": 1,
    "notes": "Synapse install docs: at least 1 GB free RAM if you want to join large public rooms. PostgreSQL is required for production and is not sized."
  },
  {
    "label": "Mattermost",
    "published_ram_gb": 2,
    "notes": "Mattermost requirements: 1 to 1,000 users on 1 vCPU and 2 GB RAM, single server, database included."
  },
  {
    "label": "Zulip",
    "published_ram_gb": 2,
    "notes": "Zulip requirements: under 100 users on 1 CPU, 2 GB RAM and 2 GB swap. 100 users and above needs 2 CPUs and 4 GB."
  },
  {
    "label": "Rocket.Chat",
    "published_ram_gb": 8,
    "notes": "Rocket.Chat requirements: smallest published tier is 4 GiB for the app plus 4 GiB for MongoDB, rated up to 500 concurrent users."
  }
]

Baris-baris tersebut tidak memiliki cakupan yang sama, dan itulah temuan penting pertama. Angka 1 GB untuk Synapse adalah batas minimum bagi proses Synapse dengan syarat tertentu: dokumentasi meminta setidaknya RAM bebas sebesar itu jika Anda ingin bergabung ke ruang publik besar. PostgreSQL berada di luar angka tersebut. Angka 2 GB untuk Mattermost mencakup seluruh mesin, termasuk database, dan berlaku untuk 1 hingga 1.000 pengguna pada satu vCPU. Zulip mendokumentasikan 2 GB dan satu CPU untuk kurang dari 100 pengguna, ditambah swap 2 GB, lalu 4 GB dan dua CPU untuk 100 pengguna atau lebih. Rocket.Chat memublikasikan angka terbesar di sini, yaitu 8 GB, karena kebutuhan aplikasinya ditetapkan sebesar 4 GiB dan MongoDB sebesar 4 GiB, dan tingkat tersebut ditujukan untuk hingga 500 pengguna bersamaan.

Pada 10 pengguna, semua 4 aplikasi tersebut dapat berjalan pada perangkat keras yang tidak perlu Anda pertimbangkan lama. Pada 100 pengguna, perbedaannya mulai terlihat: Mattermost masih berada dalam tingkat 2 GB, Zulip memerlukan 4 GB dan CPU kedua, sedangkan tingkat terdokumentasi terkecil Rocket.Chat tetap 8 GB karena kebutuhan memori MongoDB ditentukan oleh mesin, bukan oleh jumlah pengguna.

Pilihan database lebih menentukan peningkatan kapasitas di masa mendatang daripada kinerja harian. Mattermost memerlukan PostgreSQL 14 atau yang lebih baru dan mulai menghentikan dukungan MySQL pada v11, sehingga instalasi MySQL hari ini berarti migrasi besok. Synapse berjalan pada SQLite, dan dokumentasinya sendiri menyatakan dengan jelas bahwa SQLite hanya sesuai untuk pengujian karena kinerjanya buruk di ruang besar. Rocket.Chat 8 memerlukan MongoDB 8.0, sehingga peningkatan database dan peningkatan chat menjadi satu proyek, bukan dua.

Apa yang sebenarnya Anda dapatkan dari VPS 2 GB

Paket 2 GB adalah ukuran awal di sebagian besar provider, dan kapasitas ini benar-benar memadai untuk dua dari empat aplikasi berikut.

  • Mattermost memadai. Mattermost adalah satu-satunya aplikasi yang dokumentasi vendornya menyebutkan ukuran tersebut secara spesifik, untuk hingga 1,000 pengguna, dengan PostgreSQL pada server yang sama. Sepuluh orang pada 2 GB masih berjalan nyaman.
  • Zulip memadai, dengan swap. Dokumentasinya merekomendasikan swap pada mesin dengan RAM di bawah 5 GB dan memperingatkan bahwa mesin dengan RAM minimal dapat mengalami error kehabisan memori selama upgrade. Pada kondisi tersebut, tools/webpack adalah langkah yang gagal. Ini adalah kegagalan nyata yang akan Anda temui saat upgrade, bukan saat instalasi.
  • Synapse memadai saat aktivitasnya rendah. Penggunaan memori saat idle kecil. Masalahnya adalah lonjakan penggunaan memori, dan bagian tentang federation di bawah menjelaskan sumbernya.
  • Rocket.Chat sebaiknya dihindari pada 2 GB, dan penyebabnya adalah storage engine MongoDB. WiredTiger menetapkan ukuran cache internal pada nilai yang lebih besar antara 50% dari (RAM dikurangi 1 GB) atau 256 MB. Jadi, pada mesin 2 GB, WiredTiger mencadangkan sekitar 512 MB sebelum Node.js dijalankan. Hasilnya bukan penolakan yang jelas. Aplikasi terinstal, berjalan, lalu melambat seiring bertambahnya riwayat, dan akhirnya kernel out of memory killer menghentikan proses yang saat itu menggunakan memori paling besar.

Periksa kapasitas yang benar-benar Anda miliki sebelum mengambil keputusan, karena provider menghitung RAM secara berbeda dari free:

free -h
swapon --show

Ingat bahwa chat server bukan satu-satunya komponen pada server. TLS (transport layer security) termination, backup, dan container runtime juga membutuhkan memori. Tempatkan server pilihan Anda di belakang reverse proxy yang Anda pahami, Nginx, Caddy, atau Traefik, dan jika Anda melakukan deployment dengan container, dasar-dasar Docker Compose untuk VPS adalah bagian yang sebaiknya dikonfigurasi dengan benar terlebih dahulu.

Apakah aplikasi seluler memerlukan server push milik sendiri

Ini adalah faktor yang biasanya diketahui setelah deployment, dan paling sering menentukan jawabannya.

Mekanismenya sebagai berikut. Apple Push Notification service (APNs) dan Firebase Cloud Messaging (FCM) hanya menerima notifikasi dari pihak yang memegang kredensial penandatanganan untuk aplikasi tertentu tersebut. Server Anda tidak dapat mengirim push ke aplikasi yang tidak Anda buat. Karena itu, server chat yang di-host sendiri dan menggunakan build App Store milik vendor harus meneruskan notifikasinya ke gateway vendor, dan vendor menentukan ketentuannya.

  • Mattermost. Opsi gratisnya adalah Test Push Notification Service (TPNS) di https://push-test.mattermost.com. Dokumentasi menyatakan bahwa layanan ini tidak direkomendasikan untuk production dan tidak memiliki service level agreement (SLA). Layanan ini hanya berfungsi dengan build App Store dan Play Store. Hosted Push Notification Service (HPNS) ditujukan untuk production dan memerlukan subscription berbayar. Opsi ketiga adalah mengompilasi push proxy sendiri. Opsi ini mengharuskan Anda membuat build aplikasi sendiri dengan kredensial APNs dan FCM milik Anda.
  • Rocket.Chat. Push mengharuskan workspace didaftarkan ke Rocket.Chat Cloud, dan workspace komunitas dibatasi hingga 10,000 notifikasi push per bulan. Jumlah itu setara dengan sekitar 330 per hari untuk seluruh workspace. Setelah kuota habis, notifikasi berhenti diterima sampai bulan berikutnya dimulai. Bagi pengguna, kondisi ini terlihat seperti aplikasi rusak.
  • Matrix dengan Element. Synapse mengirim notifikasi ke push gateway, dan aplikasi Element resmi diarahkan ke gateway yang dijalankan matrix.org di https://matrix.org/_matrix/push/v1/notify. Payload membawa identifier event dan room, bukan teks pesan. Aplikasi kemudian mengambil konten dari server Anda, sehingga gateway hanya melihat metadata, bukan percakapan. Anda dapat menjalankan gateway Sygnal sendiri. Namun, Anda harus membuat dan mendistribusikan aplikasi sendiri. Di Android, tersedia opsi tengah: UnifiedPush dengan server ntfy yang Anda host sendiri.
  • Zulip. Paket gratis mencakup mobile push service untuk hingga 10 pengguna. Jika jumlah pengguna lebih dari 10, Anda memerlukan plan. Paket Community gratis mencakup banyak organisasi nonkomersial. Zulip 12.0, pada April 2026, menambahkan enkripsi end-to-end untuk payload push.

Dengan sepuluh pengguna, semua opsi ini menyediakan notifikasi yang berfungsi tanpa biaya. Pada seratus pengguna, situasinya berubah: Zulip mengharuskan penggunaan plan, Mattermost tetap berfungsi melalui test service tetapi tanpa SLA dan support, batas bulanan Rocket.Chat menjadi kendala, sedangkan Matrix tidak terpengaruh karena gateway-nya dapat digunakan secara gratis.

Layanan yang menyediakan single sign-on tanpa biaya

Single sign-on (SSO) adalah area yang paling jelas menunjukkan perbedaan model bisnis open core.

  • Zulip menyertakan SAML (security assertion markup language) dan LDAP (lightweight directory access protocol) pada server self-hosted tanpa biaya. Tidak ada tier terpisah yang perlu dibeli.
  • Synapse mendukung OpenID Connect (OIDC), SAML, dan CAS melalui file konfigurasinya sendiri tanpa biaya. Deployment yang lebih baru semakin banyak menggunakan Matrix Authentication Service, yaitu service terpisah dengan migrasi satu arah dari autentikasi Synapse klasik. Karena itu, rencanakan perpindahan tersebut sejak awal.
  • Rocket.Chat Community Edition mendukung login LDAP dan SAML dasar. Sinkronisasi atribut pengguna tambahan, pemetaan grup dan tim, serta sinkronisasi latar belakang memerlukan lisensi enterprise.
  • Mattermost Team Edition gratis hanya menyediakan GitLab OAuth. SAML, AD/LDAP, dan OpenID Connect merupakan fitur berbayar.

Jika Anda berencana menjalankan beberapa service dengan satu login, tempatkan identity provider Authentik yang di-host sendiri di depannya dan periksa layanan mana dari keempat layanan tersebut yang benar-benar dapat terhubung dengannya berdasarkan lisensi yang Anda miliki.

Biaya federation yang sebenarnya

Federation adalah alasan Matrix ada. Pengguna Anda bergabung ke room yang di-host di server milik orang lain dan berbicara dengan pengguna yang akunnya berada di sana, seperti server email yang saling bertukar email. Tidak ada opsi lain di sini yang menyediakan kemampuan ini. Jika Anda membutuhkannya, tidak ada pilihan lain di halaman ini yang dapat menggantikannya.

Federation juga menjadi alasan Synapse memiliki jenis beban kerja yang berbeda. Saat pengguna Anda bergabung ke room federasi, server Anda menyimpan salinan state dan event room tersebut. Server Anda juga menyimpan cache media yang diunggah pengguna di server lain, seperti avatar, gambar, dan file. Penggunaan disk Anda kemudian ditentukan oleh room yang tidak Anda buat dan oleh pengguna yang tidak memiliki akun di server Anda. Karena itu, instalasi Synapse dapat memiliki media store yang jauh lebih besar daripada volume pesan yang dikirim oleh pengguna server Anda sendiri. Ini juga alasan dokumentasi menetapkan kondisi memori khusus untuk operasi bergabung ke room publik berukuran besar.

Tetapkan kebijakan retensi sejak hari pertama, bukan setelah disk penuh:

media_retention:
  local_media_lifetime: 90d
  remote_media_lifetime: 14d

Synapse memperoleh media_retention pada versi 1.61, dengan masa berlaku terpisah untuk media lokal dan media remote. Media remote adalah cache. Jika pengguna meminta kembali file yang telah dihapus melalui kebijakan purge, Synapse akan memintanya lagi dari server asal file tersebut. Media lokal bukan cache. Karena itu, local_media_lifetime yang singkat akan menghapus unggahan pengguna Anda secara permanen.

Ringkasnya: jika pengguna Anda hanya berbicara satu sama lain, federation tidak memberi manfaat apa pun, tetapi menambah penggunaan disk, bandwidth, dan kompleksitas proses upgrade. Nonaktifkan federation, atau pilih server lain.

Bagaimana proses upgrade

Zulip adalah yang paling mudah. Jalankan satu skrip, dan downtime yang tercantum dalam dokumentasi kurang dari 30 detik, kecuali terdapat migrasi database besar. Instalasi dan upgrade dilakukan seperti berikut oleh Anda di server:

cd $(mktemp -d)
curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz
tar -xf zulip-server-latest.tar.gz

Jalankan installer sebagai root. Flag --push-notifications mendaftarkan server ke layanan push seluler selama instalasi. Flag ini juga meminta Anda menyetujui persyaratan layanan pada saat itu. Baca persyaratan tersebut sebelum memulai.

sudo ./zulip-server-*/scripts/setup/install --push-notifications --certbot \
    --email=YOUR_EMAIL --hostname=YOUR_HOSTNAME

Upgrade berikutnya menggunakan tarball yang sama dan satu perintah:

curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz
sudo /home/zulip/deployments/current/scripts/upgrade-zulip zulip-server-latest.tar.gz

Mattermost memiliki proses yang dapat diprediksi. Ganti binary, jalankan restart, lalu migrasi berjalan saat startup. Sejak rilis Agustus 2025, track Extended Support Release (ESR) dirilis setiap 9 bulan dengan dukungan selama 12 bulan. Upgrade dari satu ESR ke ESR berikutnya adalah jalur yang telah diuji. Melewati beberapa ESR sekaligus didukung, tetapi tidak diuji. Dalam praktiknya, berarti Anda yang harus mengujinya.

Rocket.Chat menggabungkan tiga upgrade. Per Agustus 2026, lini 8.x adalah versi saat ini. Versi 8.7.0 dirilis pada 6 August 2026 dan memerlukan MongoDB 8.0 serta versi Node.js yang sesuai. Melewati versi mayor dapat menyebabkan database tidak dapat dibuka oleh aplikasi. Panduan instalasi Rocket.Chat dengan Docker Compose menetapkan ketiga komponen ini untuk Anda. Hal tersebut menjadi alasan utama menggunakan pendekatan container di sini.

Synapse memerlukan pembacaan dokumentasi. Setiap rilis memiliki catatan upgrade. Anda harus membaca catatan untuk setiap versi yang dilewati, bukan hanya versi tujuan. Setelah upgrade, Synapse menjalankan pembaruan latar belakang pada database. Pada server kecil, proses ini dapat membuat mesin berjalan lambat selama berjam-jam. Kondisi tersebut adalah perilaku yang diharapkan, bukan kegagalan.

Ketentuan lisensi, secara sederhana

Mattermost mendistribusikan build Team Edition yang telah dikompilasi berdasarkan lisensi MIT, sedangkan source code-nya tersedia berdasarkan AGPLv3 atau lisensi komersial. Sebagian repository menggunakan Mattermost Source Available License, yang mewajibkan lisensi berbayar untuk menjalankannya di production. Rocket.Chat menggunakan MIT, kecuali direktori ee/ yang memiliki lisensi enterprise sendiri. Synapse beralih dari Apache 2.0 ke AGPLv3 pada versi 1.99.0. Para kontributor menandatangani CLA yang memungkinkan Element menjual pengecualian dari lisensi tersebut. Zulip menggunakan Apache 2.0 tanpa direktori enterprise. Karena itu, dukungan SSO-nya tidak memiliki pengecualian.

Secara praktis, AGPL hanya relevan jika Anda berencana memodifikasi server dan menawarkannya kepada pihak lain sebagai layanan. Bagi tim kecil, hal yang jauh lebih penting adalah model open core, yaitu fitur mana yang tidak tersedia pada build gratis. Zulip memiliki paling sedikit fitur yang dibatasi, sedangkan Mattermost memiliki paling banyak.

Yang mana yang sebaiknya dipilih

Alat untuk tim internal. Mattermost. Jejak dokumentasinya paling kecil, proses upgrade-nya paling sederhana, dan antarmukanya sudah umum sehingga tidak memerlukan banyak penjelasan. Siapkan paket berbayar saat SSO menjadi persyaratan, karena hal itu biasanya terjadi pada sebagian besar tim.

Server komunitas. Zulip. Topik membuat kanal publik yang ramai tetap mudah dibaca berbulan-bulan kemudian, SAML dan LDAP tidak dikenai biaya, dan proses upgrade cukup dilakukan dengan satu perintah. Jika komunitas Anda lebih menyerupai posting dan balasan daripada live chat, bandingkan terlebih dahulu software forum yang di-host sendiri, karena forum lebih mudah diindeks oleh mesin pencari dan sama sekali tidak memerlukan infrastruktur push. Pilih Rocket.Chat jika Anda menginginkan fitur suara, video, dan omnichannel, serta dapat menyediakan 8 GB RAM seperti yang diminta dalam dokumentasinya.

Jaringan yang harus saling beroperasi. Matrix dengan Synapse dan Element. Terima pertumbuhan media, tetapkan retensi sejak hari pertama, gunakan PostgreSQL dan ruang disk yang lebih besar dari perkiraan Anda, lalu manfaatkan kemampuan untuk berkomunikasi dengan server yang tidak Anda kendalikan. Memilih Synapse untuk tim yang tidak pernah melakukan federasi berarti menanggung biaya tersebut tanpa manfaat.

FAQ

Apa alternatif Slack yang di-hosting sendiri terbaik untuk tim kecil?

Untuk sebagian besar tim internal, Mattermost adalah pilihan yang tepat. Dokumentasinya mencakup 1 hingga 1.000 pengguna pada 1 vCPU dan RAM 2 GB dengan PostgreSQL pada mesin yang sama, sehingga sesuai dengan paket VPS tingkat awal yang umumnya ditawarkan provider. Kekurangannya adalah single sign-on: Team Edition gratis hanya mendukung GitLab OAuth, sedangkan SAML, AD/LDAP, dan OpenID Connect semuanya memerlukan paket berbayar. Jika SSO gratis lebih penting daripada antarmuka yang mirip Slack, gunakan Zulip.

Apakah saya dapat menjalankan server chat yang di-hosting sendiri pada VPS 2 GB?

Mattermost bisa, dan Zulip juga bisa jika Anda menambahkan swap, seperti yang direkomendasikan dokumentasi Zulip sendiri untuk sistem dengan RAM di bawah 5 GB. Rocket.Chat adalah pilihan yang kemungkinan mengecewakan karena engine WiredTiger milik MongoDB mengklaim cache sebesar nilai yang lebih besar antara 50% dari (RAM dikurangi 1 GB) atau 256 MB. Artinya, sekitar 512 MB dari mesin 2 GB sudah terpakai sebelum aplikasi dimulai. Aplikasi akan berhasil diinstal, kemudian kinerjanya menurun saat riwayat pesan bertambah, hingga akhirnya dihentikan karena kehabisan memori. Tier terkecil yang dipublikasikan Rocket.Chat adalah 4 GiB untuk aplikasi ditambah 4 GiB untuk MongoDB.

Apakah server chat yang di-hosting sendiri memerlukan server notifikasi push seluler sendiri?

Biasanya tidak, karena APNs milik Apple dan FCM milik Google hanya menerima notifikasi dari pihak yang menandatangani aplikasi. Karena itu, aplikasi milik vendor menggunakan gateway milik vendor tersebut. Ketentuannya berbeda-beda. Mattermost menyediakan layanan pengujian gratis tanpa SLA dan layanan hosted berbayar. Rocket.Chat membatasi workspace komunitas hingga 10.000 notifikasi push per bulan. Setelah batas itu tercapai, pengiriman berhenti sampai bulan berikutnya dimulai. Zulip menyediakan push gratis hingga 10 pengguna dan memerlukan paket berbayar di atas jumlah tersebut. Homeserver Matrix mengirim push melalui gateway yang digunakan oleh aplikasi Element tanpa biaya. Anda hanya memerlukan gateway sendiri jika juga merilis build aplikasi sendiri.

Haruskah saya meng-hosting Matrix dan Synapse sendiri untuk tim yang tidak pernah berkomunikasi dengan server lain?

Tidak. Federation adalah tujuan utama Synapse, dan fitur ini juga membuatnya lebih berat untuk dijalankan. Bergabung ke room pada server lain akan menarik state server tersebut dan menyimpan media-nya dalam cache di disk Anda. Akibatnya, penggunaan storage bertambah karena alasan yang tidak berkaitan dengan pengguna Anda sendiri. Atur media_retention dengan remote_media_lifetime singkat sebelum hal itu terjadi. Tim yang hanya berkomunikasi secara internal menanggung biaya operasional tanpa memperoleh manfaat federation. Mattermost atau Zulip dapat menjalankan fungsi yang sama dengan kebutuhan hardware yang lebih rendah.

Alternatif Slack yang di-hosting sendiri mana yang memiliki single sign-on gratis?

Zulip dan Synapse. Zulip menyertakan SAML dan LDAP dalam server yang di-hosting sendiri tanpa biaya. Synapse mendukung OpenID Connect, SAML, dan CAS dalam konfigurasinya, sedangkan instalasi yang lebih baru beralih ke Matrix Authentication Service terpisah. Edisi komunitas Rocket.Chat mendukung login LDAP dan SAML dasar, tetapi sinkronisasi atribut, pemetaan grup, dan sinkronisasi latar belakang memerlukan lisensi enterprise. Team Edition gratis milik Mattermost hanya mendukung GitLab OAuth.