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

# Docker Compose

<Warning>
  Docker kontejnery jsou určeny pro produkční provoz nebo vlastní hostování. Pro přispívání se podívejte na [Lokální nastavení](/l/cs/developers/contribute/capabilities/local-setup).
</Warning>

## Přehled

Tato příručka poskytuje podrobný návod k instalaci a konfiguraci aplikace Twenty pomocí Docker Compose. Cílem je zjednodušit proces a zabránit běžným úskalím, která by mohla narušit vaše nastavení.

**Důležité:** Měňte pouze nastavení výslovně uvedená v tomto průvodci. Změna jiných konfigurací může vést k problémům.

Viz [Nastavení proměnných prostředí](/l/cs/developers/self-host/capabilities/setup) pro pokročilou konfiguraci. Všechny proměnné prostředí musí být deklarovány v souboru `docker-compose.yml` na úrovni serveru a/nebo pracovníka, v závislosti na proměnné.

## Systémové Požadavky

* RAM: Ujistěte se, že vaše prostředí má alespoň 2GB RAM. Nedostatek paměti může způsobit zhroucení procesů.
* Docker & Docker Compose: Ujistěte se, že obě jsou nainstalovány a aktuální.

## Možnost 1: Jednořádkový skript

Nainstalujte nejnovější stabilní verzi Twenty jedním příkazem:

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

Pro instalaci konkrétní verze nebo větve vypište:

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

* Nahraďte x.y.z požadovaným číslem verze.
* Nahraďte branch-name názvem větve, kterou chcete nainstalovat.

## Možnost 2: Manuální kroky

Postupujte podle těchto kroků pro ruční nastavení.

### Krok 1: Nastavení souboru Prostředí

1. **Vytvořte soubor .env**

   Zkopírujte příklad souboru prostředí do nového souboru .env ve vašem pracovním adresáři:

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

2. **Vygenerujte šifrovací klíč**

   Spusťte následující příkaz k generování jedinečného náhodného řetězce:

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

   **Důležité:** Udržujte tuto hodnotu v tajnosti / nesdílejte ji. Ztráta `ENCRYPTION_KEY` znamená ztrátu přístupu ke všem tajným údajům uloženým v databázi (OAuth tokeny, aplikační proměnné, TOTP tajemství atd.).

3. **Aktualizujte `.env` soubor**

   Nahraďte místoblokovou hodnotu ve svém .env souboru vygenerovaným tokenem:

   ```ini theme={null}
   ENCRYPTION_KEY=random_string
   ```

   Podívejte se na [průvodce rotací klíče](/l/cs/developers/self-host/capabilities/key-rotation) pro pokyny, jak jej rotovat bez prostojů.

4. **Nastavte Heslo pro Postgres**

   Aktualizujte hodnotu `PG_DATABASE_PASSWORD` ve vašem .env souboru silným heslem bez speciálních znaků.

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

### Krok 2: Získání souboru Docker Compose

Stáhněte soubor `docker-compose.yml` do svého pracovního adresáře:

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

### Krok 3: Spuštění aplikace

Spusťte Docker kontejnery:

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

### Krok 4: Přístup k aplikaci

