自建网站访问统计服务 fathom

最近给我的博客网站添加上网站统计服务,可以用来记录网站的访问情况。

fathom-one-week-shadow

这是一周的统计情况,比我预期的多。主要来源是:必应、百度、谷歌和 YouTube。访问最多的文章是油猴自动签到

我使用的是 fathom,是一个开源项目,在 GitHub 上面有 7 千多 star。

官方有提供一个预编译的 docker 镜像

docker run -d -p 8080:8080 usefathom/fathom:latest

我观察了下,日常占用内存只有 15MiB,非常轻量。

CPU %     MEM USAGE / LIMIT     MEM %     NET I/O
0.04% 15.09MiB / 969.6MiB 1.56% 49MB / 33.1MB

docker 镜像也只有 31.2MB

usefathom/fathom         latest    51cf88568278   3 years ago     31.2MB

居然是 3 年前的镜像……

那么把代码克隆到本地,自己构建新的镜像吧。

结果失败了,看来是网络问题

go install: github.com/gobuffalo/packr/v2/packr2@latest: module github.com/gobuffalo/packr/v2/packr2: Get "https://proxy.golang.org/github.com/gobuffalo/packr/v2/packr2/@v/list": dial tcp 142.251.43.17:443: i/o timeout
The command '/bin/sh -c go install github.com/gobuffalo/packr/v2/packr2@latest' returned a non-zero code: 1

在 vps 上构建就没问题。不过我也不知道更新了那些内容,从网页上看,好像没有任何变化。

运行

docker run -d -p 8080:8080 fathom

如果不是自己构建的,那么用

docker run -d -p 8080:8080 usefathom/fathom:latest

之后我使用反向代理,将 fathom.powersee.top 转发到 8080 端口。

于是我这样使用了一个星期,好像也没出现什么问题。通过上面的网址,可以访问到 fathom 的 web 界面。

第一次访问需要设置网站的域名,于是我填了我博客的域名

powersee.github.io

之后它会给一段 js 代码,把它加入到博客网站的里面就行了。

我之所以选择它,主要是因为它用的数据库是 sqlite,很轻量,哪怕用 docker 容器运行,镜像大小也只有 30 多 MB。而其它的网站统计服务,很多都是需要使用 MySQL 或者 postgresql,容器很大,太占用服务器空间了。

相比之下,fathom 可以说是非常轻量小巧。

如果我们进入容器内,会发现在 /app 目录下,就两个文件而已。一个 fathom 可以执行文件,以及 fathom.db 的 sqlite 数据库。

那看来如果要迁移的话,复制数据库应该就行了。

其实直接运行 docker 容器应该只是测试用用而已。官方有说明文档:建议的用法是下载 release 中的可执行文件,放到 /usr/local/bin,然后写配置文件 .env 设置 NGINX 方向代理、创建 systemd 服务……

步骤是有点多,但是按照说明一步一步来,也不难。

不过我目前犹豫是否继续用下去。因为它开源的是 lite 版,很多功能得 Pro 版本才有。例如统计浏览器型号、用户操作系统这些。

我点进去看它 Pro 版本的收费情况,好家伙,最低一个月 14 刀。

我打算换其它的统计服务了。