这个项目能做什么
Wakapi 是一个免费、开源、自托管的后端,兼容广受欢迎的编码活动追踪工具 WakaTime。它面向那些希望将编码统计保留在自己的基础设施上,同时继续使用现有 WakaTime 编辑器插件的开发者。
## 功能
Wakapi 接收来自官方 WakaTime 客户端工具的心跳数据,并将其转化为关于项目、语言、编辑器、主机和操作系统的统计信息。它提供 Web 仪表盘、可嵌入徽章、每周邮件报告、REST API 以及兼容 Prometheus 的指标导出。它被描述为与 WakaTime 部分兼容,也可以与 WakaTime 本身集成。
## 部署选项
README 列出了几种运行 Wakapi 的方式:
- 使用 wakapi.dev 上的托管云服务。
- 通过 shell 安装脚本快速运行某个发布版本。
- 运行官方 Docker 镜像(ghcr.io/muety/wakapi),并配置持久化卷和密码盐。默认数据库为 SQLite;也支持 MySQL 和 Postgres。支持 Docker Compose 和 Docker Secrets,并且存在面向 Kubernetes 的社区 Helm chart。
- 使用 Go 从源码编译并运行,并使用 YAML 配置文件。对于独立部署,建议以 SystemD 服务方式运行。
## 客户端设置
Wakapi 依赖开源 WakaTime 客户端工具。用户为自己的编辑器安装 WakaTime 插件,然后编辑 `~/.wakatime.cfg`,将 `api_url` 指向自己的 Wakapi 实例,并设置 Wakapi API key。也可以选择配置客户端代理。Wakapi 和 WakaTime 可以并行运行,既可以通过客户端配置实现,也可以通过 Wakapi 的中继功能实现,该功能会将心跳转发到 WakaTime。
## 配置
配置可以通过 YAML 文件或环境变量提供。README 记录了范围广泛的选项,包括:
- 应用设置:排行榜启用、范围、生成时间和身份验证要求;聚合和每周报告计划;数据清理和数据库优化时间;导入设置(启用、批大小、退避、速率限制、主机白名单);心跳最大年龄;缓存预热;自定义语言映射;头像 URL 模板;日期和日期时间格式;支持联系方式;数据保留和非活跃账户限制。
- 服务器设置:端口、IPv4/IPv6 地址、UNIX socket 及其权限、日志格式、请求超时、TLS 证书和密钥路径、基础路径以及公共 URL。
- 安全设置:禁用本地身份验证、禁用 WebAuthn、密码盐、cookie key、不安全 cookie、cookie 生命周期、本地注册、OIDC 注册、OIDC TLS 验证以及注册 CAPTCHA。
## 说明
README 表示,由于维护者时间有限,暂时不接受 pull request。该项目采用开源许可证,由 muety 维护。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。