Wakapi 是一个用 Go 编写的极简、自托管的 WakaTime 兼容后端,用于统计编码活动。它提供项目、语言、编辑器等多维度数据,支持徽章、邮件周报、REST API 和 Prometheus 导出。部署方式灵活(云服务、Docker、二进制),数据完全由用户掌控,性能出色,是追求数据主权和轻量化的开发者的理想选择。
适用人群:对数据隐私敏感的全栈开发者或自由职业者,希望掌握自己编码行为数据而不愿上传到第三方云服务;使用 WakaTime 客户端插件但不想订阅付费服务的个人开发者或小型团队;喜欢自部署、追求技术极简主义的技术爱好者。
适用场景:在本地或私有服务器上搭建个人编码仪表盘,追踪每日各语言/项目耗时,形成周报和趋势图表;为团队或开源项目生成可嵌入的编程活跃度徽章,展示在 GitHub README 或内部看板上;结合 Prometheus 和 Grafana,将编码指标纳入统一的开发者生产力监控体系。
推荐理由:Wakapi 完美平衡了功能与轻量,是自托管 WakaTime 服务的最佳选择之一。它让你在不牺牲数据隐私的前提下,获得与 WakaTime 几乎一致的统计体验。部署极简,兼容性强,社区活跃,是值得信赖的开发者效率工具。
项目定位与背景
在开发者工具领域,WakaTime 几乎是编程时间追踪的代名词,它通过 IDE 插件自动记录编码时长和语言分布。然而,WakaTime 的云端服务对个人开发者有免费时长限制,且所有数据都上传到第三方服务器,这对注重隐私或身处严格合规环境的开发者而言是个痛点。Wakapi 应运而生,它提供了一个完全兼容 WakaTime API 的自托管后端,让你既能继续使用现有的 WakaTime 客户端插件,又能将数据完全掌握在自己手中。项目定位极其精准:极简、自托管、兼容。它不试图重新发明轮子,而是做 WakaTime 的最佳替代后端,这一策略使其在开源社区迅速获得认可,目前已有 4.4k+ Stars。
核心功能与技术架构
Wakapi 的核心功能围绕编码统计展开,支持按项目、语言、编辑器、主机和操作系统等维度进行统计,并提供每日、每周、每月等不同粒度的视图。它内置了 REST API,意味着你可以轻松地获取原始数据或构建自定义仪表盘。此外,它还支持生成可动态更新的 SVG 徽章,方便开发者将编码活跃度直接展示在 GitHub 个人主页或项目 README 中。每周的邮件报告功能则能让用户定期回顾自己的编码习惯,无需频繁登录查看。
在技术架构上,Wakapi 采用 Go 语言编写,天然具备高性能和低资源占用的优势。默认使用 SQLite 存储数据,零外部依赖即可运行,同时也支持 MySQL 和 PostgreSQL 以应对更大规模的数据需求。它提供了 Docker 镜像和便捷的安装脚本,一条命令即可完成部署。对于需要监控集成的用户,Wakapi 支持 Prometheus 导出,可以轻松接入 Grafana 等可视化平台,构建更丰富的个人生产力看板。
创新点与亮点
Wakapi 最大的创新在于“兼容”与“自托管”的结合。它并非简单的克隆,而是实现了 WakaTime 的 HTTP API 子集,使得所有支持 WakaTime 的编辑器插件(如 VS Code、JetBrains 系列)只需修改终端地址即可无缝切换。这种设计大大降低了迁移成本,用户无需改变任何使用习惯。另一个亮点是它对数据隐私的极致尊重,所有统计数据都存储在你的服务器上,无论是个人 NAS 还是云主机,数据主权完全归你所有。此外,项目提供了公共实例 wakapi.dev 供快速体验,同时也允许一键自部署,这种双轨模式既降低了试用门槛,又满足了高级用户的控制欲。
与同类项目对比
在自托管编码统计领域,Wakapi 的主要竞品包括 ActivityWatch 和 traewelling 等。ActivityWatch 是一个更全面的时间追踪工具,不仅限于编码,还涵盖浏览器和应用使用,但它需要安装独立的客户端,且与 WakaTime 生态不兼容。Wakapi 则专注于代码统计,并利用 WakaTime 庞大的插件生态,使其在开发者群体中更容易被接受。另一个值得提及的是 WakaTime 自身的自托管企业版,但那是商业产品,且价格不菲。相比之下,Wakapi 完全免费开源,功能上虽不及商业版丰富,但对于个人和小型团队而言,其核心功能已足够强大。Wakapi 的优势在于轻量、易部署、兼容性好,而劣势则是功能相对聚焦,没有内置如目标设定、团队管理等高级特性。
上手指南与快速开始
上手 Wakapi 非常直观。最便捷的方式是使用其官方托管的云服务 wakapi.dev,注册后即可获得专属 API 密钥。若想自托管,Docker 是推荐路径,只需一条 docker run 命令即可启动并持久化数据。对于非 Docker 用户,项目提供了预编译的二进制文件,下载后通过简单的配置文件即可运行。配置完成后,需要在你的 IDE 中安装 WakaTime 插件,并在插件设置中将 API 地址指向你的 Wakapi 实例(或 wakapi.dev),填入密钥,插件便会开始上传编码活动。整个过程约五分钟,没有任何繁琐的依赖。如果你熟悉 Kubernetes,也可以通过 Helm Chart 部署到集群中,项目社区提供了相关资源。
总结与展望
Wakapi 是一个成熟的、设计精良的开源项目,它精准地解决了开发者对编码数据自主可控的需求。在数据隐私日益被重视的今天,Wakapi 提供了一种优雅且实用的解决方案。它的代码质量高,文档清晰,社区维护活跃,尽管近期暂不接受 PR,但项目仍在持续演进。未来,随着开发者对个人数据主权意识的增强,Wakapi 有望成为更多人的首选工具。如果你是一位希望深入理解自己编码习惯,又不愿将数据交给第三方的开发者,Wakapi 绝对值得一试。它不仅是一款工具,更是一种对数据自主权的坚持。
项目信息
| 项目名称 | muety/wakapi |
| 编程语言 | Go |
| Star 数 | 4420 |
| Fork 数 | 299 |
| 主题标签 | coding-statistics, developer-tools, productivity, self-hosted, time-tracker, wakatime, wakatime-api |