感谢你对 DS2API 的关注与贡献!
- Go 1.26+
- Node.js
20.19+或22.12+(WebUI 开发时) - npm(随 Node.js 提供)
# 1. 克隆仓库
git clone https://github.com/CJackHwang/ds2api.git
cd ds2api
# 2. 配置
cp config.example.json config.json
# 编辑 config.json,填入测试账号
# 3. 启动后端
go run ./cmd/ds2api
# 本地访问 http://127.0.0.1:5001
# 实际绑定 0.0.0.0:5001,可通过局域网 IP 访问# 1. 进入 WebUI 目录
cd webui
# 2. 安装依赖
npm install
# 3. 启动开发服务器(热更新)
npm run dev
# 默认监听 http://localhost:5173,自动代理 API 到后端
# 当前未配置 host: 0.0.0.0,因此默认不对局域网开放WebUI 技术栈:
- React + Vite
- Tailwind CSS
- 中英文语言包:
webui/src/locales/zh.json/en.json
docker-compose -f docker-compose.dev.yml up| 语言 | 规范 |
|---|---|
| Go | 修改 Go 文件后运行 gofmt -w;提交前运行 ./scripts/lint.sh(包含格式化检查和 golangci-lint) |
| JavaScript/React | 保持现有代码风格(函数组件) |
| 提交信息 | 使用语义化前缀:feat:、fix:、docs:、refactor:、style:、perf:、chore: |
I/O 类清理调用(如 Close、Flush、Sync)的错误不要直接忽略;无法向上返回时请显式记录日志。
- Fork 仓库
- 创建分支(如
feature/xxx或fix/xxx) - 提交更改
- 推送分支
- 发起 Pull Request
💡 如果修改了
webui/目录下的文件,无需手动构建——CI 会自动处理。 但如果你本地想验证static/admin/产物,还是可以手动运行./scripts/build-webui.sh。
手动构建 WebUI 到 static/admin/:
./scripts/build-webui.sh# PR 本地门禁(与 quality-gates 工作流保持一致)
./scripts/lint.sh
./tests/scripts/check-refactor-line-gate.sh
./tests/scripts/run-unit-all.sh
npm run build --prefix webui
# 端到端全链路测试(真实账号,发布或高风险改动时建议执行)
./tests/scripts/run-live.sh为避免与其他文档重复维护,目录结构与模块职责已迁移到:
贡献前建议先阅读架构文档中的“请求主链路”和 internal/ 模块职责,再定位改动范围。
请使用 GitHub Issues 并附上:
- 复现步骤
- 相关日志输出
- 运行环境信息(OS、Go 版本、部署方式)