> For the complete documentation index, see [llms.txt](https://doc.duaer.com/zh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/zh/integrations/creating-nodes/deploy/submit-community-nodes.md).

# 发布 Duaer 社区节点

从 GitHub Actions 发布到 npm，让每个版本带上 npm provenance，再在 Duaer 里按包名安装。
## 包的要求 <a href="#standards" id="standards"></a>

- 包名以 n8n-nodes- 或 @<scope>/n8n-nodes- 开头。Duaer 拒绝安装其他名字的社区包。
- package.json 的 n8n 字段列出所有节点和凭证。
- npm run lint 通过，并在 Duaer 里试过。
- npm 包或公开仓库里有 README，说明凭证和每个操作。

## 带 provenance 发布到 npm <a href="#publishing-to-npm" id="publishing-to-npm"></a>

从 2026 年 5 月 1 日起，Duaer 要求社区包带 npm provenance。Duaer 的社区包扫描会判定没有 provenance 的版本不通过。provenance 由 GitHub Actions 签名，证明这个版本是哪个仓库、哪次提交构建的。从本机直接发布不带 provenance。

1. 第一次发布前，在 npmjs.com 的包设置里打开 Trusted Publishers，添加 GitHub Actions：填仓库所有者、仓库名和工作流文件名 publish.yml。不用长期令牌。
2. 运行下面第一条命令，生成发布工作流。用 npm create 生成的新项目已经带有它。
3. 运行 npm run release：升级版本号、提交、打标签并推送。标签触发 GitHub Actions 发布到 npm。

```
npx n8n-node release --init-workflow   # once: adds .github/workflows/publish.yml
npm run release                          # bump, tag, push; GitHub Actions publishes
```

不能用 Trusted Publishers 时，在仓库的 Actions 密钥里保存 NPM_TOKEN，工作流会改用它。

## 在 Duaer 里安装

1. 以 Duaer 实例所有者或管理员身份打开设置 › Community nodes。
2. 输入包名并确认风险提示。
3. 安装完成后，在节点面板里搜索新节点。

安装前请读 [社区节点的风险](/zh/integrations/community-nodes/risks.md)。
## Questions

### 为什么 Duaer 社区包要从 GitHub Actions 发布？

从 2026 年 5 月 1 日起，Duaer 要求社区包带 npm provenance，只有 GitHub Actions 这类 CI 发布才会签名。从本机发布的版本不带 provenance，过不了 Duaer 的社区包扫描。

### Duaer 对社区包名有什么要求？

Duaer 只安装名字以 n8n-nodes- 或 @<scope>/n8n-nodes- 开头的社区包。

## 相关

- [构建 Duaer 节点](https://doc.duaer.com/zh/integrations/creating-nodes/build.md)
- [Duaer 社区节点的风险](https://doc.duaer.com/zh/integrations/community-nodes/risks.md)
- [为 Duaer 创建自定义节点](https://doc.duaer.com/zh/integrations/creating-nodes.md)

