---
title: 1-Click w/ Docker Compose
image: /images/user-guide/objects/objects.png
---

<Frame>
  <img src="/images/user-guide/objects/objects.png" alt="Header" />
</Frame>

<Warning>
Docker containers are for production hosting or self-hosting, for the contribution please check the [Local Setup](https://docs.twenty.com/l/uk/developers/local-setup).
</Warning>

## Огляд

Цей посібник надає покрокові інструкції з встановлення та налаштування додатка Twenty за допомогою Docker Compose. Мета - зробити процес зрозумілим і уникнути поширених помилок, які можуть порушити ваше налаштування.

**Важливо:** Змінюйте лише ті налаштування, які чітко зазначені в цьому посібнику. Зміна інших конфігурацій може призвести до проблем.

Див. документацію [Налаштування змінних середовища](https://docs.twenty.com/l/uk/developers/self-hosting/setup) для розширеного налаштування. Усі змінні середовища мають бути задекларовані у файлі docker-compose.yml на сервері та/або на рівні робочої станції, залежно від змінної.

## Системні вимоги

- RAM: Переконайтеся, що ваше середовище має принаймні 2GB оперативної пам'яті. Недостатня пам'ять може призвести до аварійного завершення процесів.
- Docker & Docker Compose: Переконайтеся, що обидва встановлені та оновлені.

## Опція 1: Скрипт в один рядок

Встановіть останню стабільну версію Twenty за допомогою однієї команди:

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

Щоб встановити конкретну версію або гілку:

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

- Замініть x.y.z на бажаний номер версії.
- Замініть branch-name на назву гілки, яку ви хочете встановити.

## Опція 2: Ручні кроки

Дотримуйтесь цих кроків для ручної установки.

### Крок 1: Налаштуйте файл середовища

1. **Створіть файл .env**

   Скопіюйте приклад файлу середовища в новий файл .env у вашій робочій директорії:

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

2. **Згенеруйте секретні токени**

   Запустіть наступну команду для створення унікального випадкового рядка:

   ```bash
   openssl rand -base64 32
   ```

   **Важливо:** Залишайте це значення секретним / не діліться ним.

3. **Оновіть `.env`**

   Замініть значення-заглушку у вашому файлі .env на згенерований токен:

   ```ini
   APP_SECRET=first_random_string
   ```

4. **Встановіть пароль Postgres**

   Оновіть значення `PG_DATABASE_PASSWORD` у файлі .env на міцний пароль без спеціальних символів.

   ```ini
   PG_DATABASE_PASSWORD=my_strong_password
   ```

### Крок 2: Отримайте файл Docker Compose

Завантажте файл `docker-compose.yml` у вашу робочу директорію:

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

### Крок 3: Запустіть додаток

Запустіть контейнери Docker:

```bash
docker compose up -d
```

### Крок 4: Отримайте доступ до програми

Якщо ви хостите twentyCRM на своєму власному комп'ютері, відкрийте браузер і перейдіть до [http://localhost:3000](http://localhost:3000).

If you host it on a server, check that the server is running and that everything is ok with

```bash
curl http://localhost:3000
```

## Конфігурація

### Відкрийте доступ до Twenty з зовнішньої мережі

За замовчуванням Twenty працює на `localhost` на порту `3000`. Щоб отримати доступ через зовнішній домен або IP-адресу, потрібно налаштувати `SERVER_URL` у вашому файлі `.env`.

#### Зрозуміння `SERVER_URL`

- **Протокол:** Використовуйте `http` або `https` залежно від вашої конфігурації.
  - Використовуйте `http`, якщо у вас не налаштовано SSL.
  - Використовуйте `https`, якщо у вас налаштований SSL.
- **Домен/IP:** Це доменне ім'я або IP-адреса, де ваш додаток доступний.
- **Порт:** Вкажіть номер порту, якщо ви не використовуєте стандартні порти (`80` для `http`, `443` для `https`).

### Вимоги до SSL

SSL (HTTPS) необхідний для роботи певних функцій браузера належним чином. Хоча ці функції можуть працювати під час локальної розробки (оскільки браузери по-різному ставляться до localhost), належне налаштування SSL потрібне при розміщенні Twenty на звичайному домені.

Наприклад, API буфера обміну може вимагати безпечного контексту - деякі функції, як кнопки копіювання у всьому додатку, можуть не працювати без HTTPS.

Ми настійно рекомендуємо налаштувати Twenty за зворотним проксі з термінацією SSL для оптимальної безпеки та функціональності.

#### Налаштування `SERVER_URL`

1. **Визначте свій URL доступу**
   - **Без зворотного проксі (прямий доступ):**

     Якщо ви отримуєте доступ до додатку безпосередньо без зворотного проксі:

     ```ini
     SERVER_URL=http://your-domain-or-ip:3000
     ```

   - **З зворотним проксі (стандартні порти):**

     Якщо ви користуєтеся зворотним проксі, як Nginx або Traefik, і у вас настроєно SSL:

     ```ini
     SERVER_URL=https://your-domain-or-ip
     ```

   - **З зворотним проксі (нестандартні порти):**

     Якщо ви використовуєте нестандартні порти:

     ```ini
     SERVER_URL=https://your-domain-or-ip:custom-port
     ```

2. **Оновіть файл `.env`**

   Відкрийте файл `.env` і оновіть `SERVER_URL`:

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

   **Приклади:**

   - Прямий доступ без SSL:
     ```ini
     SERVER_URL=http://123.45.67.89:3000
     ```
   - Доступ через домен з SSL:
     ```ini
     SERVER_URL=https://mytwentyapp.com
     ```

3. **Перезапустіть програму**

   Щоб зміни вступили в силу, перезапустіть контейнери Docker:

   ```bash
   docker compose down
   docker compose up -d
   ```

#### Міркування

- **Конфігурація зворотнього проксі:**

  Переконайтесь, що ваш зворотний проксі перенаправляє запити до правильного внутрішнього порту (`3000` за замовчуванням). Налаштуйте завершення SSL і будь-які необхідні заголовки.

- **Налаштування брандмауера:**

  Відкрийте необхідні порти у вашому брандмауері для забезпечення зовнішнього доступу.

- **Послідовність:**

  `SERVER_URL` повинен відповідати тому, як користувачі отримують доступ до вашої програми у своїх браузерах.

#### Persistence

- **Data Volumes:**

  Конфігурація Docker Compose використовує томи для збереження даних для бази даних і серверного сховища.

- **Stateless Environments:**

  Якщо розгортаєте в безстатевому середовищі (наприклад, в певних хмарних сервісах), налаштуйте зовнішнє сховище для збереження даних.

## Усунення несправностей

Якщо виникнуть проблеми, перегляньте [Усунення несправностей](https://docs.twenty.com/l/uk/developers/self-hosting/troubleshooting) для отримання вирішення.

