OpenSEO 旧版 Cloudflare 部署(Deploy 按钮或手动 Wrangler)如何更新到最新版本?
【免费下载链接】open-seoOpen source alternative to Semrush and Ahrefs项目地址: https://gitcode.com/GitHub_Trending/op/open-seo
如果你的 OpenSEO 自托管实例是用已退役的 "Deploy to Cloudflare" 按钮或手动 Wrangler 流程创建的,不需要迁往新部署流程——旧版部署继续正常工作,只需要在保留现有资源的前提下把代码更新到最新版。官方旧版部署文档 针对这两种部署方式分别给出了更新步骤,本文按这两种路径整理出可照做的操作序列,以及更新后的验证与排查方法。
先确认你属于哪种旧版部署
更新命令取决于当初的创建方式:
- Deploy 按钮仓库:仓库由 Deploy 按钮创建,
wrangler.jsonc中保存着属于你 Cloudflare 账号的资源 ID(D1、KV、R2 等)。 - 手动 Wrangler 部署:你克隆了仓库,用本地
wrangler.jsonc里的绑定 ID 通过 Wrangler 直接部署。
两种路径的资源文件都是wrangler.jsonc,更新的核心区别在于代码怎么拉取、部署怎么触发。
前置条件
- 本地已有该部署对应的 OpenSEO 仓库,且
wrangler.jsonc中的资源 ID 仍是你的账号中的现有资源(如果 ID 在你账号中不存在,部署会直接失败)。 - Node 22.6 或更新版本,以及pnpm(可用
corepack enable安装)——这是 Cloudflare 自托管指南 列出的环境要求,手动 Wrangler 路径的pnpm install/pnpm run deploy依赖它。 - DataForSEO 账号及其 API Key(
open-seo-auditworker 需要,见下文)。
路径一:Deploy 按钮仓库的更新
一次性设置——把上游仓库加为upstream远程:
git remote add upstream https://github.com/every-app/open-seo.git之后每次更新执行以下命令:
git fetch upstream cp wrangler.jsonc wrangler.local.backup.jsonc git checkout main git reset --hard upstream/main cp wrangler.local.backup.jsonc wrangler.jsonc git add wrangler.jsonc git commit -m "restore Cloudflare settings" || true git push --force-with-lease origin main各步骤的作用和副作用:
cp wrangler.jsonc wrangler.local.backup.jsonc:备份你账号的资源 ID。拉取新代码前必须先做这一步,因为上游的新版wrangler.jsonc会覆盖掉你的配置。git reset --hard upstream/main:会丢弃本地 main 分支上所有未提交的改动,只用于同步代码。如果你的工作副本里有其他未推送的修改,先自行处理再执行。- 恢复备份并
commit:让仓库重新带上你的资源 ID;|| true表示如果没有差异需要提交(例如配置没变)则忽略。 git push --force-with-lease origin main:会重写 origin 上 main 分支的历史,仅适用于这个仓库专门服务于该次部署、没有其他协作者依赖当前历史的情况。
wrangler.jsonc之所以必须保留并推回,就是因为它持有你账号的资源 ID——更新代码时不能让它被上游模板替换。
路径二:手动 Wrangler 部署的更新
git pull pnpm install pnpm run deploy关于pnpm run deploy,有两点需要注意:
- 它除了部署主 worker,还会部署第二个 worker
open-seo-audit(运行站点审计功能)。你需要把你wrangler.jsonc里的DB、KV、R2绑定 ID 复制进 wrangler.audit.jsonc(该文件不需要OAUTH_KV)——如果配置中的 ID 在你账号里不存在,部署会失败。 - 更新后确认
open-seo-audit上已设置过 DataForSEO Key(一次性操作):
pnpm exec wrangler secret put DATAFORSEO_API_KEY --name open-seo-audit漏掉这一步的话,审计中的每次 Lighthouse 检查都会失败。
另外,从 package.json 的脚本定义可以看到,deploy会先执行db:migrate:prod(wrangler d1 migrations apply DB --remote,对远端 D1 应用数据库迁移),再构建并依次部署审计 worker 和主 worker——即数据库迁移会随本次更新自动完成,不需要单独操作。
更新后如何验证
- 请求
https://<your-worker-hostname>/api/health(<your-worker-hostname>替换为你的 worker 主机名),该端点报告运行时配置检查与数据库状态。 - 打开你的 Worker URL,用 Cloudflare Access 登录,确认 OpenSEO 能正常加载。
- 如果日志中有服务端错误,打开 Cloudflare 控制台的 Worker
Logs,或本地运行pnpm exec wrangler tail查看实时日志。
更新后登录失败或页面不加载时检查什么
官方排查顺序(在 Worker 的Settings下逐项核对):
- Domains & Routes:
Cloudflare Access是否对workers.dev路由保持启用。 - Variables & Secrets:
TEAM_DOMAIN(例如https://your-team.cloudflareaccess.com,文档示例值)、POLICY_AUD(Access 应用的 audience 标签)、DATAFORSEO_API_KEY是否都已设置;open-seo-auditworker 同样需要DATAFORSEO_API_KEY。 - 手动 Wrangler 部署:
wrangler.jsonc中的绑定 ID 是否与账号中的资源一致。
限制
- 迁移到当前(alchemy)部署流程目前不受支持:新流程会重新创建一套资源,现有数据不会迁移过去。继续停留在旧版流程并照本页更新即可。
- MCP 接入与遥测(telemetry)在旧版部署上与当前部署一致,配置方式见 Operations 文档;如需禁用遥测,旧版部署把
OPENSEO_TELEMETRY_DISABLED=1(或DO_NOT_TRACK=1)设为 Worker 变量。
【免费下载链接】open-seoOpen source alternative to Semrush and Ahrefs项目地址: https://gitcode.com/GitHub_Trending/op/open-seo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考