本版本(v1.0.0 第一阶段)实现了 WireGuard 配置的持久化存储和 RESTful API 管理功能。
模块化存储层
配置管理 API
AMIS 前端界面
wireguard-registry/ ├── wireguard-registry-core/ # 核心模块 │ └── storage/ # 存储接口定义 │ ├── ConfigStorage.java │ └── model/ │ ├── StoredNetwork.java │ └── GeneratedConfig.java │ ├── wireguard-registry-storage/ # 存储实现模块(父模块) │ ├── memory/ # 内存存储 │ │ ├── MemoryConfigStorage.java │ │ └── MemoryStorageConfiguration.java │ └── sqlite/ # SQLite 存储 │ ├── SqliteConfigStorage.java │ ├── SqliteStorageConfiguration.java │ ├── entity/ # JPA Entity │ └── repository/ # JPA Repository │ ├── wireguard-registry-service/ # Web 服务 │ ├── controller/ │ │ └── NetworkController.java # REST API │ ├── service/ │ │ └── NetworkConfigService.java # 业务服务 │ ├── entity/ # 请求/响应对象 │ └── resources/ │ ├── application.yml # 配置文件 │ └── static/ │ ├── index.html # 前端入口(已更新) │ └── options/ │ ├── form.json # 配置生成页面 │ └── network-list.json # 网络管理页面(新增) │ ├── API_TEST_GUIDE.md # API 测试指南 └── test-api.sh # 自动化测试脚本
cd /home/user/wireguard-registry
mvn clean package -DskipTests
cd wireguard-registry-service/target
java -jar wireguard-registry-service-0.0.1-SNAPSHOT.jar
java -jar wireguard-registry-service-0.0.1-SNAPSHOT.jar \ --wireguard.storage.type=sqlite \ --wireguard.storage.sqlite.url=jdbc:sqlite:./data/wireguard.db
或使用环境变量:
export STORAGE_TYPE=sqlite
export SQLITE_PATH=./data/wireguard.db
java -jar wireguard-registry-service-0.0.1-SNAPSHOT.jar
API_TEST_GUIDE.md# 存储配置
wireguard:
storage:
type: memory # 可选: memory, sqlite
# SQLite 配置
sqlite:
url: jdbc:sqlite:./data/wireguard.db
STORAGE_TYPE: 存储类型 (memory/sqlite)SQLITE_PATH: SQLite 数据库文件路径| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/v1/networks | 创建网络 |
| GET | /api/v1/networks | 获取网络列表 |
| GET | /api/v1/networks/{id} | 获取网络详情 |
| PUT | /api/v1/networks/{id} | 更新网络 |
| DELETE | /api/v1/networks/{id} | 删除网络 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/v1/networks/{id}/configs | 获取网络所有配置 |
| GET | /api/v1/networks/{id}/configs/{nodeId} | 获取节点配置 |
| GET | /api/v1/networks/{id}/configs/{nodeId}/download | 下载配置文件 |
| POST | /api/v1/networks/{id}/regenerate | 重新生成配置 |
| GET | /api/v1/networks/{id}/version | 获取配置版本 |
{
"status": 0, // 0=成功,-1=失败
"msg": "success",
"data": { ... }
}
# 启动服务后运行
cd /home/user/wireguard-registry
./test-api.sh
测试脚本会自动执行以下测试:
详细的测试步骤和 curl 命令请查看 API_TEST_GUIDE.md
CREATE TABLE wg_networks (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
struct_json TEXT NOT NULL,
properties_json TEXT,
version INTEGER NOT NULL DEFAULT 1,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL
);
CREATE TABLE wg_configs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
network_id TEXT NOT NULL,
node_id TEXT NOT NULL,
node_name TEXT,
config_json TEXT NOT NULL,
config_text TEXT NOT NULL,
version INTEGER NOT NULL,
generated_at TIMESTAMP NOT NULL,
UNIQUE(network_id, node_id)
);
ConfigStorage 接口完全独立,不依赖任何 ORM基于 Spring Boot Auto-Configuration 机制:
wireguard.storage.type 自动选择存储实现index.html 通过 ?app= 参数控制claude/config-registry-v1-01Pnb8BD1qYwMXAX9cqAQRWVaa154d7 (Update README.md)aa29eba (feat: 实现配置存储和管理功能)由于环境网络 DNS 解析问题,Maven 无法下载依赖。解决方法:
修复网络后重新编译
mvn clean package -DskipTests
或使用已有环境的 jar 包 如果在其他环境已编译,可直接使用 jar 文件
配置代理
<!-- settings.xml -->
<proxies>
<proxy>
<host>proxy.example.com</host>
<port>8080</port>
</proxy>
</proxies>
API_TEST_GUIDE.md - API 测试完整指南test-api.sh - 自动化测试脚本application.yml - 应用配置文件README.md - 项目主文档(原有)本功能基于原有的 WireGuardConfigGenerator 实现,在保持兼容性的同时添加了:
与主项目保持一致
当前版本: v1.0.0 (第一阶段) 最后更新: 2025-11-21 代码状态: ✅ 已提交并推送到远程分支