# 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.

Zorluk: Orta\
Denendiği sistemler: Ubuntu 24.04 LTS, Debian 12, Debian 13

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.

> **Not**
>
> Rocket.Chat'in rehberi Docker'ı `get.docker.com` kolaylık betiğiyle kurar. Docker'ın kendi belgeleri bu betiği yalnızca test için önerir; bu yüzden bu rehber bunun yerine [Ubuntu'ya Docker kurulumu](/guides/install-docker-ubuntu) veya [Debian'a Docker kurulumu](/guides/install-docker-debian) rehberlerindeki depo kurulumunu kullanır. Sonuç aynı Docker Engine ve Compose eklentisidir.

## Ön koşullar

- Docker Engine, Compose eklentisi ve `git` kurulu, **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.
- `sudo` yetkisi olan ve `docker` komutlarını çalıştırabilen, root olmayan bir kullanıcı: [Yeni bir Linux sunucusunu güvenli hale getirin](/guides/secure-a-new-linux-server) rehberine bakın.
- Sunucuyu gösteren bir A kaydına (IPv6 kullanıyorsanız AAAA kaydına) sahip `chat.example.com` gibi 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:

```bash
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
ls
```

Proje 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.yml` ve `docker.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:

```env
RELEASE=8.8.1
DOMAIN=chat.example.com
ROOT_URL=https://chat.example.com
LETSENCRYPT_ENABLED=true
LETSENCRYPT_EMAIL=admin@example.com
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.yml
```

Bu ayarların işlevi:

- `RELEASE`, Rocket.Chat sürümünü sabitler. Rocket.Chat üretimde `latest` yerine sabit bir sürüm numarasını şiddetle önerir. En yeni sürümü [desteklenen sürümler sayfasından](https://docs.rocket.chat/docs/supported-versions-eol-schedule) alın; bu rehber yazılırken güncel sürüm `8.8.1` idi.
- `DOMAIN` ve `ROOT_URL` genel adresle eşleşmelidir. Traefik sertifikayı `DOMAIN` için ister, Rocket.Chat ise bağlantıları `ROOT_URL` üzerinden oluşturur.
- `LETSENCRYPT_ENABLED`, `LETSENCRYPT_EMAIL` ve `TRAEFIK_PROTOCOL=https`, Traefik'i Let's Encrypt sertifikalı HTTPS'e geçirir.
- `BIND_IP=127.0.0.1` gü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/info` bunları `compatibleMongoVersions` alanında gösterir.
- `COMPOSE_FILE`, `docker compose` komutuna yığını hangi dosyaların oluşturduğunu söyler; böylece sonraki her komut `-f` seç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:

```bash
docker compose config --services
```

Liste `traefik`, `mongodb`, `rocketchat` ve `nats` servislerini içermelidir. Burada çıkan bir hata genellikle `.env` içindeki bir yazım hatasını gösterir.

> **İpucu**
>
> İzleme yığınını daha sonra eklemek için `COMPOSE_FILE` değerinin sonuna `:compose.monitoring.yml:docker.yml` ekleyin, ilk başlatmadan önce `.env` içinde güçlü bir `GRAFANA_ADMIN_PASSWORD` belirleyin (değer yalnızca ilk kurulumda uygulanır) ve `docker compose up -d` çalıştırın. Grafana bu durumda alan adınızda `/grafana` altında sunulur.

## Adım 3 — Güvenlik duvarını açın

Yalnızca SSH ve web trafiğine izin verin:

```bash
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
```

Traefik, 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:

```bash
cd /opt/rocketchat
docker compose pull
docker compose up -d
docker compose ps -a
docker compose logs -f rocketchat
```

`rocketchat`, `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:

```bash
curl -I https://chat.example.com
```

Yanı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:

1. **Manage > Workspace > Settings > Accounts** sayfasına gidin.
2. **Registration** bölümüne inin ve **Registration Form** ayarını **Disabled** yapın.
3. 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](/guides/self-hosted-s3-storage) 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).

> **Not**
>
> HyperDC VPS'lerde giden 25 numaralı port varsayılan olarak kapalıdır. 3 ay veya daha uzun süreyle satın alınan hizmetlerde talep üzerine açılır: [destek talebi açın](/guides/support-tickets). O zamana kadar e-postaları 587 numaralı port üzerinden bir SMTP relay ile gönderin.

## 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:

```bash
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:

```bash
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 rocketchat
```

> **Uyarı**
>
> `--drop`, hedef veritabanındaki her koleksiyonu arşivden geri yüklemeden önce siler; geri yüklenen veri mevcut verinin yerini alır. Bu komutu korumak istediğiniz bir çalışma alanında çalıştırmayın.

Yedekleri 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.

```bash
cd /opt/rocketchat
curl -s https://releases.rocket.chat/8.8.1/info
nano .env
docker compose pull
docker compose up -d
docker compose ps
```

`curl` 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](/guides/install-mattermost) ve [Element ile Matrix Synapse](/guides/install-matrix-synapse) ile karşılaştırın.
- [Jitsi Meet](/guides/install-jitsi-meet) ile video toplantılar ekleyin.
- Burada kullanılan Compose komutlarını [Docker Compose temelleri](/guides/docker-compose-basics) rehberinde öğrenin.
- İzleme, harici MongoDB ve ölçekleme için resmi [Rocket.Chat Docker kurulum rehberini](https://docs.rocket.chat/docs/deploy-with-docker-docker-compose) okuyun.
- Ekip sohbeti için sunucuları [team chat hosting](/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.

---

Kaynak: <https://hyperdc.com/tr/guides/tutorials/install-rocket-chat>\
Son güncelleme: 2026-10-09
