SSD Nodes Learn
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-07-24

Cara Install Rocket.Chat dengan Docker Compose

Panduan self-host Rocket.Chat di VPS menggunakan Docker Compose. Pelajari cara setting MongoDB replica set agar aplikasi berjalan stabil tanpa error database.

Apa yang Anda bangun

Chat tim privat milik Anda sendiri: Rocket.Chat yang berjalan di VPS Anda menggunakan Docker Compose, dilindungi oleh TLS, dengan setiap pesan tersimpan dalam database MongoDB yang dapat Anda cadangkan dan pindahkan. Rocket.Chat adalah alternatif Slack dan Teams open-source yang matang — mencakup channel, pesan langsung, thread, berbagi file, serta suara dan video, semuanya pada perangkat keras yang Anda sewa dan kendalikan. Aplikasi ini adalah satu container tunggal yang dapat berjalan dalam hitungan menit. Masalah yang terjadi biasanya terletak pada database di sampingnya, sehingga sebagian besar panduan ini membahas tentang MongoDB, terutama satu persyaratan yang mengejutkan semua orang saat pertama kali mencoba: Rocket.Chat tidak akan berjalan menggunakan MongoDB standalone. Rocket.Chat membutuhkan replica set, meskipun "set" tersebut hanya terdiri dari satu node tunggal.

Prasyarat, dan perhitungan RAM yang jarang diketahui

Tentukan spesifikasi server secara jujur. Batas minimum realistis untuk tim kecil adalah 2 vCPU dan 4 GB RAM. Proses Node.js pada Rocket.Chat membutuhkan sekitar 1 hingga 1.5 GB. Secara default, cache WiredTiger milik MongoDB akan mengambil sekitar setengah dari sisa RAM yang tersedia. Pada VPS 2 GB, keduanya dapat berjalan saat booting, namun akan bentrok saat trafik nyata masuk: cache MongoDB membesar, heap Node membesar, kernel kehabisan page, dan out-of-memory killer akan menghentikan proses terbesar — biasanya mongod. Container akan mencetak Killed, Docker akan melakukan restart, dan Anda akan mendapatkan server chat yang mati setiap beberapa menit saat menerima beban yang seharusnya bisa ditangani. Kapasitas 2 GB cukup untuk uji coba dengan dua orang; kapasitas ini tidak cukup untuk server tim. Mulailah dengan 4 GB, dan gunakan 8 GB jika Anda mengharapkan puluhan pengguna bersamaan, panggilan video, atau riwayat unggahan yang terus bertambah.

Anda juga memerlukan tiga hal sebelum memulai. Nama domain dengan A record yang mengarah ke IP publik VPS — fitur real-time dan klien seluler Rocket.Chat membutuhkan hostname yang stabil, bukan sekadar IP. Port 80 dan 443 harus terbuka pada firewall server maupun firewall jaringan penyedia layanan Anda, yang biasanya merupakan kontrol terpisah pada sebagian besar panel. Dan VPS Ubuntu 24.04 KVM baru dengan akses root atau sudo. Jika Anda masih ragu apakah server chat adalah layanan pertama yang tepat untuk dijalankan, panduan tentang apa yang layak di-self-host pada 2026 menjelaskan berbagai pertimbangannya.

Install the Docker engine and the Compose plugin

Gunakan repositori apt resmi Docker. Jangan gunakan paket docker.io bawaan Ubuntu atau biner Python docker-compose yang sudah lama. Compose modern adalah plugin Docker yang dijalankan dengan perintah docker compose — menggunakan spasi, bukan tanda hubung. Versi lama docker-compose v1 sudah tidak didukung dan salah dalam menangani sintaks healthcheck serta dependensi di bawah ini.

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Pastikan kedua komponen sudah terpasang:

sudo docker version
sudo docker compose version

Pengecekan yang penting adalah saat docker compose version menampilkan output seperti Docker Compose version v2.x. Jika muncul error docker: 'compose' is not a docker command, berarti plugin gagal terpasang dan Anda akan mengalami kegagalan sistem yang membingungkan nanti — perbaiki masalah ini sekarang.

File compose: MongoDB sebagai single-node replica set