Pokud hostujete twentyCRM na svém vlastním počítači, otevřete svůj prohlížeč a přejděte na stránku [http://localhost:3000](http://localhost:3000).

Pokud to hostujete na serveru, zkontrolujte, že server běží a že je vše v pořádku s

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

## Konfigurace

### Otevření Twenty pro Externí Přístup

Ve výchozím nastavení běží Twenty na `localhost` na portu `3000`. Pro přístup přes externí doménu nebo IP adresu musíte nakonfigurovat `SERVER_URL` ve vašem `.env` souboru.

#### Porozumění `SERVER_URL`

* **Protokol:** Použijte `http` nebo `https` v závislosti na vašem nastavení.
  * Použijte `http` pokud nemáte nastavené SSL.
  * Použijte `https` pokud máte SSL nakonfigurované.
* **Doména/IP:** Toto je doménové jméno nebo IP adresa, kde je vaše aplikace přístupná.
* **Port:** Uveďte číslo portu, pokud nepoužíváte výchozí porty (`80` pro `http`, `443` pro `https`).

### Požadavky na SSL

SSL (HTTPS) je potřebné pro správné fungování některých funkcí prohlížeče. I když tyto funkce mohou fungovat během místního vývoje (protože prohlížeče zacházejí s localhost jinak), správná konfigurace SSL je nutná při hostování Twenty na běžné doméně.

Například rozhraní schránky může vyžadovat zabezpečený kontext - některé funkce jako tlačítka kopírování v aplikaci nemusí fungovat bez povoleného HTTPS.

Důrazně doporučujeme nastavit Twenty za reverzní proxy se SSL ukončením pro optimální bezpečnost a funkčnost.

#### Konfigurace `SERVER_URL`

1. **Určete svou přístupovou URL**
   * **Bez Reverzní Proxy (Přímý Přístup):**

     Pokud přistupujete k aplikaci přímo bez reverzní proxy:

     ```ini theme={null}
     SERVER_URL=http://your-domain-or-ip:3000
     ```

   * **S Reverzní Proxy (Standardní Porty):**

     Pokud používáte reverzní proxy jako Nginx nebo Traefik a máte SSL nakonfigurované:

     ```ini theme={null}
     SERVER_URL=https://your-domain-or-ip
     ```

   * **S Reverzní Proxy (Vlastní Porty):**

     Pokud používáte nestandardní porty:

     ```ini theme={null}
     SERVER_URL=https://your-domain-or-ip:custom-port
     ```

2. **Aktualizujte `.env` Soubor**

   Otevřete svůj `.env` soubor a aktualizujte `SERVER_URL`:

   ```ini theme={null}
   SERVER_URL=http(s)://your-domain-or-ip:your-port
   ```

   **Příklady:**

   * Přímý přístup bez SSL:
     ```ini theme={null}
     SERVER_URL=http://123.45.67.89:3000
     ```
   * Přístup přes doménu s SSL:
     ```ini theme={null}
     SERVER_URL=https://mytwentyapp.com
     ```

3. **Restartujte Aplikaci**

   Pro aplikaci změn restartujte Docker kontejnery:

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

#### Úvahy

* **Konfigurace reverzního proxy:**

  Ujistěte se, že váš reverzní proxy přesměruje požadavky na správný interní port (výchozí `3000`). Nakonfigurujte terminaci SSL a všechny potřebné hlavičky.

* **Nastavení firewallu:**

  Otevřete nezbytné porty v firewallu, aby byl umožněn externí přístup.

* **Konzistence:**

  `SERVER_URL` musí odpovídat způsobu, jakým uživatelé přistupují k vaší aplikaci ve svých prohlížečích.

#### Perzistence

* **Datové svazky:**

  Konfigurace Docker Compose používá svazky k ukládání dat pro databázi a úložiště serverů.

* **Bezstavová prostředí:**

  Pokud nasazujete do bezstavového prostředí (např. některé cloudové služby), nakonfigurujte externí úložiště pro uchování dat.

## Zálohování a obnovení

Pravidelné zálohy chrání vaše data v CRM před ztrátou.

### Vytvořte zálohu databáze

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

### Automatizujte denní zálohy

Přidejte do svého crontabu (`crontab -e`):

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

### Obnovte ze zálohy

1. Zastavte aplikaci:

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

2. Obnovte databázi:

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

3. Restartujte služby:

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

### Osvědčené postupy pro zálohování

* **Pravidelně testujte obnovy** — ověřte, že zálohy skutečně fungují
* **Ukládejte zálohy mimo lokalitu** — použijte cloudové úložiště (S3, GCS, atd.)
* **Šifrujte citlivá data** — chraňte zálohy šifrováním
* **Uchovávejte více kopií** — mějte denní, týdenní a měsíční zálohy

## Řešení potíží

Pokud narazíte na jakýkoli problém, zkontrolujte sekci [Řešení potíží](/l/cs/developers/self-host/capabilities/troubleshooting) pro možná řešení.
