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就可以了

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