一个简单、轻量的 Electerm 数据同步服务器,使用 Java 和 Spark 构建。它提供 REST API 用于跨 Electerm 实例同步书签、历史记录和其他数据。
- Java 17:构建和运行服务器所需。从 Adoptium 或您首选的 JDK 提供商下载。
- Gradle:通过 Gradle Wrapper(
gradlew)包含,因此无需单独安装。 - Git:用于克隆仓库。
-
克隆仓库:
git clone https://github.com/electerm/electerm-sync-server-java.git cd electerm-sync-server-java -
设置环境文件:
cp sample.env .env
使用您的首选设置编辑
.env(请参阅配置部分)。
服务器使用 .env 文件中的环境变量进行配置。关键设置包括:
JWT_SECRET:JWT 令牌签名的密钥(生成一个强随机字符串)。JWT_USER_NAME:用于认证的用户名。JWT_USER_PASSWORD:用于认证的密码。PORT:服务器端口(默认:7837)。DB_URL:H2 数据库 URL(默认:嵌入式数据库)。
示例 .env:
JWT_SECRET=your-super-secret-key-here
JWT_USER_NAME=admin
JWT_USER_PASSWORD=securepassword
PORT=7837
DB_URL=jdbc:h2:./electerm_sync_db安全注意:切勿将 .env 提交到版本控制。使用强且唯一的密钥。
用于快速测试或开发:
./gradlew run- 在
http://127.0.0.1:7837上启动服务器。 - 输出将显示:
server running at http://127.0.0.1:7837。 - 按
Ctrl+C停止。
-
构建应用程序:
./gradlew build
-
提取分发包:
tar -xvf build/distributions/electerm-sync-server-java.tar cd electerm-sync-server-java -
运行服务器:
./bin/electerm-sync-server-java
- 在前台运行。使用
&在后台运行:./bin/electerm-sync-server-java &。 - 在
http://127.0.0.1:7837(或您的配置端口)访问。
- 在前台运行。使用
- 在 Electerm 中,转到 设置 > 同步。
- 选择 自定义同步服务器。
- 设置:
- 服务器 URL:
http://127.0.0.1:7837(或您的服务器 URL)。 - JWT 密钥:来自您的
.env的JWT_SECRET。 - 用户名:来自您的
.env的JWT_USER_NAME。
- 服务器 URL:
- 保存并同步数据。
API 端点是 http://127.0.0.1:7837/api/sync。
运行测试套件:
./gradlew test- 使用 JUnit 进行单元测试。
- 报告位于
build/reports/tests/test/index.html。
服务器默认使用 H2 数据库,但您可以实现自定义存储。
- 通过扩展或引用
DataStore.java实现数据存储接口。 - 更新
App.java以使用您的自定义存储。 - 重新构建并运行。
示例:以 src/main/java/ElectermSync/DataStore.java 为参考来实现读/写方法。
对于容器化部署,请参阅 electerm-sync-server-java-docker。
探索替代方案:自定义同步服务器 Wiki。
MIT