Bagian ini sering salah dipahami, jadi bacalah dengan teliti. Rocket.Chat menggunakan change streams MongoDB untuk mengirim pesan baru ke klien yang terhubung secara real time. Change streams hanya tersedia pada replica set. Jika Anda mengarahkan Rocket.Chat ke mongod standalone biasa, koneksi akan berhasil tetapi gagal membuka change stream, sehingga menyebabkan restart-loop terus-menerus. Solusinya sederhana: jalankan satu kontainer MongoDB biasa, tetapi jalankan dengan --replSet lalu inisialisasi set dengan satu anggota.

Buat direktori kerja dan sebuah compose.yml:

services:
  mongodb:
    image: mongo:8.0
    restart: always
    command: ["mongod", "--replSet", "rs0", "--bind_ip_all", "--oplogSize", "128"]
    volumes:
      - mongodb_data:/data/db
      - mongodb_config:/data/configdb
    healthcheck:
      test: ["CMD", "mongosh", "--quiet", "--eval", "db.adminCommand('ping')"]
      interval: 10s
      timeout: 10s
      retries: 12

  rocketchat:
    image: registry.rocket.chat/rocketchat/rocket.chat:8.5.1
    restart: always
    depends_on:
      mongodb:
        condition: service_healthy
    environment:
      MONGO_URL: "mongodb://mongodb:27017/rocketchat?replicaSet=rs0"
      MONGO_OPLOG_URL: "mongodb://mongodb:27017/local?replicaSet=rs0"
      ROOT_URL: "https://chat.example.com"
      PORT: "3000"
    ports:
      - "127.0.0.1:3000:3000"

volumes:
  mongodb_data:
  mongodb_config:

Beberapa pilihan di sini dilakukan dengan sengaja. Port Rocket.Chat dipublikasikan ke 127.0.0.1:3000, bukan 0.0.0.0 — aplikasi ini tidak memiliki TLS, sehingga hanya reverse proxy pada mesin yang sama yang boleh mengaksesnya; melakukan binding ke setiap interface akan mengekspos halaman login plaintext langsung ke internet publik. MongoDB tidak dipublikasikan ke host sama sekali; ia hanya dapat dijangkau melalui jaringan internal Compose dengan nama mongodb, yang merupakan hostname yang digunakan oleh MONGO_URL. MONGO_URL menyertakan ?replicaSet=rs0 — jika dihilangkan, driver akan menganggap server sebagai standalone meskipun merupakan replica set, dan change streams akan tetap gagal. MONGO_OPLOG_URL mengarah ke database local tempat oplog berada; Rocket.Chat modern lebih menyukai change streams, tetapi mengaturnya tidak berbahaya dan menjaga kompatibilitas kode lama. depends_on menggunakan condition: service_healthy, sehingga Compose akan menunggu hingga MongoDB menjawab ping sebelum menjalankan Rocket.Chat — itulah fungsi healthcheck.

Gunakan tag versi yang spesifik pada kedua image — mongo:8.0 dan rilis Rocket.Chat yang eksplisit seperti 8.5.1 di sini — dan jangan pernah gunakan :latest, karena akan mengubah docker pull yang tidak terawasi menjadi upgrade tidak disengaja yang tidak dapat dimigrasi. Periksa rilis stabil Rocket.Chat saat ini dan versi MongoDB yang didukung sebelum melakukan pinning. Rocket.Chat menerbitkan dokumen info yang dapat dibaca mesin untuk setiap rilis: curl -s https://releases.rocket.chat/8.5.1/info | jq '{compatibleMongoVersions, lts}' mengembalikan compatibleMongoVersions: ["8.0"] untuk 8.5.1, sehingga mongo:8.0 adalah satu-satunya engine yang didukung, ditambah flag lts yang memberi tahu apakah rilis tersebut adalah build long-term-support yang layak digunakan untuk server yang tidak ingin Anda pantau secara manual.

Inisialisasi replica set

Jalankan stack:

sudo docker compose up -d

Rocket.Chat akan langsung mengalami crash dan Docker akan terus melakukan restart — hal ini normal, karena replica set belum ada. Buatlah secara manual satu kali:

