没有人喜欢自己的隐私数据被收集、被利用,也没有人喜欢自己被跨网站、跨设备的跟踪浏览行为、制作用户画像、精准投递广告。作为一个非商用的小站,是时候向诸如谷歌统计、百度统计、51La 等说再见了,只关注关键的几个数据,全程匿名化处理,隐私至上。

一、Umami

Umami 基于 Node.js 开发,支持 MySQL 和 Postgresql 数据库,除服务器外,它甚至可以部署在 Serverless 中。自部署的好处在于某些商业服务滥用用户数据,当数据保存在自己手中时可以确保不会分享给第三方(如果你查阅 Umami 的数据库,你甚至可以发现它连用户 IP 都没有收集)。

此外由于现有的商用统计分析系统过于臭名昭著,绝大部分隐私拦截插件(如隐私獾)都对其脚本进行了过滤,在保护了访客隐私的同时却导致了统计数据不精准,而 Umami 可以重写脚本名称及绑定用户自己的域名,最大程度上避免被误拦截(因为本身不收集隐私、理直气壮)。

你可以在 🔗live demo 处查看 Umami 所提供的功能示例。

二、搭建说明

基础环境:Ubuntu 20.04.4 LTS x86_64(Py3.7.9),Node 16,宝塔面板,腾讯云香港轻量云。

Umami 支持 Docker 和源码部署两种方式吗,对我来说用源码走 Node 部署更熟悉。

1. 获取 umami

umami/releases 处克隆/下载发行包至网站。

2. 初始化数据库

自行在宝塔面板数据库管理中创建数据库。

在 Umami 所在目录执行,导入数据库结构。
mysql -u 用户 -p 数据库名称 < sql/schema.mysql.sql

3. 配置环境

在 Umami 所在目录创建该文件。
vim .env

写入如下内容:

DATABASE_URL=mysql://用户:密码@localhost:3306/数据库名称
HASH_SALT=加盐
TRACKER_SCRIPT_NAME=自定义脚本名称
PORT=自定义服务器端口

4. 编译构建

npm install
npm run build

5. 运行程序

打开宝塔面板网站的 Node 项目,添加项目,根据你所存放程序的目录、端口填写具体内容。

使用自定义端口后,运行命令为 npm run start-env

宝塔面板网站配置

6. 接入网站

配置完成网站后打开,使用初始用户名密码登录 admin:umami。登录完成后可在右上角个人资料更新密码处修改默认信息。接着个人资料网站添加网址处接入待统计的网站,如果勾选了启用共享链接,代表可以将该网站的统计数据分享给他人查看。

添加网站后,在网站列表的获取跟踪代码按钮处点击,复制具体内容到标签中,注:如果开启了自定义脚本名称,此处的链接文件需要手动替换。

7. 如何更新

暂停网站,重复第 1, 3, 4 步骤后,重新启动网站即可。

三、补充内容

1. 跟踪事件

Umami 的自定义跟踪事件有些鸡肋,只能做到统计数量。支持两类:一是 CSS 类,也就是 umami--<event>--<event-name> 打标方式;另一种是在加载完成 Umami 文件后,提供了 umami 对象,可以调用一些方法,两种方式其实都挺勉强。

2. 优缺点

Umami 在表结构上只记录了 country,所以在统计地图上只能以国家/地区为单位进行区别,作为一个中文博客,是一个不小的遗憾,不过此处应该归为设计如此。

3. 额外

偷偷的讲,Umami 的地区地图里中国地图块有问题。💀

评论