此页面为希望为Uptime Kuma做出贡献的开发者提供了指导。它涵盖了开发环境的设置、项目结构的理解、开发工作流程、测试流程以及贡献指南。
在您开始为Uptime Kuma做出贡献之前,您需要设置好您的开发环境。
来源: CONTRIBUTING.md477-487 README.md61-70
克隆仓库
安装依赖项
启动开发服务器
此命令将同时启动前端开发服务器(端口3000)和后端开发服务器(端口3001)。
如果您只需要重新启动服务器而不重新启动前端,可以在单独的终端中运行以下命令
来源: CONTRIBUTING.md496-520 README.md73-76
Uptime Kuma遵循特定的目录结构。理解此结构对于有效开发至关重要。
后端是一个集成了Socket.io的Express.js服务器。它使用Socket.io与客户端通信,大部分服务器逻辑封装在Socket.io处理程序中。
前端是一个Vue.js单页应用程序(SPA)。大部分路径由Vue Router处理,数据存储在根级别。
了解Uptime Kuma的开发工作流程将有助于您有效地贡献。
master: 2.X.X 开发分支。在此基础上进行新功能的拉取请求。1.23.X: 1.23.X 开发分支。在此基础上进行适用于v1和v2的bug修复拉取请求。来源: CONTRIBUTING.md224-312 CONTRIBUTING.md359-384
为生产环境构建前端
这将把前端编译到dist目录,服务器将服务这些静态文件。
Uptime Kuma使用各种测试方法来确保代码质量
来源: .github/workflows/auto-test.yml37-43 .github/workflows/auto-test.yml74-77 CONTRIBUTING.md578-583
来源: .github/workflows/auto-test.yml22-26 .github/workflows/auto-test.yml36-43
来源: CONTRIBUTING.md359-440 .github/PULL_REQUEST_TEMPLATE.md39-54
Uptime Kuma遵循特定的编码标准
.editorconfig设置Uptime Kuma接受不同类型的贡献,每种都有特定的指南
| 贡献类型 | 指南 | 审批流程 |
|---|---|---|
| 小型Bug修复 | 保持PR小巧,一次修复一件事,彻底测试 | 初级维护者可以合并 |
| 翻译 | 使用Weblate进行翻译,除非是添加新的语言键 | 初级维护者可以合并 |
| 新的通知提供程序 | 实现前端和后端组件,测试所有通知事件 | 初级维护者可以合并 |
| 新的监控类型 | 实现监控类型,更新UI,包含翻译 | 初级维护者可以合并 |
| 新功能 / 重大更改 | 先创建草稿PR或issue进行讨论 | 只有高级维护者才能合并 |
来源: CONTRIBUTING.md30-220 CONTRIBUTING.md316-349
Uptime Kuma为开发和部署提供了Docker支持。
Uptime Kuma Docker镜像支持以下架构
对于版本2
2,latest-2:v2完整功能版2-slim:v2基础功能版beta2:最新测试版nightly2:开发版base2:基础Debian设置对于版本1
1,latest,debian:v1最新版本beta:最新测试版nightly:开发版在为 Uptime Kuma 开发时,安全应是首要任务
来源: SECURITY.md1-22 CONTRIBUTING.md42-57
Uptime Kuma 有特定的维护和发布流程
对于正式发布
npm run release-final对于 Beta 发布
npm run release-betaSocket.io 连接问题:
数据库迁移错误:
db/knex_migrations/ 中的迁移脚本构建错误:
npm ci 而不是 npm install 以进行干净的依赖安装来源: CONTRIBUTING.md574-577 README.md67-69