Управление конфигурацией
Twenty предлагает два режима конфигурации, чтобы соответствовать разным потребностям развертывания:
Доступ к панели администратора: Только пользователи с правами администратора (canAccessFullAdminPanel: true) могут получить доступ к интерфейсу конфигурации.
1. Конфигурация панели администратора (по умолчанию)
IS_CONFIG_VARIABLES_IN_DB_ENABLED=true # по умолчанию
Большая часть конфигурации происходит через UI после установки:
- Получите доступ к вашему экземпляру Twenty (обычно
http://localhost:3000)
- Перейдите в Настройки / Панель администратора / Переменные конфигурации
- Настройте интеграции, почту, хранилище и многое другое
- Изменения вступают в силу немедленно (в течение 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:
- Установите
IS_CONFIG_VARIABLES_IN_DB_ENABLED=false в своем .env файле
- Добавьте все переменные конфигурации в ваш файл
.env
- Перезапустите контейнеры, чтобы изменения вступили в силу
- Панель администратора будет показывать текущие значения, но не сможет их изменить
Режим нескольких рабочих пространств
По умолчанию 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
- Перейдите в Google Cloud Console
- Создайте новый проект или выберите существующий
- Включите следующие API:
Настройте OAuth
- Перейдите к Учётные данные
- Создайте OAuth 2.0 Client ID
- Добавьте эти URI перенаправления:
https://{your-domain}/auth/google/redirect (для SSO)
https://{your-domain}/auth/google-apis/get-access-token (для интеграций)
Настройка в Twenty
- Перейдите в Настройки → Панель администратора → Переменные конфигурации
- Найдите раздел Google Auth.
- Установите эти переменные:
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
- Перейдите в Настройки → Панель администратора → Переменные конфигурации
- Найдите раздел Microsoft Auth.
- Установите эти переменные:
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
Конфигурация электронной почты
- Перейдите в Настройки → Панель администратора → Переменные конфигурации
- Найдите раздел Электронной почты.
- Настройте параметры вашего 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 | Разработка и доверенные среды | Низкий (без изоляции) |
| Lambda | LOGIC_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 | Только для разработки | Низкий (без изоляции) |
| E2B | CODE_INTERPRETER_TYPE=E_2_B | Рабочая среда с изолированным исполнением в песочнице | Высокий (изолированная песочница) |
При использовании LOGIC_FUNCTION_TYPE=DISABLED или CODE_INTERPRETER_TYPE=DISABLED любая попытка выполнения вернёт ошибку. Это полезно, если вы хотите запускать Twenty без этих возможностей.