源码系统概览
文章正文
Wakapi 是 Go 语言编写的自托管编码统计后端,兼容 WakaTime 心跳数据协议,编码统计结果全部保存在自己的服务器上。
它源自 GitHub 开源项目 muety/wakapi,采用 MIT 协议免费开源,把 WakaTime 的核心能力完整搬到了你自己的服务器上。
下面看看它的功能、部署方式,以及和 WakaTime 云服务、ActivityWatch 等同类工具的差异。
源码简介
Wakapi 是一个与 WakaTime 兼容的轻量级自托管编码统计后端,源自 GitHub 上的 muety/wakapi 开源项目,采用 MIT 协议免费开放。
项目由 Go 语言编写,主要接收各类编辑器和 IDE 通过 WakaTime 客户端插件上报的心跳数据,再对心跳做聚合计算,最终输出编码时长、语言分布、项目用时、编辑器偏好等统计结果。
它保留了 WakaTime 的核心统计能力,数据完全掌握在自己手里,适合看重数据隐私的开发者。
适用场景
Wakapi 适合不希望把编码数据上传到第三方云服务的个人开发者。
也适合团队内部搭建统一的开发效能统计平台,为技术管理提供客观数据支撑。
喜欢轻量部署的用户,单机 Docker 一条命令就能跑起来,上手成本很低。
功能亮点
功能上覆盖了统计报表、排行榜、登录认证和监控导出等常用模块。
它支持项目、语言、编辑器、操作系统、主机等多维度统计。
提供与 WakaTime 兼容的 REST API,现有客户端插件无需大改即可接入。
内置排行榜和徽章功能,方便团队内部比拼与展示。
支持每周邮件报表与 Prometheus 指标导出,可对接 Grafana 做可视化大屏。
还支持 OpenID Connect 单点登录、WebAuthn 无密码登录以及 CAPTCHA 注册保护。
技术架构与部署指南
技术栈与运行环境
前端:Go 服务端模板渲染,Tailwind CSS 3 负责样式,petite-vue 实现响应式交互,Iconify 提供图标资源。
后端:Go 语言开发,go-chi/chi 路由框架,GORM 作为 ORM,argon2id 进行密码哈希,artifex 任务队列处理后台作业。
数据库:默认使用 SQLite 单文件存储,同时支持 MySQL、MariaDB、PostgreSQL 等主流关系型数据库。
运行环境:支持 Linux、Windows、macOS,可通过 Docker、预编译二进制或 Go 源码编译方式部署,默认监听 3000 端口。
其他依赖:SMTP 邮件服务用于发送周报,Sentry 用于错误追踪,Swagger 提供在线 API 文档。
安装与部署提示
部署方式十分灵活。
最简单的做法是使用官方 Docker 镜像启动,映射端口并挂载数据卷即可完成。
也可以用官方脚本一键下载预编译二进制直接运行。
需要源码编译时,准备 Go 1.16 以上环境执行 go build 即可。
首次启动前建议在配置文件中设置 password_salt 和 cookie_key 两个安全参数。
默认数据存放在本地 SQLite 文件中,记得定期备份。
截图与演示说明



项目自带完整的 Web 统计面板。
登录后进入首页即可看到总编码时长、总心跳数、热门项目、热门语言、热门编辑器等 KPI 卡片,数据一目了然。
页面提供时间范围选择器和项目、语言、机器、分类等实体过滤器,可以自由筛选统计区间。
除首页外还内置排行榜页面、项目明细页面以及个人设置页面。
设置页中可管理 API Key,并支持从 WakaTime 导入历史数据。
常见问题
问:Wakapi 是什么?
Wakapi 是一个自托管的编码统计后端,它接收编辑器上报的心跳数据并统计编码时长与分布,可以理解为可私有部署的 WakaTime 服务端。
问:Wakapi 怎么使用?
部署并注册账号后,在设置页获取 API Key,然后把 WakaTime 客户端插件的 api_url 指向自己的服务器地址,填入 API Key 即可自动上报数据。
问:Wakapi 和 WakaTime、ActivityWatch 有什么区别?
三个工具的定位和实现路径差异较大,对比如下表。
| 对比维度 | Wakapi | WakaTime 云服务 | ActivityWatch |
|---|---|---|---|
| 部署方式 | 自托管私有部署 | 官方云端托管 | 自托管本地运行 |
| 兼容 WakaTime 客户端 | 完全兼容 | 官方原生支持 | 不支持 |
| 数据控制权 | 完全自主可控 | 由平台掌握 | 完全自主可控 |
| 开源与收费 | MIT 协议免费开源 | 核心功能收费 | 开源免费 |
问:Wakapi 是否免费开源?
完全免费。
项目采用 MIT 协议开源,允许自由使用、修改和分发,GitHub 原版为 muety/wakapi。
安全风险提示
经过对项目源码的扫描,核心 Go 代码中未发现后门、木马或加密混淆的可疑代码,也未检出 eval、base64_decode、shell_exec、gzinflate 等危险函数。
特别提示:本源码未检测安全风险文件,下载后请务必进行安全审计,删除恶意代码后再部署使用!
下载说明
本页面提供的源码仅供学习与技术交流使用,请在下载后及时访问 GitHub 官方仓库核对版本与最新更新。
部署涉及账号体系与隐私数据,正式使用前请务必阅读官方文档并做好安全加固。
GitHub项目开源地址:https://github.com/muety/wakapi
最后更新:2026-08-18