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.
概览
一旦你的应用已在本地构建并完成测试,你可以通过两种方式进行分发:- 部署 tar 包 — 直接将你的应用上传到特定的 Twenty 服务器,以供内部或私有使用。
- 发布到 npm — 将你的应用在 Twenty 应用市场上架,供任何工作区发现并安装。
构建你的应用
Run the build command to compile your app and generate a distribution-readymanifest.json:
.twenty/output/. Add --tarball to also produce a .tgz package for manual distribution or the deploy command.
部署到服务器(tar 包)
对于你不希望公开的应用(专有工具、仅供企业使用的集成或实验性构建),你可以将 tar 包直接部署到某台 Twenty 服务器。先决条件
在部署之前,你需要配置一个指向目标服务器的远程。 远程会将服务器 URL 和身份验证凭据本地存储在~/.twenty/config.json 中。
添加远程:
部署
一步构建并将你的应用上传到服务器:共享已部署的应用
通过 tar 包分发的应用不会出现在公共市场中,因此同一服务器上的其他工作区无法通过浏览发现它们。 一旦您的工作区升级到企业版计划,您就可以像这样分享已部署的应用:- 前往 Settings > Applications > Registrations 并打开你的应用
- 在 Distribution 选项卡中,点击 Copy share link
- 将此链接分享给其他工作区的用户 — 它会将他们直接带到该应用的安装页面
版本管理
在更新已部署的 tarball 应用时,服务器要求package.json 中的 version 必须严格高于(按语义化版本排序)当前已部署的版本。 在 tar 包存储之前,重新部署相同版本或推送更低版本都会被拒绝 — 你会在 CLI 中看到 VERSION_ALREADY_EXISTS 错误。
要发布更新:
- 将
package.json中的version字段递增(例如:1.2.3→1.2.4、1.3.0或2.0.0) - Run
yarn twenty deploy(oryarn twenty deploy --remote production) - 已安装该应用的工作区会在其设置中看到可用的升级
预发布标签按预期工作:将
1.0.0-rc.1 递增为 1.0.0-rc.2 是允许的,并且像 1.0.0 这样的正式发布会被正确识别为高于 1.0.0-rc.5。 package.json 中的版本本身必须是有效的 SemVer 字符串。自动化 CI/CD(脚手架生成的工作流)
使用create-twenty-app 生成的应用开箱即带有两个 GitHub Actions 工作流,位于 .github/workflows/。 当你将仓库推送到 GitHub 后即可运行——CI 无需额外设置,CD 只需要一个机密。
CI — ci.yml
它会在每次向 main 推送以及拉取请求上自动运行你的集成测试。
作用:
- 检出你的应用源代码。
- 使用
twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main组合 action 启动一个隔离的 Twenty 测试实例(相当于 CI 中的yarn twenty server start --test)。 - 启用 Corepack,从你的
.nvmrc设置 Node.js,并使用yarn install --immutable安装依赖。 - 运行
yarn test,并从启动的实例传入TWENTY_API_URL和TWENTY_API_KEY,以便你的测试可以与真实服务器通信。
TWENTY_VERSION(环境变量,默认latest)— 通过在ci.yml中编辑它来固定 CI 使用的 Twenty 服务器版本。- 并发按
github.ref分组,并会在有新的推送时取消进行中的运行。
CD — cd.yml
在每次向 main 推送时将你的应用部署到已配置的 Twenty 服务器;当为拉取请求添加 deploy 标签时,也可从该拉取请求进行部署。
作用:
- 检出 PR 的 head(针对已加标签的 PR),或被推送的提交。
- 运行
twentyhq/twenty/.github/actions/deploy-twenty-app@main——相当于 CI 中的yarn twenty deploy。 - 运行
twentyhq/twenty/.github/actions/install-twenty-app@main,将新部署的版本安装到目标工作区。
| 设置 | 位置 | 目的 |
|---|---|---|
TWENTY_DEPLOY_URL | cd.yml 中的 env(默认值为 http://localhost:3000) | 要部署到的 Twenty 服务器。 首次使用前将其更改为你真实的服务器 URL。 |
TWENTY_DEPLOY_API_KEY | GitHub 仓库 Settings → Secrets and variables → Actions | 在目标服务器上具有部署权限的 API 密钥。 |
默认的
TWENTY_DEPLOY_URL 值 http://localhost:3000 只是占位符——从 GitHub 托管的 runner 无法访问任何资源。 在启用 CD 之前,将其更新为你服务器的公网 URL(或使用具有网络访问权限的自托管 runner)。deploy 标签。 在 cd.yml 中的 if: 守卫会使用该 PR 的 head 提交为其运行作业,使你能在合并前在目标服务器上验证更改。
固定可复用的 actions
两个工作流都引用了位于@main 的可复用 actions,因此会自动获取 twentyhq/twenty 仓库中的 action 更新。 如果你希望构建具有确定性,请在每个 uses: 行中将 @main 替换为某个提交的 SHA 或发行标签。
发布到 npm
发布到 npm 可让你的应用在 Twenty 应用市场中被发现。 任何 Twenty 工作区都可以直接通过 UI 浏览、安装和升级应用市场中的应用。要求
- 一个 npm 账户
- 你在
package.json的keywords数组中的twenty-app关键字(需要手动添加 — 在create-twenty-app模板中默认不包含)
应用市场元数据
ThedefineApplication() config supports optional fields that control how your app appears in the marketplace. Use logoUrl and screenshots to reference images from the public/ folder:
src/application-config.ts
author, category, aboutDescription, websiteUrl, termsUrl, etc.).
Publish
beta 或 next)下发布:
应用市场的发现机制如何运作
The Twenty server syncs its marketplace catalog from the npm registry every hour. You can trigger the sync immediately instead of waiting:defineApplication() config — fields like displayName, description, author, category, logoUrl, screenshots, aboutDescription, websiteUrl, and termsUrl.
如果您的应用未在
defineApplication() 中定义 aboutDescription,市场将自动使用 npm 上您的软件包的 README.md 作为关于页面内容。 这意味着您可以为 npm 和 Twenty 市场维护同一个 README。 如果您希望在市场中使用不同的描述,请显式设置 aboutDescription。CI 发布
Use this GitHub Actions workflow to publish automatically on every release (uses OIDC):yarn install、yarn twenty build,然后在 .twenty/output 目录下执行 npm publish。
npm provenance 可选,但建议启用。 使用
--provenance 发布会在你的 npm 列表中添加可信徽章,使用户可以验证该包是由公共 CI 流水线中的特定提交构建的。 有关设置说明,请参见 npm provenance 文档。安装应用
Once an app is published (npm) or deployed (tarball), workspaces can install it through the UI. Go to the Settings > Applications page in Twenty, where both marketplace and tarball-deployed apps can be browsed and installed. You can also install apps from the command line:服务器在安装时强制执行 SemVer 版本控制,与部署时的规则一致:
- 尝试安装与工作区中已安装版本相同的版本将被拒绝,并返回
APP_ALREADY_INSTALLED错误。 - 尝试安装低于当前已安装版本的版本将被拒绝,并返回
CANNOT_DOWNGRADE_APPLICATION错误。
yarn twenty install。