> ## Documentation Index
> Fetch the complete documentation index at: https://docs.get-clara.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Docker Compose

<Warning>
  Docker kapsayıcıları, üretim ortamında barındırma veya kendi kendine barındırma içindir. Katkıda bulunmak için lütfen [Yerel Kurulum](/l/tr/developers/contribute/capabilities/local-setup) bölümüne bakın.
</Warning>

## Genel Bakış

Bu kılavuz, Docker Compose kullanarak Twenty uygulamasını kurmak ve yapılandırmak için adım adım yönergeler sunar. Amaç, süreci sadeleştirmek ve kurulumunuzu bozabilecek yaygın sorunları önlemektir.

**Önemli:** Yalnızca bu kılavuzda açıkça belirtilen ayarları değiştirin. Diğer yapılandırmaları değiştirmek sorunlara yol açabilir.

İleri düzey yapılandırma için [Ortam Değişkenlerini Ayarlama](/l/tr/developers/self-host/capabilities/setup) bölümüne bakın. Tüm ortam değişkenleri, değişkene bağlı olarak sunucu ve/veya işçi düzeyinde `docker-compose.yml` dosyasında tanımlanmalıdır.

## Sistem Gereksinimleri

* RAM: Ortamınızda en az 2GB RAM bulunduğundan emin olun. Yetersiz bellek, işlemlerin çökmesine neden olabilir.
* Docker & Docker Compose: Her ikisinin de yüklendiğinden ve güncel olduğundan emin olun.

## Seçenek 1: Tek satırlık komut dosyası

Tek bir komutla en son kararlı Twenty sürümünü yükleyin:

```bash theme={null}
bash <(curl -sL https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/scripts/install.sh)
```

Belirli bir sürüm veya dal yüklemek için:

```bash theme={null}
VERSION=vx.y.z BRANCH=dal-adı bash <(curl -sL https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/scripts/install.sh)
```

* x.y.z'yi istediğiniz sürüm numarasıyla değiştirin.
* dal-adını yüklemek istediğiniz dal adıyla değiştirin.

## Seçenek 2: Manuel adımlar

Manuel kurulum için bu adımları uygulayın.

### Adım 1: Çevre Dosyasını Kurun

1. **.env Dosyasını Oluşturun**

   Örnek çevre dosyasını, çalışma dizininizde yeni bir .env dosyasına kopyalayın:

   ```bash theme={null}
   curl -o .env https://raw.githubusercontent.com/twentyhq/twenty/refs/heads/main/packages/twenty-docker/.env.example
   ```

2. **Gizli Jetonlar Oluşturun**

   Benzersiz bir rastgele karakter dizisi oluşturmak için aşağıdaki komutu çalıştırın:

   ```bash theme={null}
   openssl rand -base64 32
   ```

   **Önemli:** Bu değeri gizli tutun / paylaşmayın.

3. **`.env` Güncelleyin**

   .env dosyanızdaki yer tutucu değeri oluşturulan jetonla değiştirin:

   ```ini theme={null}
   APP_SECRET=birinci_rastgele_dize
   ```

4. **Postgres Şifresini Ayarlayın**

   .env dosyasındaki `PG_DATABASE_PASSWORD` değerini özel karakter içermeyen güçlü bir şifre ile güncelleyin.

   ```ini theme={null}
   PG_DATABASE_PASSWORD=benim_guclu_sifrem
   ```

### Adım 2: Docker Compose Dosyasını Edinin

`docker-compose.yml` dosyasını çalışma dizininize indirin:

```bash theme={null}
curl -o docker-compose.yml https://raw.githubusercontent.com/twentyhq/twenty/refs/heads/main/packages/twenty-docker/docker-compose.yml
```

### Adım 3: Uygulamayı Başlatın

Docker konteynerlerini başlatın:

```bash theme={null}
docker compose up -d
```

### Adım 4: Uygulamaya Erişin

Eğer twentyCRM'i kendi bilgisayarınızda barındırıyorsanız, tarayıcınızı açın ve [http://localhost:3000](http://localhost:3000) adresine gidin.

Bir sunucuda barındırıyorsanız, sunucunun çalıştığını ve her şeyin yolunda olduğunu kontrol edin

```bash theme={null}
curl http://localhost:3000
```

## Yapılandırma

### Twenty'yi Dış Erişime Açma

Varsayılan olarak, Twenty `localhost` üzerinde `3000` portunda çalışır. Harici bir alan adı veya IP adresi aracılığıyla erişim sağlamak için `.env` dosyanızda `SERVER_URL`'i yapılandırmanız gerekir.

#### `SERVER_URL`'a Genel Bakış

* **Protokol:** Yapılandırmanıza bağlı olarak `http` veya `https` kullanın.
  * SSL ayarlamadıysanız `http` kullanın.
  * SSL yapılandırıldıysa `https` kullanın.
* **Alan Adı/IP:** Uygulamanızın erişilebilir olduğu alan adı veya IP adresi.
* **Port:** Varsayılan portları kullanmıyorsanız, port numarasını ekleyin (`80` `http` için, `443` `https` için).

### SSL Gereksinimleri