sudo docker compose exec mongodb mongosh --eval 'rs.initiate({_id: "rs0", members: [{_id: 0, host: "mongodb:27017"}]})'

Hasil yang benar adalah { ok: 1 }. Dalam beberapa detik, node tunggal akan memilih dirinya sendiri sebagai primary; konfirmasi dengan:

sudo docker compose exec mongodb mongosh --quiet --eval 'rs.status().members[0].stateStr'

Anda harus melihat PRIMARY. Detail paling penting pada seluruh halaman ini adalah argumen host: "mongodb:27017". Jika Anda menjalankan rs.initiate() tanpa daftar anggota, MongoDB akan mengiklankan replica set menggunakan hostname internal kontainer — sebuah hash acak seperti a1b2c3d4e5f6. Rocket.Chat, yang terhubung dari kontainernya sendiri, tidak dapat menyelesaikan (resolve) nama tersebut, sehingga driver MongoDB gagal melakukan DNS dan terus melakukan looping dengan log MongoServerSelectionError: getaddrinfo ENOTFOUND a1b2c3d4e5f6. Selalu mulai dengan nama layanan eksplisit yang sesuai dengan MONGO_URL Anda.

Booting pertama: pantau prosesnya

Setelah set menjadi primary, restart Rocket.Chat berikutnya akan terhubung dengan lancar dan memulai migrasi pertama kali. Pantau log berikut:

sudo docker compose logs -f rocketchat

Baris yang Anda tunggu adalah banner startup:

+--------------------------------------------+
        SERVER RUNNING
   Rocket.Chat Version: 8.5.1
        NodeJS Version: 22.22.3 - x64
+--------------------------------------------+

Booting pertama berlangsung lambat — aplikasi menjalankan migrasi database dan membangun index, jadi tunggu satu atau dua menit sebelum merasa khawatir. Jika log justru mengulang MongoServerSelectionError: Server selection timed out after 30000 ms dengan deskripsi topologi tipe ReplicaSetNoPrimary, replica set belum diinisialisasi; jika log mengulang getaddrinfo ENOTFOUND pada hash acak, inisialisasi dilakukan dengan host yang salah. Dalam kedua kondisi tersebut, kembali ke langkah sebelumnya. Setelah Anda melihat SERVER RUNNING, Rocket.Chat sudah mendengarkan pada 127.0.0.1:3000 dan saatnya memasang hostname asli serta TLS di depannya.

Gunakan TLS

Jangan pernah mengekspos Rocket.Chat melalui HTTP biasa. Melakukan login melalui http:// sekali saja akan menyerahkan kata sandi admin Anda kepada siapa pun di jalur koneksi tersebut. Gunakan reverse proxy pada mesin yang sama untuk terminasi TLS, lalu teruskan ke 127.0.0.1:3000. Ada dua hal penting: proxy harus meneruskan header WebSocket upgrade karena Rocket.Chat bersifat real-time dan akan rusak tanpa header tersebut, dan ROOT_URL pada container harus sama persis dengan alamat HTTPS publik yang diketik pengguna.

Mulailah dengan nginx server block HTTP biasa yang melakukan proxy ke aplikasi dan meneruskan header upgrade. Simpan sebagai /etc/nginx/sites-available/rocketchat, buat symlink ke sites-enabled, lalu reload:

