Checkmate 自托管监控工具:从零代码到新功能的 3 档贡献清单
【免费下载链接】CheckmateCheckmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. Don't be shy, join here: https://discord.com/invite/NAb6H3UTjK :)项目地址: https://gitcode.com/GitHub_Trending/checkm/Checkmate
Checkmate 是一款开源自托管监控工具,持续探测服务器和网站的可用性、响应时间,并记录事故与硬件指标。它适合想自己搭一套监控的人:小团队、个人项目、树莓派玩家都够用。读完这篇指南,你能在本地把项目跑起来,并选到自己可以立刻动手的贡献档位。
这是个什么项目
先想一个场景:网站凌晨挂了,第二天早上访客告诉你才知道;磁盘写满了,业务停了才发现。Checkmate 就是用来解决这类"发现太晚"的问题。它定期探测目标状态,状态一变就自动记入事故列表并触发告警。
核心能力有 4 条:
- 多种探测方式:HTTP(含 SSL 证书到期检查)、Ping、端口、DNS、Docker 容器、gRPC、WebSocket、游戏服务器
- 实时告警:支持邮件、Discord、Slack、Telegram 等十余种通知渠道
- 状态页:自带可公开分享的服务状态页,提供多种主题
- 硬件监控:配合官方 Capture agent 采集目标机器的 CPU、内存、磁盘、温度
先跑起来
前提只有一样:机器上装好 Docker。
git clone https://gitcode.com/GitHub_Trending/checkm/Checkmate cd Checkmatecd docker JWT_SECRET=$(openssl rand -hex 32) docker compose up -d启动后浏览器打开 http://localhost:52345 ,即可注册账号并开始创建第一个监控。
这是监控面板的主题切换动画。主界面包含监控列表、响应时间统计图和事故视图,新建监控只需在界面上选探测方式并填地址。
项目地图
| 路径 | 说明 |
|---|---|
| client/ | React 前端,页面与组件都在 client/src/ 下 |
| server/src/api/ | 后端 API 层:路由、控制器、中间件、参数校验 |
| server/src/domain/ | 领域层:monitor、incident、notification 等仓储与服务 |
| server/src/service/network/ | 各探测方式实现,如 HttpProvider.ts、PingProvider.ts |
| server/test/ | 单元测试与集成测试,基于 Jest |
| client/src/locales/ | 翻译文件,每种语言一个 JSON,en.json 是基准 |
| docker/ | 生产与开发两套 Compose 部署配置 |
| docs/ | 安装、自定义 CA、翻译贡献等指南 |
| CONTRIBUTING.md | 贡献规范,上手前建议先通读 |
| docs/coding-conventions.md | 前后端代码风格约定 |
按难度选贡献 🧭
零代码档(新手从这里开始)
- 报 issue:先搜已有 issue,确认没人提过再新建,写清复现步骤、期望行为和实际表现
- 修文档:改错别字、补示例、澄清步骤,小改动可直接提 PR
- 翻译:改 client/src/locales/ 下对应语言的 JSON,保持与 en.json 相同的键结构
轻代码档
- 挑一个 good-first-issue 并留言认领
- 从 develop 分支切出新分支
- 修一个小 bug,或在 server/test/ 下补测试用例
- 本地跑通后开 PR
深度档(新功能)
- 先读 docs/coding-conventions.md 里的"找同级文件"原则,理解现有分层
- 在 issue 里先把方案说清楚,维护者认可后再动手
- 新探测方式参考现有 Provider 的结构写,新页面参考现有页面写
协作规范
代码风格:ESLint 加 Prettier,在 client 和 server 两个目录分别跑npm run lint和npm run format-check。变量用 camelCase,组件用 PascalCase。界面上可见的文字一律走翻译函数,不能硬编码字符串。
测试要求:服务端已有完整的单元与集成测试,新功能请配套补测试,写法参照 server/test/ 里同类文件。涉及界面改动的 PR 必须附截图或录屏。
PR 流程:分支从 develop 切出,PR 也提回 develop(master 只放稳定版)。一个 PR 只处理一个 issue,保持小而专注,PR 描述里写上关联的 issue 编号。
结尾行动 🚀
你的第一个动作很简单:按上面两步把 Checkmate 跑起来,注册一个账号,亲手建一个 HTTP 监控看看事故面板长什么样。然后挑最轻的一件事——提一个 issue、修一个文档错别字、或补一段翻译——开出你的第一个 PR。卡住了先看 CONTRIBUTING.md,维护者对新人提问回复得很积极。
【免费下载链接】CheckmateCheckmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. Don't be shy, join here: https://discord.com/invite/NAb6H3UTjK :)项目地址: https://gitcode.com/GitHub_Trending/checkm/Checkmate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考