Belirli tarayıcı özelliklerinin düzgün çalışabilmesi için SSL (HTTPS) gereklidir. Bu özellikler yerel geliştirme sırasında çalışabilirken (tarayıcılar localhost'u farklı şekilde ele alır), Twenty'yi düzenli bir alanda barındırırken uygun bir SSL kurulumu gereklidir.

Örneğin, panoya kopyalama API'si güvenli bir bağlam gerektirebilir - uygulama boyunca kopyalama düğmeleri gibi bazı özellikler HTTPS etkinleştirilmediğinde çalışmayabilir.

Optimum güvenlik ve işlevsellik için Twenty'nin SSL sonlandırma ile bir ters proxy arkasında ayarlanmasını şiddetle öneririz.

#### `SERVER_URL`'ı Yapılandırma

1. **Erişim URL'nizi Belirleyin**
   * **Ters Proxy Olmadan (Doğrudan Erişim):**

     Uygulamaya doğrudan bir ters proxy olmadan erişiyorsanız:

     ```ini theme={null}
     SERVER_URL=http://alan-adiniz-veya-ip:3000
     ```

   * **Ters Proxy ile (Standart Portlar):**

     Nginx veya Traefik gibi bir ters proxy kullanıyorsanız ve SSL yapılandırıldıysa:

     ```ini theme={null}
     SERVER_URL=https://alan-adiniz-veya-ip
     ```

   * **Ters Proxy ile (Özel Portlar):**

     Standart olmayan portlar kullanıyorsanız:

     ```ini theme={null}
     SERVER_URL=https://alan-adiniz-veya-ip:ozel-port
     ```

2. **`.env` Dosyasını Güncelleyin**

   `.env` dosyanızı açın ve `SERVER_URL`'i güncelleyin:

   ```ini theme={null}
   SERVER_URL=http(s)://alan-adiniz-veya-ip:portunuz
   ```

   **Örnekler:**

   * SSL olmadan doğrudan erişim:
     ```ini theme={null}
     SERVER_URL=http://123.45.67.89:3000
     ```
   * SSL ile alan adı aracılığıyla erişim:
     ```ini theme={null}
     SERVER_URL=https://mytwentyapp.com
     ```

3. **Uygulamayı Yeniden Başlatın**

   Değişikliklerin etkili olması için Docker konteynerlerini yeniden başlatın:

   ```bash theme={null}
   docker compose down
   docker compose up -d
   ```

#### Dikkat Edilmesi Gerekenler

* **Ters Proxy Yapılandırması:**

  Ters proxy'nin istekleri doğru iç bağlantı noktasına ilettiğinden emin olun (`3000` varsayılan olarak). SSL sonlandırmasını ve gerekli tüm başlıkları yapılandırın.

* **Güvenlik Duvarı Ayarları:**

  Dış erişime izin vermek için güvenlik duvarınızdaki gerekli portları açın.

* **Tutarlılık:**

  `SERVER_URL`, kullanıcıların uygulamanıza tarayıcıları ile nasıl eriştiği ile eşleşmelidir.

#### Süreklilik

* **Veri Hacimleri:**

  Docker Compose yapılandırması, veritabanı ve sunucu depolama için verileri kalıcı kılmak adına hacimler kullanmaktadır.

* **Durumsuz Ortamlar:**

  Eğer durumsuz bir ortama (örneğin, bazı bulut hizmetleri) dağıtım yapıyorsanız, verilerin kalıcılığını sağlamak için harici depolama yapılandırın.

## Yedekleme ve Geri Yükleme

Düzenli yedeklemeler CRM verilerinizi kayıptan korur.

### Veritabanı Yedeği Oluşturun

```bash theme={null}
docker exec twenty-postgres pg_dump -U postgres twenty > backup_$(date +%Y%m%d).sql
```

### Günlük Yedeklemeleri Otomatikleştirin

crontab'ınıza ekleyin (`crontab -e`):

```bash theme={null}
0 2 * * * docker exec twenty-postgres pg_dump -U postgres twenty > /backups/twenty_$(date +\%Y\%m\%d).sql
```

### Yedekten Geri Yükleyin

1. Uygulamayı durdurun:

```bash theme={null}
docker compose stop twenty-server twenty-front
```

2. Veritabanını geri yükleyin:

```bash theme={null}
docker exec -i twenty-postgres psql -U postgres twenty < backup_20240115.sql
```

3. Servisleri yeniden başlatın:

```bash theme={null}
docker compose up -d
```

### Yedekleme En İyi Uygulamaları

* **Geri yüklemeleri düzenli olarak test edin** — yedeklerin gerçekten çalıştığını doğrulayın
* **Yedekleri farklı bir konumda saklayın** — bulut depolama kullanın (S3, GCS, vb.)
* **Hassas verileri şifreleyin** — yedekleri şifreleme ile koruyun
* **Birden fazla kopya saklayın** — günlük, haftalık ve aylık yedekleri tutun

## Sorun Giderme

Herhangi bir sorunla karşılaşırsanız, çözümler için [Sorun Giderme](/l/tr/developers/self-host/capabilities/troubleshooting) sayfasına bakın.
