在cloudflare免费部署electerm同步服务

官方仓库的教程可能因为时间比较久,缺少一些步骤,经过多次尝试,总算是同步成功了,把踩过的坑写一下,方便大家使用。

环境准备

  1. Node.js:仓库写的是v20 or later,但是使用wrangler至少需要v20.20,因为我的v20.15安装失败,提示我升级nodejs,但是我忘了看什么版本了,应该是20.20,反正我是直接切换到了22.15.0
  2. cloudflare账户开通d1数据库和workers,都是免费的,开通就行,不用创建数据库,数据库使用wrangler远程创建
  3. git

部署

在本地找个文件夹,右键打开git bash进行以下操作

  1. fork一下,然后克隆自己的仓库,或者直接克隆官方仓库:github.com/electerm/el...

    shell 复制代码
    git clone https://github.com/your-username/electerm-sync-cloudflare.git

    拉取不下来的话用ssh克隆,记得配好公钥

  2. 进入仓库,安装依赖

    shell 复制代码
    cd electerm-sync-cloudflare
    npm install
    npm i -g wrangler
  3. 登录wrangler

    shell 复制代码
    wrangler login

    这时候会跳到浏览器,授权登录,登录完成命令行里会有success的输出

  4. 创建数据库

    shell 复制代码
    wrangler d1 create electerm_sync_db

    这里会输出数据库id,记一下

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

  5. 修改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
    		}
    	]
    }
  6. 让远程数据库执行sql文件

    shell 复制代码
    wrangler d1 execute electerm_sync_db --file=./bin/schema.sql --remote
  7. 部署

    shell 复制代码
    npm run deploy

    这会自动创建workers

  8. 到cloudflare的workers添加两个变量,JWT_SECRET和JWT_USERS

    JWT_USERS就是用户名,比如zhangsan,lisi,这样就是两个用户,一个zhangsan,一个lisi

    JWT_SECRET的类型要选择密钥,找个在线生成jwt密钥的网站生成一个256的即可,比如免费JWT密钥生成器 | 安全的HS256、HS384、HS512密钥在线生成

  9. 绑定域名

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

使用

  1. 打开electerm,找到设置同步➡️custom

    • API Url填写你绑定的域名加上接口路径

      backup.abc.com/api/sync

    • JWT Secret填写生成的密钥

    • User ID填写其中一个用户名,例如zhangsan

    • 密码填写你设置的密码

      如果这个账号之前没有使用过,那么这次填写的密码就是相当于设置密码

  2. 点击上传设置,这里有同步时间就说明成功了

相关推荐
是真的小外套1 小时前
第十五章:XXE漏洞攻防与其他漏洞全解析
后端·计算机网络·php
ybwycx2 小时前
SpringBoot下获取resources目录下文件的常用方法
java·spring boot·后端
小陈工3 小时前
Python Web开发入门(十一):RESTful API设计原则与最佳实践——让你的API既优雅又好用
开发语言·前端·人工智能·后端·python·安全·restful
小阳哥AI工具3 小时前
Seedance 2.0使用真人参考图生成视频的方法
后端
IeE1QQ3GT3 小时前
使用ASP.NET Abstractions增强ASP.NET应用程序的可测试性
后端·asp.net
Full Stack Developme4 小时前
SpringBoot多线程池配置
spring boot·后端·firefox
sxhcwgcy6 小时前
SpringBoot 使用 spring.profiles.active 来区分不同环境配置
spring boot·后端·spring
稻草猫.7 小时前
Spring事务操作全解析
java·数据库·后端·spring
希望永不加班8 小时前
SpringBoot 整合 MongoDB
java·spring boot·后端·mongodb·spring
Lzh编程小栈8 小时前
数据结构与算法之队列深度解析:循环队列+C 语言硬核实现 + 面试考点全梳理
c语言·开发语言·汇编·数据结构·后端·算法·面试