Skip to main content

Управление конфигурацией

Устанавливаете впервые? Следуйте руководству по установке Docker Compose, чтобы запустить Twenty, затем вернитесь сюда для настройки.
Twenty предлагает два режима конфигурации, чтобы соответствовать разным потребностям развертывания: Доступ к панели администратора: Только пользователи с правами администратора (canAccessFullAdminPanel: true) могут получить доступ к интерфейсу конфигурации.

1. Конфигурация панели администратора (по умолчанию)

Большая часть конфигурации происходит через UI после установки:
  1. Получите доступ к вашему экземпляру Twenty (обычно http://localhost:3000)
  2. Перейдите в Настройки / Панель администратора / Переменные конфигурации
  3. Настройте интеграции, почту, хранилище и многое другое
  4. Изменения вступают в силу немедленно (в течение 15 секунд для многоконтейнерных развертываний)
Многоконтейнерное развертывание: при использовании конфигурации базы данных (IS_CONFIG_VARIABLES_IN_DB_ENABLED=true) серверные и рабочие контейнеры читают из одной базы данных. Изменения в панели администратора влияют на оба контейнера автоматически, исключая необходимость дублирования переменных среды между контейнерами (за исключением инфраструктурных переменных).
Что вы можете настроить через панель администратора:
  • Аутентификация - Google/Microsoft OAuth, настройки паролей
  • Электронная почта - настройки SMTP, шаблоны, верификация
  • Хранилище - конфигурация S3, пути локального хранения
  • Интеграции - Gmail, Google Calendar, сервисы Microsoft
  • Рабочий процесс и Ограничения скорости - лимиты выполнения, ограничение API
  • И многое другое…
Переменные конфигурации панели администратора
Каждая переменная документирована с описаниями в вашей панели администратора в Настройки → Панель администратора → Переменные конфигурации. Некоторые инфраструктурные настройки, такие как соединения с базой данных (PG_DATABASE_URL), URL сервера (SERVER_URL) и секреты (ENCRYPTION_KEY, FALLBACK_ENCRYPTION_KEY), могут быть настроены только через файл .env.Полная техническая ссылка →

Ключи шифрования

Twenty использует два ключа шифрования, задаваемых только через переменные окружения: Для обеспечения обратной совместимости, если ENCRYPTION_KEY не задан, Twenty использует APP_SECRET для шифрования данных в состоянии покоя — что соответствует устаревшему поведению для более старых развертываний. Для новых установок всегда следует задавать отдельный ENCRYPTION_KEY. Генерируйте значения с помощью openssl rand -base64 32 и храните их в безопасном месте (менеджер секретов, защищённая конфигурация и т. п.). Потеря ENCRYPTION_KEY означает потерю доступа ко всем секретам, хранящимся в базе данных. Чтобы выполнить ротацию ENCRYPTION_KEY без простоя, см. руководство по ротации ключей.

2. Конфигурация только для среды

Вся конфигурация управляется через файлы .env:
  1. Установите IS_CONFIG_VARIABLES_IN_DB_ENABLED=false в своем .env файле
  2. Добавьте все переменные конфигурации в ваш файл .env
  3. Перезапустите контейнеры, чтобы изменения вступили в силу
  4. Панель администратора будет показывать текущие значения, но не сможет их изменить

Режим нескольких рабочих пространств

По умолчанию Twenty работает в режиме одного рабочего пространства — оптимально для большинства развертываний с самостоятельным размещением, где вашей организации нужен один экземпляр CRM.

Режим одного рабочего пространства (по умолчанию)

  • Одно рабочее пространство на один экземпляр Twenty
  • Первый пользователь автоматически становится администратором с полными привилегиями (canImpersonate и canAccessFullAdminPanel)
  • Новые регистрации отключаются после создания первого рабочего пространства
  • Простая структура URL: https://your-domain.com

Включение режима нескольких рабочих пространств

Включите режим нескольких рабочих пространств для развертываний, похожих на SaaS, где нескольким независимым командам нужны собственные рабочие пространства на одном экземпляре Twenty. Ключевые отличия от режима одного рабочего пространства:
  • На одном экземпляре можно создать несколько рабочих пространств
  • Каждое рабочее пространство получает собственный поддомен (например, sales.your-domain.com, marketing.your-domain.com)
  • Пользователи регистрируются и входят на {DEFAULT_SUBDOMAIN}.your-domain.com (например, app.your-domain.com)
  • Нет автоматических привилегий администратора — первый пользователь в каждом рабочем пространстве является обычным пользователем
  • Параметры, специфичные для рабочего пространства, такие как поддомен и пользовательский домен, становятся доступны в настройках рабочего пространства
Параметр только среды: IS_MULTIWORKSPACE_ENABLED можно настроить только через файл .env; требуется перезапуск. Его нельзя изменить через панель администратора.

Настройка DNS для режима нескольких рабочих пространств

При использовании режима нескольких рабочих пространств настройте DNS с помощью подстановочной записи, чтобы разрешить динамическое создание поддоменов:
Это включает автоматическую маршрутизацию поддоменов для новых рабочих пространств без ручной настройки DNS.

Ограничение создания рабочих пространств

В режиме нескольких рабочих пространств вы можете ограничить круг пользователей, которые могут создавать новые рабочие пространства:
Если включено, только пользователи с правом canAccessFullAdminPanel могут создавать дополнительные рабочие пространства. Пользователи все равно могут создать свое первое рабочее пространство во время первоначальной регистрации.

Интеграция Gmail и Google Calendar

Создайте проект в Google Cloud

  1. Перейдите в Google Cloud Console
  2. Создайте новый проект или выберите существующий
  3. Включите следующие API:

Настройте OAuth

  1. Перейдите к Учётные данные
  2. Создайте OAuth 2.0 Client ID
  3. Добавьте эти URI перенаправления:
    • https://{your-domain}/auth/google/redirect (для SSO)
    • https://{your-domain}/auth/google-apis/get-access-token (для интеграций)

Настройка в Twenty

  1. Перейдите в Настройки → Панель администратора → Переменные конфигурации
  2. Найдите раздел Google Auth.
  3. Установите эти переменные:
    • MESSAGING_PROVIDER_GMAIL_ENABLED=true
    • CALENDAR_PROVIDER_GOOGLE_ENABLED=true
    • AUTH_GOOGLE_CLIENT_ID={client-id}
    • AUTH_GOOGLE_CLIENT_SECRET={client-secret}
    • AUTH_GOOGLE_CALLBACK_URL=https://{your-domain}/auth/google/redirect
    • AUTH_GOOGLE_APIS_CALLBACK_URL=https://{your-domain}/auth/google-apis/get-access-token
Режим только для среды: если вы установили IS_CONFIG_VARIABLES_IN_DB_ENABLED=false, добавьте эти переменные в свой .env файл вместо этого.
Необходимые границы (автоматически настроены): Посмотреть соответствующий исходный код
  • https://www.googleapis.com/auth/calendar.events
  • https://www.googleapis.com/auth/gmail.readonly
  • https://www.googleapis.com/auth/profile.emails.read

Если ваше приложение находится в тестовом режиме

Если ваше приложение находится в тестовом режиме, вам потребуется добавить тестовых пользователей в ваш проект. На экране согласия OAuth добавьте тестовых пользователей в раздел “Тестовые пользователи”.

Интеграция Microsoft 365

Пользователи должны иметь лицензию Microsoft 365, чтобы иметь возможность использовать API Календаря и Сообщений. Они не смогут синхронизировать свою учетную запись в Twenty без нее.

Создайте проект в Microsoft Azure

Вам потребуется создать проект в Microsoft Azure и получить учетные данные.

Включите API

На консоли Microsoft Azure включите следующие API в “Разрешениях”:
  • Microsoft Graph: Mail.ReadWrite
  • Microsoft Graph: Mail.Send
  • Microsoft Graph: Calendars.Read
  • Microsoft Graph: User.Read
  • Microsoft Graph: openid
  • Microsoft Graph: email
  • Microsoft Graph: profile
  • Microsoft Graph: offline_access
«Mail.ReadWrite» и «Mail.Send» обязательны только если вы хотите отправлять письма с использованием наших действий рабочего процесса. Вы можете использовать «Mail.Read», если хотите получать только письма.
«Calendars.ReadWrite» является обязательным, если вы хотите создавать события календаря с использованием наших действий рабочего процесса. Если вы хотите только синхронизировать события календаря, используйте «Calendars.Read».

Авторизованные URI перенаправления

Вам нужно добавить следующие URI перенаправления в ваш проект:
  • https://{your-domain}/auth/microsoft/redirect если вы хотите использовать Microsoft SSO
  • https://{your-domain}/auth/microsoft-apis/get-access-token

Настройка в Twenty

  1. Перейдите в Настройки → Панель администратора → Переменные конфигурации
  2. Найдите раздел Microsoft Auth.
  3. Установите эти переменные:
    • MESSAGING_PROVIDER_MICROSOFT_ENABLED=true
    • CALENDAR_PROVIDER_MICROSOFT_ENABLED=true
    • AUTH_MICROSOFT_ENABLED=true
    • AUTH_MICROSOFT_CLIENT_ID={client-id}
    • AUTH_MICROSOFT_CLIENT_SECRET={client-secret}
    • AUTH_MICROSOFT_CALLBACK_URL=https://{your-domain}/auth/microsoft/redirect
    • AUTH_MICROSOFT_APIS_CALLBACK_URL=https://{your-domain}/auth/microsoft-apis/get-access-token
Режим только для среды: если вы установили IS_CONFIG_VARIABLES_IN_DB_ENABLED=false, добавьте эти переменные в свой .env файл вместо этого.

Настройка областей доступа

См. соответствующий исходный код
  • ‘openid’
  • ‘электронная почта’
  • ‘профиль’
  • ‘offline_access’
  • ‘Mail.ReadWrite’
  • ‘Mail.Send’
  • ‘Calendars.Read’

Если ваше приложение находится в тестовом режиме

Если ваше приложение находится в тестовом режиме, вам потребуется добавить тестовых пользователей в ваш проект. Добавьте тестовых пользователей в раздел “Пользователи и группы”.

Фоновые задания для Календаря и Сообщений

После настройки интеграций Gmail, Google Calendar или Microsoft 365, вам необходимо запустить фоновые задания, синхронизирующие данные. Зарегистрируйте следующие повторяющиеся задания в вашем контейнере рабочего:

Конфигурация электронной почты

  1. Перейдите в Настройки → Панель администратора → Переменные конфигурации
  2. Найдите раздел Электронной почты.
  3. Настройте параметры вашего SMTP:
Вам потребуется предоставить Пароль Приложения.
  • EMAIL_DRIVER=smtp
  • EMAIL_SMTP_HOST=smtp.gmail.com
  • EMAIL_SMTP_PORT=465
  • EMAIL_SMTP_USER=gmail_email_address
  • EMAIL_SMTP_PASSWORD=‘gmail_app_password’
Режим только для среды: если вы установили IS_CONFIG_VARIABLES_IN_DB_ENABLED=false, добавьте эти переменные в свой .env файл вместо этого.

S3 Хранилище

По умолчанию Twenty магазинов загрузили файлы в локальной файловой системе. Для продакшн-развертываний используйте S3 или совместимый с S3 сервис (MinIO, DigitalOcean Spaces и т. д.). чтобы файлы сохранялись при перезапусках контейнеров и были доступны на нескольких экземплярах сервера при масштабировании.
Установите STORAGE_TYPE=S_3 и настройте переменные STORAGE_S3_* через админ-панель или .env. См. справочник config-variables.ts для полного списка переменных S3. При использовании S3 с функциями, зависящими от CORS (например, загрузки файлов в браузере), убедитесь, что в конфигурации CORS вашего бакета разрешен origin фронтенда Twenty.

Логические функции и интерпретатор кода

Twenty поддерживает логические функции для рабочих процессов и интерпретатор кода для анализа данных ИИ. Оба запускают предоставленный пользователем код и требуют явной настройки в целях безопасности.

Настройки безопасности по умолчанию

В продакшене (NODE_ENV=production): логические функции и интерпретатор кода по умолчанию — Отключено. Если вам нужны эти функции, вы должны явно включить их с помощью LOGIC_FUNCTION_TYPE и CODE_INTERPRETER_TYPE. В разработке (NODE_ENV=development): оба по умолчанию — LOCAL для удобства при локальном запуске.
Уведомление о безопасности: локальный драйвер (LOGIC_FUNCTION_TYPE=LOCAL или CODE_INTERPRETER_TYPE=LOCAL) выполняет код напрямую на хосте в процессе Node.js без изоляции. Его следует использовать только для доверенного кода в разработке. Для рабочих развёртываний, обрабатывающих недоверенный код, используйте LOGIC_FUNCTION_TYPE=LAMBDA или CODE_INTERPRETER_TYPE=E2B (с песочницей) либо оставьте их отключёнными.

Логические функции — доступные драйверы

Логические функции — рекомендуемая конфигурация

Для разработки:
Для продакшна (AWS):
Чтобы отключить логические функции:

Интерпретатор кода — доступные драйверы

При использовании LOGIC_FUNCTION_TYPE=DISABLED или CODE_INTERPRETER_TYPE=DISABLED любая попытка выполнения вернёт ошибку. Это полезно, если вы хотите запускать Twenty без этих возможностей.

API и фронтенд на отдельных хостах

Актуально только в том случае, если вы не позволяете бэкенду обслуживать фронтенд. Для развертываний с одинаковым origin здесь ничего не требуется. Укажите каждый браузерный origin, который обращается к API, через запятую. SERVER_URL и FRONTEND_URL уже считаются доверенными. Сервер записывает предупреждение в журнал, когда браузер обращается к нему с неуказанного источника.
Фронтенд отправляет учетные данные при каждом запросе, а браузеры отклоняют ответ с учетными данными от неуказанного источника, поэтому приложение не загружается, пока вы не зададите этот параметр.
Если два хоста находятся в разных регистрируемых доменах (а не просто в разных поддоменах), также установите AUTH_COOKIE_SAME_SITE=none, что требует HTTPS. При включённой поддержке нескольких рабочих пространств не перечисляйте здесь все поддомены рабочих пространств. Вместо этого маршрутизируйте пути API (/graphql, /metadata, /rest, /auth/, /client-config, /file) на бэкенд для каждого имени хоста рабочего пространства, чтобы каждое рабочее пространство оставалось в рамках одного источника (same-origin) — именно так работает Twenty Cloud.