本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Wakapi 是一个极简的自托管后端服务,兼容 WakaTime 客户端,用于收集、存储和展示代码编写时间统计数据。它由开发者为开发者打造,完全开源免费,支持多种数据库,并提供 REST API 和统计徽章功能,适合需要自主掌控代码统计数据的个人或团队使用。
访问 wakapi.dev 注册账号,直接使用免费托管服务。注意:官方不保证数据持久性,可能存在数据丢失风险。
# 创建持久卷以保存数据 $ docker volume create wakapi-data # 启动容器 $ docker run -d \ -p 3000:3000 \ -e "WAKAPI_PASSWORD_SALT=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" \ -v wakapi-data:/data \ --name wakapi n1try/wakapi
说明:默认使用SQLite数据库。如需使用MySQL或PostgreSQL,需通过环境变量或配置文件指定数据库参数(详见配置选项)。
# 下载并解压发布包 $ wget [***] $ unzip wakapi_linux_amd64.zip # (可选)修改配置文件 $ vi config.yml # 启动服务 $ ./wakapi
前置依赖:
$GOPATH)dnf install @development-toolsapt install build-essential编译与运行:
# 复制并修改配置文件 $ cp config.default.yml config.yml $ vi config.yml # 安装打包工具 $ export GO111MODULE=on $ go get github.com/markbates/pkger/cmd/pkger # 构建可执行文件 $ go generate $ go build -o wakapi # 启动服务(生产环境建议设置ENV=production) $ ./wakapi
~/.wakatime.cfg 文件:[settings] # Wakapi服务器URL(自托管时填写http://localhost:3000/api/heartbeat,官方服务为https://wakapi.dev/api/heartbeat) api_url = http://localhost:3000/api/heartbeat # 从Wakapi网页界面获取的API密钥 api_key = 406fe41f-6d69-4183-a4cc-121e0c524c2b
可通过配置文件(默认config.yml,可通过-c参数指定)或环境变量配置,以下为主要选项:
| YAML键 | 环境变量 | 默认值 | 描述 |
|---|---|---|---|
env | ENVIRONMENT | dev | 运行环境(开发环境dev或生产环境production) |
server.port | WAKAPI_PORT | 3000 | 服务监听端口 |
server.listen_ipv4 | WAKAPI_LISTEN_IPV4 | 127.0.0.1 | IPv4监听地址(公开访问需设为0.0.0.0) |
security.password_salt | WAKAPI_PASSWORD_SALT | - | 用于密码哈希的盐值(建议使用随机字符串) |
security.insecure_cookies | WAKAPI_INSECURE_COOKIES | false | 是否允许HTTP协议下的Cookie(生产环境建议设为false) |
db.dialect | WAKAPI_DB_TYPE | sqlite3 | 数据库类型(支持sqlite3、mysql、postgres、cockroach) |
db.name | WAKAPI_DB_NAME | wakapi_db.db | 数据库名称(SQLite为文件路径) |
db.host | WAKAPI_DB_HOST | - | 数据库主机(MySQL/PostgreSQL时必填) |
db.port | WAKAPI_DB_PORT | - | 数据库端口(MySQL/PostgreSQL时必填) |
db.ssl配置)POST /api/heartbeat:客户端发送心跳数据GET /api/summary?interval={today|day|week|month|year|any}:获取统计摘要GET /api/compat/wakatime/v1/users/current/all_time_since_today:兼容WakaTime的总时间统计APIGET /api/compat/wakatime/v1/users/current/summaries:兼容WakaTime的摘要统计APIGET /api/health:服务健康检查可使用第三方工具wakatime_exporter将Wakapi数据导出到Prometheus,配置示例:
# 设置Wakapi实例地址和API密钥 export WAKA_SCRAPE_URI="[***]" export WAKA_API_KEY="your-wakapi-api-key"
ENV=production以提升性能和安全性,同时确保server.listen_ipv4设为0.0.0.0(如需公开访问)Wakapi通过分析客户端发送的"心跳"数据统计编码时间。与WakaTime不同,Wakapi对长时间间隔后的心跳数据自动添加2分钟填充时间,因此统计结果可能略有差异。
客户端会本地缓存心跳数据,待重新联网后批量发送至服务器。
支持所有WakaTime兼容的客户端,包括VS Code、IntelliJ IDEA、PyCharm、Vim等(详见WakaTime插件列表)。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429