没有人喜欢自己的隐私数据被收集、被利用,也没有人喜欢自己被跨网站、跨设备的跟踪浏览行为、制作用户画像、精准投递广告。作为一个非商用的小站,是时候向诸如谷歌统计、百度统计、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. 初始化数据库
自行在宝塔面板数据库管理中创建数据库。
mysql -u 用户 -p 数据库名称 < sql/schema.mysql.sql |
3. 配置环境
vim .env |
写入如下内容:
DATABASE_URL=mysql://用户:密码@localhost:3306/数据库名称 |
4. 编译构建
npm install |
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 的地区地图里中国地图块有问题。💀