跳到主要内容

使用 wakapi 统计你的编程时间

· 阅读需 2 分钟

之前用过一段时间的 wakatime,但是 wakatime free 只能保存两周的数据,最近才发现了开源的 wakapi,可以自己搭建一个 wakatime 服务器,保存自己的数据。

安装必要的软件

首先安装 docker 和 caddy,这里不再赘述,可以参考 DockerCaddy

使用 docker 启动 wakapi

# 创建一个数据卷
docker volume create wakapi-data

SALT="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${1:-32} | head -n 1)"

# 启动容器
docker run -d \
-p 3000:3000 \
-e "WAKAPI_PASSWORD_SALT=$SALT" \
-v wakapi-data:/data \
--name wakapi \
ghcr.io/muety/wakapi:latest

配置 caddy

nano /etc/caddy/Caddyfile
wakapi.example.com {
encode zstd gzip

header {
Strict-Transport-Security "max-age=2592000; includeSubDomains"
}

log {
output file /var/log/caddy/wakapi.dev.access.log
format single_field common_log
}

reverse_proxy http://[::1]:3000

@api path_regexp "^/api.*"
@notapi not path_regexp "^/api.*"

push @notapi /assets/vendor/source-sans-3.css
push @notapi /assets/css/app.dist.css
push @notapi /assets/vendor/petite-vue.min.js
push @notapi /assets/vendor/chart.min.js
push @notapi /assets/vendor/iconify.basic.min.js
push @notapi /assets/js/icons.dist.js
push @notapi /assets/js/base.js
push @notapi /assets/images/logo.svg
}
systemctl restart caddy

配置 wakatime

打开 wakapi.example.com,点击右上角的 Sign Up 注册一个账号,第一个注册的账号会自动成为管理员。

禁止注册

如果不想让其他人注册,可以在 docker run 的时候添加 -e "WAKAPI_ALLOW_SIGNUP=false",或者在 docker exec -it wakapi bash 进入容器后,修改 config.yml 文件,将 security.allow_signup 改为 false

docker rm wakapi

docker run -d \
-p 3000:3000 \
-e "WAKAPI_PASSWORD_SALT=$SALT" \
-e "WAKAPI_ALLOW_SIGNUP=false" \
-v wakapi-data:/data \
--name wakapi \
ghcr.io/muety/wakapi:latest

配置 wakatime 插件

本地使用首先要创建一个文件

~/.wakatime.cfg
[settings]
api_url = https://wakapi.example.com/api
api_key = 00000000-0000-0000-0000-000000000000

接着去 IDE 中安装 wakatime 即可。