wakapi
SHA-256一款轻量级、自托管的编码统计工具,兼容 WakaTime 客户端。
自己搭的编程时间统计站,免费、可控、兼容 WakaTime。
核心功能
- 完全免费开源,数据自己掌控
- 支持 Docker、编译、云服务多种部署方式
- 自动统计项目、语言、编辑器、操作系统等维度
- 生成酷炫的网页徽章和每周邮件报告
- 提供 REST API 和 Prometheus 导出接口
避坑指南
- •首次运行请务必设置 WAKAPI_PASSWORD_SALT 环境变量,否则密码加密不安全。2. 使用 SQLite 时数据保存在容器内,升级容器前记得备份数据卷。3. 公网部署建议配置 HTTPS 反向代理(如 Nginx/Caddy)。4. 默认端口 3000,注意防火墙放行。5. 若同时使用官方 WakaTime,需要在客户端配置两套 API URL(详见文档)。
适用场景
- 个人开发者想记录自己每天的编码时长和项目分布
- 团队内部想搭建私有的开发效率看板,不依赖外部服务
- 从 WakaTime 云服务迁移到自托管以保护隐私
详细介绍
Wakapi 是一款完全开源、可自行托管的编程时间统计后台。它通过 WakaTime 的编辑器插件自动收集你的编码活动,并提供直观的仪表盘、数据徽章、每周邮件报告以及 REST API。支持 SQLite、MySQL 和 PostgreSQL 数据库,可使用 Docker 一键部署或从源码编译运行。相比官方的 WakaTime 云服务,Wakapi 让你掌握数据所有权,且完全免费无限制。
常见问题与排障 (2)
故障排除如何通过WakatimeApiUrl修复WakaTime中继中间件中的SSRF漏洞?
更新到最新版本的Wakapi。该修复(commit 2af65a058730bd2e2cd603e3dbdb883e5badff34)验证WakatimeApiUrl以拒绝私有IP,并强制执行允许的主机列表。
故障排除为什么Wakapi 2.17.1在SQLite上运行migrations时会崩溃,并显示'SQL logic error near time_real'?
此崩溃是由迁移文件 '20260111-sqlite_real_valued_time_column_heartbeats' 中的语法错误引起的。要解决此问题,您可以升级到 Wakapi 的已修补版本(请参阅 issue #903 获取修复版本),或手动应用修复:1. 停止 Wakapi。2. 使用 sqlite3 执行正确的 ALTER TABLE 命令:ALTER TABLE heartbeats ADD COLUMN time_real REAL; 3. 通过插入一行来记录迁移已应用:INSERT INTO schema_migrations VALUES ('20260111-sqlite_real_valued_time_column_heartbeats'); 如果无法手动修改架构,在修补版本可用之前,降级到 Wakapi 2.17.0 仍可作为临时解决方案。
标签
快速上手
安装软件
双击下载的安装程序,按提示完成安装
步骤1:使用 Docker 运行(推荐)。执行:docker run -d -p 3000:3000 -e WAKAPI_PASSWORD_SALT=你的随机盐值 -v wakapi-data:/data --name wakapi ghcr.io/muety/wakapi:latest
步骤2:打开浏览器访问 http://localhost:3000,注册账号,在设置页面获取 API Key
步骤3:在本机编辑器安装 WakaTime 插件,编辑 ~/.wakatime.cfg,将 api_url 设为 http://localhost:3000/api,api_key 填入上一步获取的 Key
- 步骤1:使用 Docker 运行(推荐)。执行:docker run -d -p 3000:3000 -e WAKAPI_PASSWORD_SALT=你的随机盐值 -v wakapi-data:/data --name wakapi ghcr.io/muety/wakapi:latest
- 步骤2:打开浏览器访问 http://localhost:3000,注册账号,在设置页面获取 API Key
- 步骤3:在本机编辑器安装 WakaTime 插件,编辑 ~/.wakatime.cfg,将 api_url 设为 http://localhost:3000/api,api_key 填入上一步获取的 Key
已提供 SHA-256 校验码,下载后可自行核对文件完整性
该校验码提取自 GitHub 官方 Release 页面
SHA256 校验码
a422be12dedb76f7c5720e7616e8556de64f84aba708c9eae197217ba9011b4f该校验码提取自 GitHub Release 页面,下载后请自行核对文件完整性
本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。
开源透明
查看 GitHub 源码卸载说明
停止 Docker 容器:docker stop wakapi && docker rm wakapi;删除数据卷(可选):docker volume rm wakapi-data。如果是从源码编译安装,直接删除二进制文件和配置文件即可。
无额外依赖
下载后即可直接使用,无需安装其他运行环境
遇到问题?查看下方 FAQ
2 FAQs