搭建wakapi记录编码和笔记时间

wakapi能做什么?

有没有经常遇到以下问题呢?

  • 每天都在工作写代码,一年下来到底花了多久在写代码,分别在什么项目上投入了多少时间呢?
  • 每天都在做笔记,一年下来到底花了多久在查看笔记上?又花了多久在写笔记上呢?

wakapi就是一个开源的软件,可以记录每天都把时间花在哪些项目、哪些语言、哪些操作上了

为什么需要自建wakapi?

自然是因为隐私问题,毕竟项目、笔记都有一些私密信息(虽然wakapi并不记录内容,但会记录一些项目名之类的信息)

如何搭建wakapi服务?

参照文档

使用docker命令构建服务

1
2
3
4
5
6
docker run -d \
-p 3000:3000 \
-e "WAKAPI_PASSWORD_SALT=$SALT" \
-v wakapi-data:/data \
--name wakapi \
ghcr.io/muety/wakapi:latest

或者使用docker-compose

1
2
3
4
5
6
7
8
9
10
11
12
services:
wakapi:
container_name: wakapi
image: ghcr.io/muety/wakapi:latest
ports:
- 0.0.0.0:3000:3000
restart: unless-stopped
volumes:
- /data/docker/wakapi/data:/data
- /etc/localtime:/etc/localtime:ro
environment:
WAKAPI_PASSWORD_SALT: xxxxxxxxxxxx

启动服务后可以直接访问3000端口来访问,也可以使用nginx做反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
location ^~ / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
add_header X-Cache $upstream_cache_status;
add_header Cache-Control no-cache;
proxy_ssl_server_name off;
proxy_ssl_name $proxy_host;
add_header Strict-Transport-Security "max-age=31536000";
}

创建管理员账号后就能查看apikey了

如何使用插件记录编码时间?

以idea为例,安装wakatime插件

重启之后会自动提示输入apikey,或者通过设置菜单来设置

这个插件没有提供自建服务的url设置,不过wakapi有自己的配置文件,通常在用户主目录下,建立一个叫 .wakatime.cfg 的文件即可

1
2
3
4
[settings]
api_url = https://wakapi所在服务器域名/api
api_key = apikey
debug = false

其他配置可以查看这个文档

做完这些配置后重启idea就可以了,过一会儿就会看到效果了

如何使用插件记录读写笔记时间?

这里以思源笔记为例,在集市中搜索并安装WakaTime插件

然后在设置中填写服务器url和apikey就可以了

然后正常使用一段时间就可以在查看自己的使用时间情况了