跳到主要内容
♜ ReignHub / 文档
自建部署

部署到 Cloudflare

部署开源 Worker,初始化 D1,连接自己的设备。

一键部署

打开仓库中的 Deploy to Cloudflare 入口,授权你自己的 Cloudflare 账号,按向导创建服务。

部署根仓库,不要只选择 apps/site 子目录,因为它依赖同一 pnpm workspace 中的连接核心与 SDK。向导需要配置 Worker、一个 D1 数据库和 SQLite Durable Object。

按照向导授权 Worker、D1 和 Durable Objects 所需权限,完成后保存分配的服务地址与资源绑定。

手动部署

需要 Git、Node.js 24、pnpm 10.34.5 和 Cloudflare 账号。在自己的目录克隆开源仓库:

git clone https://github.com/monkeyWie/reignhub.git
cd reignhub
corepack enable
pnpm install --frozen-lockfile
pnpm exec wrangler login
pnpm build:web
pnpm run deploy

注意使用 pnpm run deploy,避免调用 pnpm 自身的 deploy 子命令。首次资源创建后,部署脚本初始化 D1;初始化完成前请求可能暂时不可用。

保存资源绑定

检查 Wrangler 输出,在 wrangler.jsonc 中保留这次分配的 D1 数据库 ID。后续发布继续使用同一个数据库,避免重复创建后丢失设备目录和服务身份。

部署后检查:

curl https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/healthz
curl https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/p2p/config

健康检查应返回成功;配置端点应包含这套服务的连接能力和签名身份。打开同源 /chat 页面,再把 Worker 根地址填入原生客户端。

自定义域名与来源限制

可以在 Cloudflare 中给 Worker 绑定自定义域名,等待 DNS 与证书生效后使用 HTTPS 地址。Web、API、信令和中继保持同源部署。

需要允许额外 Web 来源时,用 ALLOWED_ORIGINS 配置精确的逗号分隔 origin。当前服务自身的 origin 默认允许。不要用宽泛通配符替代配对授权。

站点语言与 SEO

英文使用 /docs 等无前缀路径,中文使用 /zh-CN/docs。首次访问按浏览器语言选择,手动切换后记住选择;控制台使用 /chat。如果使用固定公网域名,在构建时设置:

SITE_URL=https://reignhub.example.com pnpm build:web
pnpm run deploy

这会为自己的域名生成 canonical、语言替代链接、分享卡片和站点地图。未设置 SITE_URL 时,不生成绝对 canonical,站点地图为空,避免把自建实例指向官方域名。更换域名需要调整构建变量并重新构建。私有实例仍需访问控制,robots.txt 不是鉴权。

配置自己的法律页面

如果服务有自己的运营条款和隐私政策,可在构建时指定链接:

NEXT_PUBLIC_TERMS_URL='https://example.com{localePrefix}/terms' \
NEXT_PUBLIC_PRIVACY_URL='https://example.com{localePrefix}/privacy' \
NEXT_PUBLIC_SUPPORT_EMAIL='support@example.com' \
pnpm build:web

{localePrefix} 在英文中为空,中文中为 /zh-CN;不需要多语言时也可填写固定链接。配置两个地址后,官网页脚和账号页会显示对应入口。正文由你自己的站点托管,开源版本不附带其他运营者的条款。

配置 NEXT_PUBLIC_SUPPORT_EMAIL 后,官网和文档页脚会展示可点击的客服邮箱。这是公开的构建变量,修改后需要重新构建。

本地验证

pnpm exec wrangler d1 migrations apply DB --local
pnpm exec wrangler dev --port 8787

访问 http://localhost:8787/chat。本地资源与生产 D1 分开,开发时不要指向真实用户的设备状态目录。

在 GitHub 上编辑此页

本页内容