Syndroo文档
网站GitHub概览

部署服务器

使用可选的 server 命令,在你自己的 Cloudflare 账号中运行 Syndroo。此路径连接一个 Threads 账号,也可以从 GitHub Actions 发布。本地 connect、publish 和 status 工作流仍保持独立。

0.7.0 自托管路径。server init 使用 0.7.0 版本的 @syndroo/cli 和 @syndroo/cloudflare 包,并安装项目本地 Wrangler。本项目尚未完成 Cloudflare、GitHub、Meta 或 Threads 验收。验收限制见CLI 参考。

所需条件

  • macOS 或 Linux 上的 Node.js 24.19.0 或更新版本。
  • 已配置姓名和邮箱的 Git,以及 npm。
  • 一个 Cloudflare 账号,以及 Meta 中的一个 Threads 应用。
  • 如果需要仓库和手动 CI,还需要 GitHub CLI gh。

让智能体执行设置

将以下提示词粘贴给智能体:

你是一名可在本地终端执行命令的智能体。请为我设置 Syndroo 0.7.0。

1. 检查 Node.js 24.19.0 或更新版本以及 npm;确认我的平台是 macOS 或 Linux,以获得受支持的本地写入能力。
2. 使用以下命令安装 Syndroo 及其官方平台插件:
   npm install --global @syndroo/[email protected] @syndroo/[email protected] @syndroo/[email protected] @syndroo/[email protected] @syndroo/[email protected] @syndroo/[email protected] @syndroo/[email protected]
3. 运行 `syndroo --version`。先用 `npm root --global` 获取 npm 全局根目录,再读取 `<global-root>/@syndroo/cli/skills/syndroo/SKILL.md` 并遵循包内 Skill。不要运行或编造单独的 Skill 安装命令。
4. 询问我要使用本地工作流还是自托管 Server 工作流,然后按我的选择继续。
5. 对于 Server 设置,询问我是否需要 GitHub。只有在我明确授权时才创建或推送仓库。复用我已经给出的授权。
6. 不要让机密出现在提示词、命令参数、日志或受版本跟踪的文件中。只有已获授权的内容和目标才能发布。

本次任务选择自托管 Server 工作流,请部署到我的 Cloudflare 账号,并连接一个 Threads 应用。
请遵循 https://YOUR-DOCS-ORIGIN/zh/getting-started/server/;把 YOUR-DOCS-ORIGIN 替换为已配置的文档站网址。
询问我是否需要 GitHub;如果需要,请取得 OWNER/REPO 以及仓库应为私有还是公开,默认私有。
使用稳定的请求 ID;Wrangler 登录、Meta 授权或 Git 推送仍需要我操作时,请停下。

1. 创建项目

安装本指南使用的 CLI,然后检查本地工具:

npm install --global @syndroo/[email protected]
syndroo --version

继续前,请确认 syndroo --version 输出 0.7.0。

node --version
git config --get user.name
git config --get user.email
npm --version

对于只在本地使用的项目,运行:

syndroo server init ./syndroo-site

如需使用 GitHub,请先登录,再在同一条命令加入仓库参数。仓库默认私有;只有在你明确选择时才使用 --public。

gh auth login
syndroo server init ./syndroo-site --github OWNER/REPO --private

server init 会创建应用配置、Wrangler 配置、固定依赖版本的文件、示例帖子和首次 Git 提交。

2. 运行 doctor

cd syndroo-site
syndroo server doctor --json

Doctor 只读,不会修复项目。部署前,请修复任何报告为 missing 或 attention_required 的本地检查。部署和凭证预期为 not_configured,而 OAuth 和发布就绪状态则保持 unverified。

3. 登录并部署

Wrangler 必须已经登录。server deploy 会复用该登录状态,本身不会启动登录流程。

npx wrangler login
syndroo server deploy --yes

结果会报告已部署的 Worker 及其已确认的 HTTPS 地址(域名)。在执行 --yes 前,请核验 Cloudflare 账号和资源。

4. 注册回调地址

在 Meta 应用中,用 Worker 的 HTTPS 地址(域名)加上回调路径进行注册。请将示例主机替换为完整且已确认的 HTTPS 地址(域名),例如:

https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/oauth/callback/threads

5. 连接 Threads

syndroo server connect threads --app-id APP_ID

把 APP_ID 替换为 Threads 应用 ID,并完成 Meta 浏览器提示。终端读取 App Secret 时不回显;自动化流程可以使用 THREADS_APP_SECRET 或 --app-secret-stdin。命令会输出连接 ID,并将已验证的 App ID 和连接引用保存到 syndroo.config.jsonc。

第 6 步和第 7 步是可选的。如果不想配置 GitHub CI,完成第 5 步后设置就结束了。

6. 可选:准备 GitHub Actions

尚未登录时,运行 gh auth login。然后配置仓库:

syndroo server ci setup github --repo OWNER/REPO --yes

这会创建 .github/workflows/threads-publish.yml 并配置 threads-ci GitHub 环境。它不会提交、推送或发布。

帖子是严格 JSON,只包含一个 text 属性:

{
  "text": "Hello from Syndroo CI"
}

检查更新后的配置、工作流和帖子,然后使用已有授权提交并推送;如果本次推送不在已有授权范围内,请先询问:

git add syndroo.config.jsonc .github/workflows/threads-publish.yml posts/hello.json
git commit -m "Configure Threads publishing"
git push

7. 可选:运行工作流

在 GitHub 中打开 Actions,选择 Publish to Threads,再选择 Run workflow。使用仓库中已提交的帖子路径和稳定的请求 ID:

  • post_path:posts/hello.json
  • request_id:threads-ci:hello-001

工作流使用限定范围的令牌调用 syndroo server publish threads --input "$INPUT_PATH" --request-id "$REQUEST_ID" --yes --json。只有最终结果为 succeeded 且至少有一次成功投递时,发布才算成功。

如果响应丢失或结果为 unknown,请检查该操作。用相同请求 ID 重跑同一帖子;不要为同一逻辑发布创建新 ID。

文件与密钥

syndroo.config.jsonc 是受版本跟踪的应用配置。wrangler.jsonc 是受版本跟踪的 Cloudflare 配置。不要提交 wrangler.effective.jsonc、.syndroo/、node_modules/、环境文件或私有服务器状态。

App Secret、CI bearer、Cloudflare admin bearer、SECRET_KEY 和 RUNTIME_KEY 不得出现在参数、日志或仓库文件中。请使用隐藏的终端输入,或文档规定的标准输入、环境变量路径。

出现问题时的处理

  • 部署中断:保留操作 ID、已确认的资源和机器回执,然后在同一项目上重新运行。仅在证据已经核实且不含机密时使用 --recover。
  • 发布结果未知:将其视为可能已经发布。检查该操作,并为相同内容复用相同请求 ID。
  • Doctor 尚未就绪:查看CLI 参考和服务器配置说明中列出的检查项。
  • Meta 回调失败:比较已注册的回调与已确认的 HTTPS 地址(域名),并查看Threads 服务器说明和凭证参考。