跳转到内容

在 Cloudflare 部署 Graft

通过 Cloudflare 一键部署,为 Eidos Lite 创建自己的同步服务器。 不需要准备 Linux 服务器、安装 Docker、使用终端或购买域名。

准备好:

  • 一个可以使用 Workers、已开通 R2 的 Cloudflare 账户。如果 Cloudflare 要求设置 R2 账单信息,先完成开通。
  • 一个 GitHub 或 GitLab 账户,用于保存你的模板副本。
  • 每台需要连接自定义服务器的电脑都安装 Eidos Lite 并激活 Spark。 不需要订阅官方 Sync 服务。

Cloudflare 的托管费用与 Spark 分开计算。Workers、R2 和 Durable Objects 各自有额度和限制,请查看账户的用量和账单,不要将免费额度理解为始终免费。

  1. 打开 Deploy to Cloudflare。
  2. 登录 Cloudflare,选择要部署服务的账户。
  3. 按提示连接 GitHub 或 GitLab 账户,为仓库副本和 Worker 起名,例如 my-graft。
  4. 查看将要创建的资源并开始部署。模板会配置 Worker、用于保存数据的私有 R2 桶, 以及用于保存服务器元数据的 Durable Objects。
  5. 等待部署成功,打开部署好的 Worker,复制它的公开 workers.dev 地址。

地址类似:

https://my-graft.your-subdomain.workers.dev

后续步骤都使用 Cloudflare 实际提供给你的地址。R2 桶保持私有即可, 这个模板不需要 R2 公开地址,也不需要另行生成 S3 访问密钥。

如果部署失败,打开构建或部署日志,查看第一条错误。 若提示开通 R2,在当前选中的 Cloudflare 账户中完成开通,再重试部署。

  1. 在 Worker 地址后加上 /setup,用浏览器打开:

    https://my-graft.your-subdomain.workers.dev/setup
  2. 在 Set up your Graft server 页面点击 Generate access key。

  3. 进入 Save your access key 页面后,先将密钥复制到密码管理器, 连同服务器地址一起保存,再关闭页面。

密钥只显示一次,刷新页面不会再次显示。没有保存或丢失密钥时, 按照下文的恢复步骤重新设置。

先完成设置,再分享服务器地址:在这一步完成前,知道地址的人都可以抢先设置。 这是使用一个共享访问密钥的个人服务器,该密钥可以访问服务器中的所有 Space。

在浏览器打开:

https://my-graft.your-subdomain.workers.dev/healthz

正常响应包含 "status":"ok"。首次设置前返回 503 是预期行为; 完成第 2 步后再访问。

这一步确认服务能够响应,第 5 步的双电脑检查还会验证存储和同步是否正常。

  1. 打开设置 → 账户与服务,确认 Spark 已激活。如果功能仍锁定, 点击刷新 Spark 权益。

  2. 打开同步 → 添加服务器。

  3. 为服务器起名,然后填写:

    字段 填写内容
    服务器地址 基础地址,例如 https://my-graft.your-subdomain.workers.dev
    访问密钥 第 2 步保存的访问密钥
  4. 点击测试并保存。

  5. 返回同步设置,选择刚保存的服务器;如果提示,设置 Space 同步密码。 按需启用本地版本历史、保存修改,然后点击连接,等待上传和确认完成。

服务器地址不要带 /setup、/healthz 或仓库路径。 访问密钥用于访问服务器;同步密码用于加密和解锁 Space。 两者都要保存,服务器无法找回丢失的同步密码。

如果 Space 已连接其他云端服务,使用切换服务器,不要直接替换地址。 切换流程和连接设置详见连接自托管服务器。

  1. 在已连接的 Space 中添加一条记录和一个小文件,等待同步完成。
  2. 在第二台电脑激活 Spark,添加相同的服务器地址和访问密钥。
  3. 选择远端 Space,点击下载,输入同步密码,并选择一个新文件夹作为目标。
  4. 打开记录和文件。在这台电脑修改记录并同步,确认第一台电脑也收到修改。

检查下载结果期间,保留原来的本地副本。 后续操作见日常云同步与恢复。

丢失服务器访问密钥时,可以重新设置,不需要删除 Space:

  1. 用密码管理器生成一个 64 字符、包含字母和数字、不含空格的随机密码, 保存为新的服务器访问密钥。
  2. 在 Cloudflare 控制台打开 Workers & Pages,选择这个 Worker, 进入 Settings → Variables and Secrets。
  3. 添加或修改名为 GRAFT_REMOTE_TOKEN 的值,类型选择 Secret。 将新密钥粘贴为它的值,部署变更。
  4. 在每台电脑的 Lite 中打开管理服务器,编辑这个服务器, 更新访问密钥,再测试并保存。

新的 Secret 会替代旧的生成密钥,不会修改 Space 同步密码,也不会删除数据。 请保留这个 Secret:删除它不会恢复旧密钥,也不会重新开放首次设置。

上游模板更新后,你的仓库副本不会自动变成新版。更新时按照模板的 升级说明, 保留原来的 Worker 名称、R2 关联和 Durable Object 命名空间。 使用新名称部署另一份服务,不会迁移已有 Space。

为重要 Space 保留完整本地副本、独立备份及同步密码。 只复制 R2 桶不是完整的服务器备份,元数据还保存在 Durable Objects 中。 模板目前没有协调服务器导出与恢复的命令。

需要删除远端 Space 时,使用远端 Space 管理。 不要为了释放空间手动删除桶内对象或给它们设置自动过期规则, 这些对象可能仍属于 Space 的历史版本。

问题 下一步
部署失败 查看 Cloudflare 部署日志,确认当前账户已开通 R2。
设置页面显示 Setup is complete 使用已保存的密钥;没有密钥时按上文恢复访问权限。
设置页面拒绝提交 直接打开部署后的 HTTPS 地址下的 /setup,从该页面提交;仍失败时检查模板是否已更新。
健康检查返回 503 完成首次设置;如果配置了 GRAFT_REMOTE_TOKEN,确认它是至少 32 字符的有效 Secret。
Lite 提示授权失败 检查是否填写服务器访问密钥,而不是 Space 密码或 Cloudflare API Token。
健康检查正常但同步失败 查看 Worker 日志;在绑定中检查 OBJECTS、DIRECTORY 和 REPOSITORIES,先与模板对照,再决定是否修改。

截图或向支持人员反馈时,不要包含访问密钥和同步密码。 如需通过终端部署,参阅模板的命令行说明。