Перейти к основному содержанию

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

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

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

IS_CONFIG_VARIABLES_IN_DB_ENABLED=true  # по умолчанию
Большая часть конфигурации происходит через 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) и секреты приложения (APP_SECRET), могут быть настроены только через файл .env.Полная техническая ссылка →

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

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

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

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

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

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

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

IS_MULTIWORKSPACE_ENABLED=true
DEFAULT_SUBDOMAIN=app  # default value
Включите режим нескольких рабочих пространств для развертываний, похожих на 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 с помощью подстановочной записи, чтобы разрешить динамическое создание поддоменов:
*.your-domain.com -> your-server-ip
Это включает автоматическую маршрутизацию поддоменов для новых рабочих пространств без ручной настройки DNS.

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

В режиме нескольких рабочих пространств вы можете ограничить круг пользователей, которые могут создавать новые рабочие пространства:
IS_WORKSPACE_CREATION_LIMITED_TO_SERVER_ADMINS=true
Если включено, только пользователи с правом 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://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-google-apis-oauth-scopes.ts#L4-L10)
  • 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», если хотите получать только письма.

Авторизованные 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 файл вместо этого.

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

соответствующий исходный код](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-microsoft-apis-oauth-scopes.ts#L2-L9)
  • ‘openid’
  • ‘электронная почта’
  • ‘профиль’
  • ‘offline_access’
  • ‘Mail.ReadWrite’
  • ‘Mail.Send’
  • ‘Calendars.Read’

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

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

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

После настройки интеграций Gmail, Google Calendar или Microsoft 365, вам необходимо запустить фоновые задания, синхронизирующие данные. Зарегистрируйте следующие повторяющиеся задания в вашем контейнере рабочего:
# из вашего контейнера рабочего
yarn command:prod cron:messaging:messages-import
yarn command:prod cron:messaging:message-list-fetch
yarn command:prod cron:calendar:calendar-event-list-fetch
yarn command:prod cron:calendar:calendar-events-import
yarn command:prod cron:messaging:ongoing-stale
yarn command:prod cron:calendar:ongoing-stale
yarn command:prod cron:workflow:automated-cron-trigger

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

  1. Перейдите в Настройки → Панель администратора → Переменные конфигурации
  2. Найдите раздел Электронной почты.
  3. Настройте параметры вашего SMTP:
Режим только для среды: если вы установили IS_CONFIG_VARIABLES_IN_DB_ENABLED=false, добавьте эти переменные в свой .env файл вместо этого.

S3 Storage

By default, Twenty stores uploaded files on the local filesystem. Для продакшн-развертываний используйте 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 (с песочницей) либо оставьте их отключёнными.

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

ДрайверПеременная окруженияСценарий использованияУровень безопасности
ОтключеноLOGIC_FUNCTION_TYPE=DISABLEDПолностью отключить логические функцииН/Д
ЛокальныйLOGIC_FUNCTION_TYPE=LOCALРазработка и доверенные средыНизкий (без изоляции)
LambdaLOGIC_FUNCTION_TYPE=LAMBDAПродакшн с недоверенным кодомВысокий (изоляция на уровне оборудования)

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

Для разработки:
LOGIC_FUNCTION_TYPE=LOCAL  # default when NODE_ENV=development
Для продакшна (AWS):
LOGIC_FUNCTION_TYPE=LAMBDA
LOGIC_FUNCTION_LAMBDA_REGION=us-east-1
LOGIC_FUNCTION_LAMBDA_ROLE=arn:aws:iam::123456789:role/your-lambda-role
LOGIC_FUNCTION_LAMBDA_ACCESS_KEY_ID=your-access-key
LOGIC_FUNCTION_LAMBDA_SECRET_ACCESS_KEY=your-secret-key
Чтобы отключить логические функции:
LOGIC_FUNCTION_TYPE=DISABLED  # default when NODE_ENV=production

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

ДрайверПеременная окруженияСценарий использованияУровень безопасности
ОтключеноCODE_INTERPRETER_TYPE=DISABLEDОтключить выполнение кода ИИН/Д
ЛокальныйCODE_INTERPRETER_TYPE=LOCALТолько для разработкиНизкий (без изоляции)
E2BCODE_INTERPRETER_TYPE=E_2_BРабочая среда с изолированным исполнением в песочницеВысокий (изолированная песочница)
При использовании LOGIC_FUNCTION_TYPE=DISABLED или CODE_INTERPRETER_TYPE=DISABLED любая попытка выполнения вернёт ошибку. Это полезно, если вы хотите запускать Twenty без этих возможностей.