Wakapi自托管编码统计工具源码Go语言API接口系统

Wakapi自托管编码统计工具源码Go语言API接口系统

  • 全站源码免费
  • 日/微信/10次解锁
  • 日/IP/100次解锁
资源下载
免费资源
立即下载

Wakapi自托管编码统计工具源码封面

Wakapi是一套 Go 语言编写的极简自托管编码统计后端系统,兼容 WakaTime 官方客户端,把编码时长、项目分布、语言占比等数据保存到自己服务器,数据隐私完全可控,还开放 REST API 与 Prometheus 指标接口。

源码系统概览

文章正文

Wakapi 是一套用 Go 语言编写的编码统计后端系统,定位于替代 WakaTime 云端服务的自托管方案

开发者把 WakaTime 客户端的 api_url 指向自己的 Wakapi 实例,就能把 IDE 里的编码时长、项目分布、语言占比等数据全部保存到自己的服务器上

数据不出本地,隐私完全掌握在自己手里

整套系统体积很小,单个二进制即可运行,资源占用远低于主流商业服务

GitHub 原版 muety/wakapi 目前已有 4.4k 星标,仓库中 282 个 Go 源文件构成完整的服务端体系

前端界面由 Vue 编写,与 WakaTime 官方客户端无缝对接,安装配置难度低,适合需要编码统计又重视数据隐私的开发者使用

源码简介

Wakapi 是 GitHub 上 muety/wakapi 仓库的开源项目,遵循 MIT 协议,可自由商用与二次开发

核心定位是极简自托管的 WakaTime 兼容后端,提供编码活动的统计与展示能力

仓库包含 282 个 Go 文件,服务端模块覆盖 heartbeat 接收、时长聚合、摘要生成、邮件周报、排行榜、WebAuthn 登录、OIDC 单点登录等功能

数据存储默认使用 SQLite,也支持 MySQL 与 PostgreSQL,可平滑扩展

系统对外提供 REST API 与 Prometheus 指标接口,便于接入既有监控体系

本套源码为中文汉化版本,在保留原版全部功能的基础上补充了中文说明,方便国内开发者直接阅读和部署

适用场景

适合对代码统计数据有隐私要求的个人开发者,也适合需要内网部署统计服务的中小团队

企业内网搭建编码统计后端时,无需把数据上传到第三方平台,降低数据外泄风险

学校或开源社区可以自建统计服务,为成员提供编码时长可视化展示

需要接 Prometheus 做研发效能监控的团队,可以把 Wakapi 的指标接口接入 Grafana 看板,统一查看开发活跃度

喜欢折腾自托管服务的开发者,也能用它替代商业订阅,在省钱的同时保留完整数据所有权

功能亮点

支持按项目、语言、编辑器、操作系统等多个维度统计编码时长,统计口径与 WakaTime 保持一致

内置徽章接口,可以在个人主页或项目 README 中展示编码数据卡片

每周定时发送邮件周报,自动汇总一周编码情况

兼容 WakaTime 官方客户端生态,客户端插件无需改造即可接入

支持数据导入,可从 WakaTime 或其他 Wakapi 实例迁移历史数据

开放 REST API,提供 Prometheus 导出,可无缝接入 Grafana 等监控面板

对比项 Wakapi WakaTime 云服务
部署方式 自托管,数据在自己服务器 云端托管
数据隐私 完全可控 数据上传第三方
费用 免费开源 高级功能订阅
数据库 SQLite/MySQL/PostgreSQL 由平台维护
监控对接 Prometheus 导出 不支持

By the numbers:GitHub 4.4k 星标,280 余次 fork,282 个 Go 源文件,支持三种数据库,内置 5 类以上统计维度,兼容主流 WakaTime 客户端插件。

技术架构与部署指南

技术栈与运行环境

服务端语言:Go 1.16 及以上
Web 路由:go-chi / chi v5
数据访问:GORM 框架,支持 SQLite / MySQL / PostgreSQL
前端界面:Vue,构建于 static 目录
登录认证:本地账号、WebAuthn、OIDC 单点登录
容器化:Docker 镜像 ghcr.io/muety/wakapi,支持 Kubernetes Helm 安装

安装与部署提示

Docker 一条命令即可启动,默认监听 3000 端口

也可以直接下载官方二进制运行,或使用 go install 从源码编译

环境要求 Go 1.16 以上,系统支持 Linux、Windows、macOS

部署后打开首页注册账号,在设置页获取 API Key

本地修改 ~/.wakatime.cfg 文件,填入 api_url 与 api_key,客户端数据即自动上报到自建服务

生产环境建议配置密码盐值并启用 HTTPS,必要时搭配 Nginx 反向代理

数据库可保留默认 SQLite,数据量大时再切换 MySQL 或 PostgreSQL

截图与演示说明

以下截图来自 GitHub 原版 muety/wakapi 仓库,均为无水印原图。

Wakapi 编码统计主界面截图

主界面展示本周编码时长、项目分布、语言占比等统计卡片,数据按日粒度聚合展示。

Wakapi 浏览器插件界面截图

浏览器插件可展示 WakaTime 统计徽章,方便在个人主页快速查看编码情况。

Wakapi GNOME 桌面小部件截图

GNOME 桌面扩展可将编码时长实时显示在系统状态栏,随时掌握当天进度。

Wakapi Grafana 监控看板截图

通过 Prometheus 导出接口,可在 Grafana 中搭建研发效能监控看板,查看团队活跃趋势。

常见问题

问:Wakapi 与 WakaTime 有什么区别?

Wakapi 是自托管后端,数据存在自己服务器,免费开源

WakaTime 是商业云服务,数据上传到官方平台

客户端插件完全通用,只需修改 api_url 指向即可切换

问:源码部署需要哪些环境?

需要 Go 1.16 以上编译环境,或直接使用 Docker

运行系统支持 Linux、Windows、macOS,默认使用 SQLite 数据库,无需额外安装数据库服务

问:数据默认存在哪里?

默认使用 SQLite,数据文件保存在 data 目录

生产环境可切换 MySQL 或 PostgreSQL,通过环境变量或 config 文件配置连接信息

问:可以接入 Grafana 监控吗?

可以

开启 security.expose_metrics 后,系统在 /api/metrics 暴露 Prometheus 指标,配合官方 Grafana 模板即可建立监控看板

问:支持从 WakaTime 迁移数据吗?

支持

设置页提供数据导入入口,可分批导入来自 WakaTime 或其他 Wakapi 实例的 heartbeat 历史数据

问:能否禁用用户注册?

可以

设置 security.allow_signup 为 false 即可关闭本地注册,配合邀请码机制实现邀请制注册,适合内网小范围使用

安全风险提示

默认配置下服务仅监听本机回环地址,部署到公网前务必设置强密码盐值并启用 HTTPS

注册功能可按需关闭,避免公网环境被恶意注册

API Key 一旦泄露会暴露全部编码数据,应定期轮换

trusted_header_auth 依赖反向代理正确剥离客户端请求头,配置不当会引入越权访问风险,需谨慎启用

下载说明

本套源码已整理为中文汉化版本,包含完整 Go 后端与 Vue 前端代码,共 282 个 Go 源文件,遵循 MIT 协议

下载解压后按 README 说明即可完成部署,支持 Docker 一键启动或源码编译

源码包内不含任何收费组件,可自由商用与二次开发

GitHub项目开源地址:https://github.com/muety/wakapi

资源下载
下载价格免费
本文章资源https://www.aosen.cc/mianfei14698.html来源于互联网,如存在侵权,请联系我们立马删除!
0
显示验证码