Documentation Index
Fetch the complete documentation index at: https://docs.twenty.com/llms.txt
Use this file to discover all available pages before exploring further.
配置管理
Twenty 提供两种配置模式以适应不同的部署需求: 管理员面板访问: 只有具有管理员权限的用户(canAccessFullAdminPanel: true) 可以访问配置界面。
1. 管理员面板配置(默认)
- 访问你的 Twenty 实例(通常为
http://localhost:3000) - 转到 设置 / 管理员面板 / 配置变量
- 配置集成、电子邮件、存储等
- 更改会立即生效(多容器部署在 15 秒内)
- 身份验证 - Google/Microsoft OAuth、密码设置
- 电子邮件 - SMTP 设置、模板、验证
- 存储 - S3 配置、本地存储路径
- 集成 - Gmail, Google Calendar, Microsoft 服务
- 工作流和速率限制 - 执行限制、API 限流
- 还有更多……

加密密钥
Twenty 使用两个仅通过环境变量配置的加密密钥:| 变量 | 目的 | 必填 |
|---|---|---|
ENCRYPTION_KEY | 用于对静态存储的机密信息(OAuth 令牌、应用程序变量、签名密钥的私钥、TOTP 密钥、敏感配置值)进行加密的主密钥。 | 新安装必须设置(旧安装可能依赖于 APP_SECRET —— 见下文) |
FALLBACK_ENCRYPTION_KEY | 仅用于验证的密钥。 在轮换期间,将其设置为先前的 ENCRYPTION_KEY,以便现有行仍可解密。 | 仅在轮换期间 |
ENCRYPTION_KEY,Twenty 将回退为使用 APP_SECRET 进行静态数据加密——与旧部署的旧版行为一致。 新的安装应始终设置专用的 ENCRYPTION_KEY。
使用 openssl rand -base64 32 生成值,并将其安全存储(如密钥管理器、加密配置等)。 丢失 ENCRYPTION_KEY 意味着将失去对数据库中存储的所有机密的访问权限。
要在不停机的情况下轮换 ENCRYPTION_KEY,请参阅密钥轮换指南。
2. 仅限环境配置
.env 文件管理:
- 在
.env文件中设置IS_CONFIG_VARIABLES_IN_DB_ENABLED=false - 将所有配置变量添加到
.env文件中 - 重启容器以使更改生效
- 管理员面板将显示当前值,但无法修改它们
多工作区模式
默认情况下,Twenty 以单工作区模式运行——对于大多数需要为组织部署一个 CRM 实例的自托管部署而言,这是理想之选。单工作区模式(默认)
- 每个 Twenty 实例一个工作区
- 首位用户会自动成为具有完整权限的管理员(
canImpersonate和canAccessFullAdminPanel) - 创建第一个工作区后,新注册将被禁用
- 简单的 URL 结构:
https://your-domain.com
启用多工作区模式
- 同一实例上可以创建多个工作区
- 每个工作区都有其自己的子域(例如,
sales.your-domain.com、marketing.your-domain.com) - 用户在
{DEFAULT_SUBDOMAIN}.your-domain.com进行注册和登录(例如,app.your-domain.com) - 不自动授予管理员权限——每个工作区的首位用户是普通用户
- 子域、自定义域名等与工作区相关的设置将在工作区设置中可用。
多工作区模式的 DNS 配置
使用多工作区模式时,请在 DNS 中配置通配符记录,以允许动态创建子域:限制工作区创建
在多工作区模式下,你可能希望限制谁可以创建新工作区:canAccessFullAdminPanel 权限的用户才能创建其他工作区。 用户仍可在首次注册时创建他们的第一个工作区。
Gmail & Google Calendar 集成
创建 Google 云项目
- 转到 Google 云控制台
- 创建新项目或选择现有项目
- 启用这些 API:
配置 OAuth
- 转到 凭据
- 创建 OAuth 2.0 客户端 ID
- 添加这些重定向 URI:
https://{your-domain}/auth/google/redirect(用于 SSO)https://{your-domain}/auth/google-apis/get-access-token(用于集成)
在 Twenty 中配置
- 转到 设置 → 管理员面板 → 配置变量
- 找到 Google 身份验证 部分
- 设置这些变量:
MESSAGING_PROVIDER_GMAIL_ENABLED=trueCALENDAR_PROVIDER_GOOGLE_ENABLED=trueAUTH_GOOGLE_CLIENT_ID={client-id}AUTH_GOOGLE_CLIENT_SECRET={client-secret}AUTH_GOOGLE_CALLBACK_URL=https://{your-domain}/auth/google/redirectAUTH_GOOGLE_APIS_CALLBACK_URL=https://{your-domain}/auth/google-apis/get-access-token
https://www.googleapis.com/auth/calendar.eventshttps://www.googleapis.com/auth/gmail.readonlyhttps://www.googleapis.com/auth/profile.emails.read
如果你的应用程序处于测试模式
如果你的应用程序处于测试模式,你需要将测试用户添加到你的项目中。 在 OAuth 同意屏幕 下,将你的测试用户添加到 “测试用户” 部分。Microsoft 365 集成
在 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
授权重定向 URI
你需要将以下重定向 URI 添加到你的项目中:https://{your-domain}/auth/microsoft/redirect如果你想使用 Microsoft SSOhttps://{your-domain}/auth/microsoft-apis/get-access-token
在 Twenty 中配置
- 转到 设置 → 管理员面板 → 配置变量
- 找到 Microsoft 身份验证 部分
- 设置这些变量:
MESSAGING_PROVIDER_MICROSOFT_ENABLED=trueCALENDAR_PROVIDER_MICROSOFT_ENABLED=trueAUTH_MICROSOFT_ENABLED=trueAUTH_MICROSOFT_CLIENT_ID={client-id}AUTH_MICROSOFT_CLIENT_SECRET={client-secret}AUTH_MICROSOFT_CALLBACK_URL=https://{your-domain}/auth/microsoft/redirectAUTH_MICROSOFT_APIS_CALLBACK_URL=https://{your-domain}/auth/microsoft-apis/get-access-token
配置范围
查看相关源码- ‘openid’
- ‘电子邮件’
- ‘个人资料’
- ‘offline_access’
- ‘Mail.ReadWrite’
- ‘Mail.Send’
- ‘Calendars.Read’
如果你的应用程序处于测试模式
如果你的应用程序处于测试模式,你需要将测试用户添加到你的项目中。 将你的测试用户添加到“用户和组”部分。日历和消息传递的后台作业
在配置完 Gmail、Google Calendar 或 Microsoft 365 集成后,你需要启动同步数据的后台作业。 在你的工作容器中注册以下重复作业:电子邮件配置
- 转到 设置 → 管理员面板 → 配置变量
- 找到 电子邮件 部分
- 配置你的 SMTP 设置:
S3 存储
设置STORAGE_TYPE=S_3,并通过管理面板或 .env 配置 STORAGE_S3_* 变量。 有关 S3 变量的完整列表,请参见config-variables.ts 参考。
在将 S3 与依赖 CORS 的功能(例如浏览器内文件下载)一起使用时,请确保你的存储桶在其 CORS 配置中允许你的 Twenty 前端来源。
逻辑函数与代码解释器
Twenty 支持用于工作流的逻辑函数,以及用于 AI 数据分析的代码解释器。 二者都会运行用户提供的代码,并要求进行显式配置以确保安全。安全默认设置
在生产环境(NODE_ENV=production): 逻辑函数和代码解释器的默认设置为禁用。 如需这些功能,必须通过LOGIC_FUNCTION_TYPE 和 CODE_INTERPRETER_TYPE 显式启用它们。
在开发环境(NODE_ENV=development): 为方便在本地运行,二者默认均为LOCAL。
逻辑函数 - 可用驱动程序
| 驱动 | 环境变量 | 用例 | 安全级别 |
|---|---|---|---|
| 禁用 | LOGIC_FUNCTION_TYPE=DISABLED | 完全禁用逻辑函数 | 不适用 |
| 本地 | LOGIC_FUNCTION_TYPE=LOCAL | 开发和可信环境 | 低(无沙箱) |
| Lambda | LOGIC_FUNCTION_TYPE=LAMBDA | 生产环境(处理不受信任代码) | 高(硬件级隔离) |
逻辑函数 - 推荐配置
用于开发:代码解释器 - 可用驱动程序
| 驱动 | 环境变量 | 用例 | 安全级别 |
|---|---|---|---|
| 禁用 | CODE_INTERPRETER_TYPE=DISABLED | 禁用 AI 代码执行 | 不适用 |
| 本地 | CODE_INTERPRETER_TYPE=LOCAL | 仅限开发环境 | 低(无沙箱) |
| E2B | CODE_INTERPRETER_TYPE=E_2_B | 生产环境(沙盒化执行) | 高(隔离沙盒) |
当使用
LOGIC_FUNCTION_TYPE=DISABLED 或 CODE_INTERPRETER_TYPE=DISABLED 时,任何执行尝试都会返回错误。 如果你想在不启用这些功能的情况下运行 Twenty,这将很有用。