--- title: 1-Click w/ Docker Compose image: /images/user-guide/objects/objects.png --- Header 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). ## Огляд Цей посібник надає покрокові інструкції з встановлення та налаштування додатка 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) для отримання вирішення.