server {
    listen 80;
    server_name chat.example.com;

    client_max_body_size 100M;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Biarkan pada port 80 untuk saat ini — blok dengan listen 443 ssl; tanpa sertifikat tidak akan lolos sudo nginx -t. Reload nginx (sudo nginx -t && sudo systemctl reload nginx), lalu terbitkan sertifikat. Cara termudah di Ubuntu adalah Sertifikat TLS Let's Encrypt dengan Certbot dan nginx: certbot --nginx akan menulis ulang blok di atas, menambahkan listen 443 ssl;, baris ssl_certificate, dan pengalihan otomatis dari 80 ke 443, serta menjadwalkan pembaruan secara otomatis. Jika Anda sudah menjalankan beberapa container di belakang satu proxy, Traefik dengan TLS otomatis untuk banyak aplikasi Docker adalah opsi yang lebih rapi — tambahkan label router dan service ke service rocketchat, maka Traefik akan meminta dan memperbarui sertifikat untuk Anda tanpa perlu blok nginx sama sekali. Apa pun metodenya, atur ROOT_URL ke https://chat.example.com di compose.yml dan jalankan ulang sudo docker compose up -d agar container menerapkan perubahan tersebut. Jika Anda ingin server hanya dapat diakses dari dalam jaringan internal Anda dan bukan dari internet publik, gunakan VPN WireGuard self-hosted pada VPS dan hubungkan proxy ke alamat tunnel.

Wizard pengaturan pertama kali

Buka https://chat.example.com dan Rocket.Chat akan memandu Anda melalui wizard singkat. Pertama, akun admin — nama asli, username, email, dan kata sandi yang kuat; ini adalah satu-satunya akun yang ada, jadi jangan sampai kehilangan akun ini. Berikutnya, info organisasi dan server — nama, industri, ukuran, nama situs, dan bahasa default; ini hanya bersifat kosmetik, isi saja lalu lanjutkan. Kemudian pilihan yang paling penting: daftarkan workspace ini ke Rocket.Chat Cloud, atau tetap gunakan mode standalone.

Pendaftaran memungkinkan notifikasi push seluler melalui gateway Rocket.Chat dan marketplace add-on, namun akan ada hubungan control-plane dengan cloud Rocket.Chat. Mode standalone menjaga server tetap sepenuhnya privat dan tanpa ketergantungan, tetapi notifikasi push iOS dan Android akan berhenti berfungsi, karena Apple dan Google tidak mengizinkan aplikasi buatan sendiri memegang sertifikat push — aplikasi resmi menggunakan gateway cloud. Pilih standalone jika privasi adalah prioritas utama dan pengguna Anda menggunakan aplikasi web; pilih pendaftaran jika notifikasi push seluler sangat diperlukan. Anda dapat mengubah pilihan ini nanti di menu Admin.

Batasi akses sebelum mengundang siapa pun

Rocket.Chat menyertakan fitur open registration on — secara default, Registration Form diatur ke Public, sehingga siapa pun yang menemukan URL tersebut dapat membuat akun. Ini merupakan celah keamanan pada hostname publik. Buka Admin → Settings → Accounts → Registration dan atur Registration Form ke Disabled agar Anda dapat membuat akun secara manual atau melalui tautan undangan, atau ke Secret URL. Selagi di menu tersebut, matikan Allow Anonymous Read dan Allow Anonymous Write kecuali Anda memang menginginkan saluran publik yang bersifat read-only.

Tentukan juga lokasi penyimpanan unggahan. Penyimpanan File Upload default adalah GridFS, yang menyimpan setiap gambar dan lampiran di dalam MongoDB. Cara ini sederhana, tetapi berarti database Anda — dan setiap mongodump yang Anda ambil — akan terus membesar seiring pengguna menempelkan tangkapan layar. Di bawah Admin → Settings → File Upload, Anda dapat mengubah penyimpanan ke filesystem lokal atau bucket yang kompatibel dengan S3, serta mengatur batas ukuran file yang wajar. Untuk tim kecil, GridFS sudah cukup; namun perlu diingat bahwa ukuran cadangan (backup) Anda akan semakin besar seiring waktu.

Backup dengan mongodump

Semua data Anda berada di volume mongodb_data. Jangan menyalin volume saat database sedang berjalan — buatlah dump yang konsisten menggunakan mongodump, lalu alirkan ke sebuah file di host:

sudo docker compose exec -T mongodb mongodump --db rocketchat --archive --gzip > rocketchat-$(date +%F).archive.gz

Satu arsip gzipped tersebut berisi seluruh workspace Anda: user, channel, pesan, pengaturan, dan — jika Anda menyimpan unggahan di GridFS — file juga termasuk. Jika Anda memindahkan penyimpanan unggahan ke filesystem atau S3, lakukan backup pada penyimpanan tersebut secara terpisah. Lakukan restore pada instalasi baru dengan menginisialisasi replica set terlebih dahulu, kemudian:

sudo docker compose exec -T mongodb mongorestore --archive --gzip --drop < rocketchat-2026-07-15.archive.gz

Salin arsip tersebut keluar dari server — gunakan object storage, server lain, atau media apa pun agar backup tidak hilang saat VPS mengalami kegagalan — dan jalankan perintah dump melalui cron setiap malam. Backup yang belum pernah di-restore hanyalah sebuah harapan, bukan backup yang nyata; lakukan latihan restore satu kali pada VPS percobaan agar Anda tahu prosesnya berhasil sebelum benar-benar dibutuhkan.

Upgrades: pin tags, read the notes, respect the Mongo matrix

Dua aturan menjaga proses upgrade tetap aman. Pertama, upgrade Rocket.Chat satu versi mayor secara bertahap. Sistem menjalankan migrasi skema saat booting dan sengaja menolak lompatan antar versi mayor; mencoba langsung dari 6.x ke 8.x akan menyebabkan error migrasi alih-alih merusak data Anda. Ubah tag image ke rilis terbaru versi mayor berikutnya, baca catatan rilis tersebut untuk perubahan yang merusak (breaking changes), jalankan docker compose up -d, dan pantau log hingga migrasi selesai sebelum melanjutkan. Kedua, patuhi matriks dukungan MongoDB. Setiap rilis Rocket.Chat mendukung set versi MongoDB tertentu, dan curl -s https://releases.rocket.chat/<version>/info | jq .compatibleMongoVersions menunjukkan versi mana yang didukung. Saat Anda melakukan upgrade MongoDB — misalnya dari 7.0 ke 8.0 — lakukan satu versi mayor secara bertahap dan atur feature-compatibility version setelah setiap langkah. Pada MongoDB 8.0, perintah tersebut memerlukan confirm: true secara eksplisit, jika tidak, sistem akan menolak dengan pesan yang meminta Anda menjalankannya kembali dengan flag konfirmasi:

sudo docker compose exec mongodb mongosh --eval 'db.adminCommand({setFeatureCompatibilityVersion: "8.0", confirm: true})'

Lakukan mongodump sebelum setiap upgrade pada salah satu komponen tersebut. Itulah satu-satunya asuransi Anda.

Mode kegagalan, dengan string yang tepat

Rocket.Chat mengalami restart-loop segera setelah docker compose up, dan docker compose logs rocketchat terisi dengan MongoServerSelectionError. MongoDB berjalan tetapi driver tidak dapat memilih primary, dan string yang muncul menunjukkan kesalahan yang Anda buat. Server selection timed out after 30000 ms dengan tipe topologi ReplicaSetNoPrimary berarti Anda belum menjalankan rs.initiate() — set belum memiliki konfigurasi. getaddrinfo ENOTFOUND diikuti dengan hash acak berarti Anda melakukan inisialisasi tanpa host: "mongodb:27017" yang eksplisit, sehingga MongoDB mengiklankan hostname kontainer yang tidak dapat diurai. Diagnosis dengan sudo docker compose exec mongodb mongosh --eval 'rs.status()': jika muncul error MongoServerError: no replset config has been received, lakukan inisialisasi set; jika muncul anggota dengan name berupa hash acak, lakukan inisialisasi ulang menggunakan nama layanan.

UI web terbuka tetapi proses login berputar selamanya dan tidak selesai. Buka konsol browser dan Anda akan melihat WebSocket connection to 'wss://chat.example.com/websocket' failed. Ini hampir selalu disebabkan oleh ketidakcocokan ROOT_URL atau proxy yang tidak meneruskan upgrade headers. Pastikan ROOT_URL sama dengan alamat publik yang tepat termasuk https://, dan blok nginx location Anda mengatur Upgrade dan Connection "upgrade" dengan proxy_http_version 1.1. Ubah salah satunya dan jalankan kembali docker compose up -d.

Kontainer terus mati dan docker compose ps menunjukkan Restarting. docker compose logs terpotong di tengah baris dan sudo dmesg | tail menunjukkan Out of memory: Killed process 12345 (mongod) dari oom-killer; exit code adalah 137. Sistem kehabisan RAM. Solusi sebenarnya adalah VPS yang lebih besar — minimal 4 GB. Sebagai solusi sementara, tambahkan swap dan batasi cache MongoDB dengan --wiredTigerCacheSizeGB 1 pada command, tetapi swap hanya menunda OOM berikutnya saat beban kerja nyata:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

docker compose up gagal dengan Error response from daemon: driver failed programming external connectivity ... bind: address already in use. Sesuatu sudah menggunakan port 3000 — sering kali kontainer Rocket.Chat sebelumnya yang tidak berhenti dengan bersih, atau aplikasi lain. Temukan dengan sudo ss -ltnp | grep :3000, hentikan proses atau kontainer tersebut, atau ubah sisi host dari pemetaan ke 127.0.0.1:3001:3000 dan perbarui proxy_pass proxy Anda agar sesuai.

FAQ

Apakah Rocket.Chat benar-benar membutuhkan MongoDB replica set?

Ya, bahkan untuk satu server dengan satu node database. Rocket.Chat mengirimkan pesan secara real time menggunakan MongoDB change streams, dan change streams hanya tersedia pada fitur replica-set — instance mongod standalone tidak dapat membukanya. Anda tidak memerlukan banyak mesin; jalankan satu container MongoDB yang dimulai dengan --replSet rs0 dan inisialisasi set satu-member dengan rs.initiate(). Jika langkah ini dilewati, driver tidak akan menemukan primary, sehingga Rocket.Chat akan mengalami restart-loop dengan MongoServerSelectionError: Server selection timed out dan gagal melakukan booting.

Berapa banyak RAM yang dibutuhkan Rocket.Chat self-hosted?

Siapkan 4 GB sebagai minimum praktis dan 8 GB untuk tim yang sibuk. Proses Node Rocket.Chat menggunakan sekitar 1 hingga 1.5 GB dan MongoDB menggunakan sekitar setengah dari sisa RAM untuk WiredTiger cache. Pada mesin 2 GB, keduanya akan bentrok dan out-of-memory killer akan menghentikan mongod di bawah beban kerja nyata, yang memunculkan Killed pada log dan exit code 137. Kapasitas 2 GB hanya cukup untuk mengevaluasi perangkat lunak dengan beberapa pengguna uji coba.

Bagaimana cara memasang HTTPS pada Rocket.Chat?

Jalankan reverse proxy pada VPS yang sama untuk terminasi TLS dan meneruskan koneksi ke 127.0.0.1:3000, lalu atur ROOT_URL container ke alamat https:// publik Anda. Proxy harus meneruskan WebSocket upgrade headers agar proses login tidak macet. Certbot dengan nginx adalah pengaturan aplikasi tunggal yang paling sederhana; Traefik lebih efisien jika Anda menjalankan beberapa container di belakang satu proxy dan menginginkan manajemen sertifikat otomatis.

Bagaimana cara mencadangkan (backup) Rocket.Chat self-hosted?

Lakukan database dump yang konsisten menggunakan mongodump alih-alih menyalin volume: docker compose exec -T mongodb mongodump --db rocketchat --archive --gzip > backup.archive.gz. Arsip tersebut berisi pengguna, channel, pesan, dan pengaturan, serta file yang diunggah jika Anda menggunakan penyimpanan pada GridFS. Salin arsip tersebut ke luar server, otomatisasi setiap malam dengan cron, dan lakukan uji coba mongorestore pada mesin percobaan agar Anda tahu bahwa proses restore benar-benar berfungsi.

Bagaimana cara memperbarui (upgrade) Rocket.Chat tanpa merusak MongoDB?

Perbarui Rocket.Chat satu versi mayor secara bertahap — sistem akan menjalankan migrasi saat booting dan tidak mengizinkan lompatan versi mayor — dan baca catatan rilis sebelum memperbarui pinned image tag. Periksa versi MongoDB yang didukung oleh rilis target Anda dengan curl -s https://releases.rocket.chat/<version>/info | jq .compatibleMongoVersions, dan saat Anda memindahkan MongoDB, lakukan satu versi mayor secara bertahap dan atur setFeatureCompatibilityVersion dengan confirm: true setelah setiap langkah. Selalu lakukan mongodump terlebih dahulu.