Rocket.Chat Docker Compose ve HTTPS ile nasıl kurulur
Rocket.Chat'i resmi rocketchat-compose dosyaları, MongoDB replica set ve Traefik'in otomatik HTTPS'iyle kurun; sonra güvenceye alın, yedekleyin ve güncelleyin.
- Orta
- 40 dk okuma
- Güncellendi
Denendiği sistemler: Ubuntu 24.04 LTS, Debian 12, Debian 13
Bu sayfada
- Ön koşullar
- Adım 1 — Resmi Compose projesini klonlayın
- Adım 2 — .env dosyasını yapılandırın
- Adım 3 — Güvenlik duvarını açın
- Adım 4 — Rocket.Chat'i başlatın
- Adım 5 — Kurulum sihirbazını çalıştırın ve kayıt formunu kapatın
- Yedekleme ve geri yükleme
- Rocket.Chat güncelleme
- Sorun giderme
- Traefik sertifika alamıyor
- mongodb konteyneri sürekli yeniden başlıyor
- Rocket.Chat bir güncellemeden sonra MongoDB sürüm hatasıyla kapanıyor
- 3000 numaralı porta internetten erişilebiliyor
- Anlık bildirimler telefonlara ulaşmıyor
- Sonraki adımlar
Rocket.Chat; kanallar, doğrudan mesajlar, mesaj dizileri, dosya paylaşımı, video konferans entegrasyonları ve müşteri konuşmaları için bir omnichannel modülü sunan açık kaynaklı bir ekip sohbet platformudur. Bu rehber Rocket.Chat'i resmi rocketchat-compose projesiyle Ubuntu veya Debian üzerine kurar: Rocket.Chat konteyneri, replica set olarak çalışan MongoDB, NATS mesaj aracısı ve Let's Encrypt sertifikasını kendisi alan Traefik. Ardından ilk yöneticiyi oluşturur, kayıt formunu kapatır ve çalışma alanını nasıl yedekleyeceğinizi, geri yükleyeceğinizi ve güncelleyeceğinizi öğrenirsiniz.
Ön koşullar
- Docker Engine, Compose eklentisi ve
gitkurulu, Ubuntu 24.04 LTS, Debian 12 veya Debian 13 çalıştıran bir sunucu. Rocket.Chat'in kurulum rehberi MongoDB 8.x'in Ubuntu 26.04'te başlamayabileceği konusunda uyarır ve Ubuntu 24.04 LTS önerir; bu nedenle bu rehber 26.04'ü kapsamaz. sudoyetkisi olan vedockerkomutlarını çalıştırabilen, root olmayan bir kullanıcı: Yeni bir Linux sunucusunu güvenli hale getirin rehberine bakın.- Sunucuyu gösteren bir A kaydına (IPv6 kullanıyorsanız AAAA kaydına) sahip
chat.example.comgibi bir alan adı. Traefik sertifikayı ancak bu kayıt çözümlendikten sonra alabilir. - Boş 80 ve 443 numaralı portlar. Bunları Traefik kullanır; bu yüzden aynı sunucuda Caddy veya Nginx çalıştırmayın.
- Kayıt, anlık bildirimler ve Marketplace'in kullandığı Rocket.Chat bulut servislerine giden HTTPS erişimi.
Rocket.Chat'in gereksinimler sayfası en küçük üretim kurulumunu (500 eşzamanlı kullanıcıya kadar) bileşen bazında listeler:
| Kaynak | En düşük (resmi) | Önerilen başlangıç |
|---|---|---|
| CPU | Rocket.Chat için 2 vCPU ve MongoDB için 2 vCPU | İkisi tek sunucuda çalışıyorsa 4 vCPU |
| RAM | Rocket.Chat için 4 GiB ve MongoDB için 4 GiB | Tek sunucuda 8 GB |
| Disk | Rocket.Chat için 20 GiB ve MongoDB için 10 GiB | 40 GB ve yüklenen dosyalar için ek alan |
Resmi tablo, yüksek erişilebilirlik için üç üyeli bir MongoDB replica set varsayar. Bu rehber tek üye çalıştırır; bu tek sunucu için uygundur ama otomatik yedeğe geçiş (failover) sağlamaz.
Adım 1 — Resmi Compose projesini klonlayın
Uygulama klasörünü oluşturun ve depoyu içine klonlayın:
sudo mkdir -p /opt/rocketchat
sudo chown $USER:$USER /opt/rocketchat
git clone --depth 1 https://github.com/RocketChat/rocketchat-compose.git /opt/rocketchat
cd /opt/rocketchat
cp .env.example .env
chmod 600 .env
lsProje yığını birkaç Compose dosyasına böler:
compose.yml— Rocket.Chat uygulaması,compose.database.yml— MongoDB, veri klasörü izinlerini düzelten bir yardımcı ve replica set'i ilklendiren tek seferlik bir konteyner,compose.nats.yml— NATS mesaj aracısı,compose.traefik.yml— Let's Encrypt'li Traefik,compose.monitoring.ymlvedocker.yml— isteğe bağlı Prometheus, Loki ve Grafana izleme yığını.
Rocket.Chat bu dosyaları düzenlememenizi önerir. Değiştirdiğiniz her şey .env dosyasına girer.
Adım 2 — .env dosyasını yapılandırın
Dosyayı nano .env ile açın. Mevcut değerleri değiştirin ve eksik satırları ekleyin:
RELEASE=8.8.1
DOMAIN=chat.example.com
ROOT_URL=https://chat.example.com
LETSENCRYPT_ENABLED=true
LETSENCRYPT_EMAIL[email protected]
TRAEFIK_PROTOCOL=https
BIND_IP=127.0.0.1
TRAEFIK_DASHBOARD_PORT=127.0.0.1:8080
MONGODB_VERSION=8.0
COMPOSE_FILE=compose.traefik.yml:compose.database.yml:compose.yml:compose.nats.ymlBu ayarların işlevi:
RELEASE, Rocket.Chat sürümünü sabitler. Rocket.Chat üretimdelatestyerine sabit bir sürüm numarasını şiddetle önerir. En yeni sürümü desteklenen sürümler sayfasından alın; bu rehber yazılırken güncel sürüm8.8.1idi.DOMAINveROOT_URLgenel adresle eşleşmelidir. Traefik sertifikayıDOMAINiçin ister, Rocket.Chat ise bağlantılarıROOT_URLüzerinden oluşturur.LETSENCRYPT_ENABLED,LETSENCRYPT_EMAILveTRAEFIK_PROTOCOL=https, Traefik'i Let's Encrypt sertifikalı HTTPS'e geçirir.BIND_IP=127.0.0.1güvenlik açısından önemlidir.compose.yml, 3000 numaralı portu ve metrik portunu varsayılan olarak tüm adreslerde yayınlar ve Docker'ın yayınladığı portlar ufw'yi atlar. Traefik Rocket.Chat'e Compose ağı üzerinden ulaşır; bu nedenle ana makinedeki portun yalnızca localhost'ta dinlemesi yeterlidir.TRAEFIK_DASHBOARD_PORT=127.0.0.1:8080, Traefik panel portunu localhost'ta tutar. Panel varsayılan olarak kapalıdır, ancak port eşlemesi aksi hâlde 8080'i yine tüm adreslerde açardı.MONGODB_VERSION=8.0, Rocket.Chat 8.x için en düşük MongoDB sürümüyle eşleşir. Her sürüm uyumlu MongoDB sürümlerini bildirir:curl -s https://releases.rocket.chat/8.8.1/infobunlarıcompatibleMongoVersionsalanında gösterir.COMPOSE_FILE,docker composekomutuna yığını hangi dosyaların oluşturduğunu söyler; böylece sonraki her komut-fseçenekleri olmadan aynı dosya kümesini kullanır. Deponun README dosyası, bileşenlerin dosyalarını dışarıda bırakarak bileşenleri çıkarabileceğinizi söyler; bu liste izleme yığınını dışarıda bırakır.
Compose'un yapılandırmayı okuyabildiğini kontrol edin:
docker compose config --servicesListe traefik, mongodb, rocketchat ve nats servislerini içermelidir. Burada çıkan bir hata genellikle .env içindeki bir yazım hatasını gösterir.
Adım 3 — Güvenlik duvarını açın
Yalnızca SSH ve web trafiğine izin verin:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verboseTraefik, alan adını denetlediğinizi kanıtlamak için 443 numaralı portta TLS doğrulamasını kullanır; bu yüzden ilk başlatmadan önce 443 portuna erişilebilmeli ve DNS bu sunucuyu göstermelidir. Resmi dosyalar MongoDB ve NATS'i yalnızca 127.0.0.1 üzerinde yayınlar; Adım 2 de Rocket.Chat'in kendi portlarını oraya taşıdı.
Adım 4 — Rocket.Chat'i başlatın
İmajları çekin ve yığını başlatın:
cd /opt/rocketchat
docker compose pull
docker compose up -d
docker compose ps -a
docker compose logs -f rocketchatrocketchat, mongodb, nats ve traefik gibi konteynerler Up durumunda olmalıdır. İzin yardımcısı ve replica set ilklendirme konteyneri işlerini bitirip Exited (0) gösterir; bu beklenen durumdur. Rocket.Chat, logunda bir SERVER RUNNING kutusu göründüğünde hazırdır; logu izlemeyi bırakmak için Ctrl+C tuşlarına basın.
HTTPS'i ve kapalı uygulama portunu kontrol edin:
curl -I https://chat.example.comYanıt geçerli bir sertifikayla HTTP/2 200 olmalıdır. Başka bir makineden nc -vz sunucu-ip-adresiniz 3000 reddedilmeli veya zaman aşımına uğramalıdır.
Adım 5 — Kurulum sihirbazını çalıştırın ve kayıt formunu kapatın
https://chat.example.com adresini açın. Kurulum sihirbazı önce ilk yöneticiyi (ad, kullanıcı adı, e-posta ve parola), sonra kuruluş bilgilerinizi ister ve ardından çalışma alanını e-posta adresinizle Rocket.Chat Cloud'a kaydeder. Kaydı tamamlamak için Rocket.Chat'in gönderdiği e-postayı onaylayın.
Rocket.Chat'in çalışma alanı SSS sayfası, kayıt formunun genellikle Public olarak ayarlı olduğunu belirtir; bu da adresi bulan herkesin hesap oluşturabilmesi demektir. Bağlantıyı paylaşmadan önce formu kapatın:
- Manage > Workspace > Settings > Accounts sayfasına gidin.
- Registration bölümüne inin ve Registration Form ayarını Disabled yapın.
- Kaydedin, ardından kullanıcıları Manage > Workspace > Users sayfasından davet edin.
Mevcut kullanıcılar her zamanki gibi giriş yapmaya devam eder. Ayarlardayken her yönetici hesabında iki faktörlü kimlik doğrulamayı açın ve File Upload bölümünü gözden geçirin: dosyalar varsayılan olarak MongoDB GridFS içinde saklanır ve Rocket.Chat üretim için S3 veya MinIO gibi nesne depolamayı önerir (Self-hosted S3 depolama rehberine bakın).
Rocket.Chat davetleri, parola sıfırlamalarını, adres doğrulamalarını ve kaçırılan mesaj bildirimlerini Manage > Workspace > Settings > Email altındaki SMTP bölümünde ayarladığınız relay üzerinden e-postayla gönderir (protokol smtp, sunucu smtp.example.com, port 587, SMTP kullanıcı adınız ve parolanız ile bir From Email adresi).
Yedekleme ve geri yükleme
Varsayılan GridFS depolamada her şeyi MongoDB tutar: kullanıcılar, mesajlar, ayarlar ve yüklenen dosyalar. .env dosyası ise kurulum ayarlarınızı tutar. Rocket.Chat'in rehberi veritabanını ana makineye akıtılan mongodump ile yedekler:
sudo mkdir -p /opt/backups
sudo chown $USER:$USER /opt/backups
chmod 700 /opt/backups
cd /opt/rocketchat
docker compose exec -T mongodb sh -c 'mongodump --archive' > /opt/backups/rocketchat-db-$(date +%F).archive
cp .env /opt/backups/rocketchat-env-$(date +%F)
ls -lh /opt/backups-T sözde terminali (pseudo-terminal) kapatır; böylece ikili arşiv dosyaya değişmeden ulaşır. Dosya yüklemelerini FileSystem depolama türüne geçirdiyseniz o klasörü de arşivleyin; S3 veya MinIO kullanıyorsanız kovayı (bucket) depolama sağlayıcınızın araçlarıyla yedekleyin.
Geri yüklemek için aynı RELEASE ve MONGODB_VERSION değerleriyle çalışan bir yığından başlayın (yeni bir sunucuda Adım 1–4'ü kaydettiğiniz .env ile tekrarlayın). Rocket.Chat'i durdurun, arşivi yükleyin ve yeniden başlatın:
cd /opt/rocketchat
docker compose stop rocketchat
docker compose exec -T mongodb sh -c 'mongorestore --archive --drop' < /opt/backups/rocketchat-db-2026-10-09.archive
docker compose start rocketchatYedekleri sunucunun dışına da kopyalayın.
Rocket.Chat güncelleme
Rocket.Chat'in güncelleme yönergeleri dört kurala dayanır: sürüm notlarını okuyun, önce yedek alın, yeni sürüm gerektiriyorsa MongoDB'yi Rocket.Chat'ten önce güncelleyin ve ana sürümler arasında birer birer ilerleyin (7.x'ten 8.x'e; asla 6.x'ten doğrudan 8.x'e değil). Aynı ana sürüm içindeki ara sürüm ve yama güncellemeleri doğrudan uygulanabilir.
cd /opt/rocketchat
curl -s https://releases.rocket.chat/8.8.1/info
nano .env
docker compose pull
docker compose up -d
docker compose pscurl komutundaki 8.8.1 değerini hedef sürümle değiştirin ve compatibleMongoVersions alanını kontrol edin. .env içinde RELEASE değerini yeni sürüme ayarlayın. Sürüm daha yeni bir MongoDB gerektiriyorsa önce MONGODB_VERSION değerini değiştirin, docker compose up -d mongodb çalıştırın ve konteynerin sağlıklı duruma gelmesini bekleyin. COMPOSE_FILE tüm dosyalarınızı listelediği için docker compose up -d yığını aynı servislerle yeniden oluşturur; Rocket.Chat'in rehberi bir dosyayı dışarıda bırakmanın o servisleri düşürdüğü konusunda uyarır. Ardından sürümü Manage > Workspace altında doğrulayın.
MongoDB doğrudan eski sürüme düşürülemez; geri dönmek için önce özellik uyumluluk sürümünü (feature compatibility version) düşürmek gerekir. Bu yüzden güncellemeden önce aldığınız yedeği saklayın.
Sorun giderme
Traefik sertifika alamıyor
docker compose logs traefik çalıştırın. Olağan nedenler henüz bu sunucuyu göstermeyen bir DNS kaydı, sunucunun önündeki bir güvenlik duvarında engellenmiş 443 portu veya tekrarlanan denemelerden sonra Let's Encrypt hız sınırlarıdır. Nedeni giderin, ardından docker compose restart traefik çalıştırın.
mongodb konteyneri sürekli yeniden başlıyor
docker compose logs mongodb çıktısını okuyun. MongoDB, izin yardımcısının veri klasörünün sahipliğini düzeltmesini yaklaşık beş dakikaya kadar bekler ve bu başarısız olursa kapanır. Ubuntu 26.04'te MongoDB 8.x hiç başlamayabilir; bunun yerine Ubuntu 24.04 LTS veya Debian kullanın.
Rocket.Chat bir güncellemeden sonra MongoDB sürüm hatasıyla kapanıyor
Yeni sürüm daha yeni bir MongoDB gerektiriyor. Sürüm için compatibleMongoVersions alanını kontrol edin, .env içinde MONGODB_VERSION değerini yükseltin, önce docker compose up -d mongodb ile MongoDB'yi güncelleyin, ardından Rocket.Chat'i yeniden başlatın.
3000 numaralı porta internetten erişilebiliyor
.env dosyasında BIND_IP eksik; bu yüzden Docker portu tüm adreslerde yayınlıyor ve ufw onu engellemiyor. BIND_IP=127.0.0.1 ekleyin ve konteyneri yeniden oluşturmak için docker compose up -d çalıştırın.
Anlık bildirimler telefonlara ulaşmıyor
Anlık bildirimler, desteklenen bir sürümde kayıtlı bir çalışma alanı gerektiren Rocket.Chat bulut ağ geçidinden geçer. Kayıt durumunu Manage > Workspace altında kontrol edin, çalışma alanını yeniden kaydedin veya eşitleyin ve sürümünüzün destek süresi dolduysa güncelleyin.
Sonraki adımlar
- Rocket.Chat'i Mattermost ve Element ile Matrix Synapse ile karşılaştırın.
- Jitsi Meet ile video toplantılar ekleyin.
- Burada kullanılan Compose komutlarını Docker Compose temelleri rehberinde öğrenin.
- İzleme, harici MongoDB ve ölçekleme için resmi Rocket.Chat Docker kurulum rehberini okuyun.
- Ekip sohbeti için sunucuları team chat hosting sayfasında karşılaştırın.
Sık sorulan sorular
Rocket.Chat yüklenen dosyaları nerede saklar?
Varsayılan olarak MongoDB GridFS içinde; bu yüzden bu rehberdeki veritabanı yedeği dosyaları da içerir. Manage > Workspace > Settings > File Upload altında FileSystem depolama türüne veya Rocket.Chat'in üretim için önerdiği MinIO gibi S3 uyumlu nesne depolamaya geçebilirsiniz; bu durumda o depolamayı da yedekleyin.
Çalışma alanımı Rocket.Chat Cloud'a kaydetmek zorunda mıyım?
Rocket.Chat belgeleri kaydı kurulum sihirbazında zorunlu bir adım olarak tanımlar. Kayıt, çalışma alanını anlık bildirim ağ geçidi ve Marketplace gibi bulut servislerine bağlar. Air-gapped çalışma alanları ayrı bir süreç izler ve bulut servislerini kullanamaz.
Rocket.Chat neden MongoDB replica set'e ihtiyaç duyar?
Rocket.Chat gerçek zamanlı güncellemeler için replica set'in oplog'unu kullanır. Resmi compose.database.yml dosyası MongoDB'yi rs0 adlı tek düğümlü bir replica set olarak başlatır ve kendiliğinden ilklendirir; bunu elle yapılandırmanız gerekmez.
Her Rocket.Chat sürümü ne kadar süre desteklenir?
Standart sürümler altı ay, LTS sürümler on iki ay desteklenir. Destek süresi biten bir sürüm güvenlik düzeltmesi almaz, anlık bildirimler gibi bulut servisleri durur ve resmi mobil ile masaüstü uygulamaları bağlanamayabilir.
Traefik yerine Caddy veya Nginx kullanabilir miyim?
Evet. Rocket.Chat bir Nginx kurulumunu belgeler: compose.traefik.yml dosyasını dışarıda bırakın, LETSENCRYPT_ENABLED=false ayarlayın ve alan adınızı WebSocket desteğiyle 3000 numaralı porta yönlendirin. Bu rehber, resmi dosyalardaki varsayılan yol olduğu için paketle gelen Traefik'i kullanır.