官方仓库的教程可能因为时间比较久,缺少一些步骤,经过多次尝试,总算是同步成功了,把踩过的坑写一下,方便大家使用。
环境准备
- Node.js:仓库写的是v20 or later,但是使用wrangler至少需要v20.20,因为我的v20.15安装失败,提示我升级nodejs,但是我忘了看什么版本了,应该是20.20,反正我是直接切换到了22.15.0
- cloudflare账户开通d1数据库和workers,都是免费的,开通就行,不用创建数据库,数据库使用wrangler远程创建
- git
部署
在本地找个文件夹,右键打开git bash进行以下操作
-
fork一下,然后克隆自己的仓库,或者直接克隆官方仓库:github.com/electerm/el...
shellgit clone https://github.com/your-username/electerm-sync-cloudflare.git拉取不下来的话用ssh克隆,记得配好公钥
-
进入仓库,安装依赖
shellcd electerm-sync-cloudflare npm install npm i -g wrangler -
登录wrangler
shellwrangler login这时候会跳到浏览器,授权登录,登录完成命令行里会有success的输出
-
创建数据库
shellwrangler d1 create electerm_sync_db这里会输出数据库id,记一下

然后会有以下提示,按照我的输入填即可

-
修改wrangler.jsonc为以下样式(d1_databases里会有两个数据库,删除原本的那个,留下database_id为你自己的数据库id的那条)
json{ "name": "electerm-sync-cloudflare", "main": "src/index.ts", "compatibility_date": "2023-05-18", // Configure D1 Database "d1_databases": [ { "binding": "electerm_sync_db", "database_name": "electerm_sync_db", "database_id": "xxxxxxxxxxxxxxxxxxxxx", "remote": true } ] } -
让远程数据库执行sql文件
shellwrangler d1 execute electerm_sync_db --file=./bin/schema.sql --remote -
部署
shellnpm run deploy这会自动创建workers
-
到cloudflare的workers添加两个变量,JWT_SECRET和JWT_USERS

JWT_USERS就是用户名,比如zhangsan,lisi,这样就是两个用户,一个zhangsan,一个lisi
JWT_SECRET的类型要选择密钥,找个在线生成jwt密钥的网站生成一个256的即可,比如免费JWT密钥生成器 | 安全的HS256、HS384、HS512密钥在线生成

-
绑定域名
在域和路由里点击添加,选择自定义域,绑定个二级域名即可,比如backup.abc.com,前提是abc.com在你的cloudflare域里面

使用
-
打开electerm,找到设置同步➡️custom

-
API Url填写你绑定的域名加上接口路径
-
JWT Secret填写生成的密钥
-
User ID填写其中一个用户名,例如zhangsan
-
密码填写你设置的密码
如果这个账号之前没有使用过,那么这次填写的密码就是相当于设置密码
-
-
点击上传设置,这里有同步时间就说明成功了
