因为百度统计使用unload导致浏览器报错和一系列性能问题,并且去广告插件之类的对百度统计都有屏蔽,导致无法获取真实的数据,所以决定之下还是选择了自搭建umami。这也是向访客隐私迈出的一大步,也就是说在未来我的博客将不会将访客数据传输给第三方,避免了潜在的隐私风险。

这段时间一直在尝试部署umami,但是因为docker在国内环境中发生了变化,所以拉取镜像怎么也拉取不下来,换了各种加速地址都不行,后来才发现umami网上的教程走的都不是dockerhub的镜像地址。所以我的新的docker-compose推荐给大家:

配置教程

在需要放入umami信息的文件夹建立docker-compose.yaml文件,填写下面的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
version: '3'
services:
umami:
container_name: umami
image: umamisoftware/umami:postgresql-latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
DATABASE_TYPE: postgresql
HASH_SALT: replace-me-with-a-random-string
depends_on:
- db
restart: always
db:
container_name: umami-db
image: postgres:12-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: umami
volumes:
- ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
- ./umami-db-data:/var/lib/postgresql/data
restart: always

注意,umami的ports中,3000:3000可以将前面的3000更换成其他闲置端口。

然后通过ssh访问服务器后,cd进这个文件夹,然后执行docker-compose up -d即可配置完成。

添加反代

宝塔的话添加反代还是比较容易的,创建一个站点,然后添加反向代理:

反代

反代配置

目标url填写:http://127.0.0.1:你的端口号,如果使用的是本文的docker compose文件没有改端口号的话,应该填写:http://127.0.0.1:3000

设置信息

进入之后umami默认的用户名为admin,默认密码为umami。进入之后我们先改一下语言。

修改配置

语言选择中文

选择语言

添加网站

进入设置->点击添加网站

添加网站

设置一个名字和添加地址,地址不需要https协议头

添加网站

插入代码

我们将统计代码插入到head中比较好。

点击网站的“编辑”

编辑网站

选择“跟踪代码”我们就可以看到html代码了。插入到每一个页面即可。

插入代码

umami是支持PWA的,所以无需考虑pjax等因素。

给butterfly的小伙伴一个pug代码,编辑analytics.pug

1
2
if theme.umami_analytics 
script(defer, src='填写你的js地址', data-website-id=`${theme.umami_analytics}`)

然后添加主题配置项目

1
2
# umami_analytics
umami_analytics: 你的网站id

“我的”页面数据

之前百度统计做了一个pvbridge,但是换到了umami就得新弄了。

基于林木木的前端调用 Umami API 数据我们可以写一个新的api。

首先进入Hoppscotch获取token: https://hoppscotch.io/

https://你的地址/api/auth/login

请求

成功后会返回token信息:

返回

然后访问HeoPVBridge,下载并修改umami.php,更改地址、token和网站id。然后部署到网站的php项目中即可。

修改pvBridge

在宝塔中部署php项目

之前百度统计搭建的时候有人问怎么做php项目,想了一下还是补充下吧,确实有小白不太清楚。

添加php项目

在宝塔面板点击php项目,添加一个站点。

添加域名等信息,确保php有版本。

创建站点

进入网站对应的目录。

进入目录

将php文件上传到这里就可以,然后就能直接通过域名和路径访问了。例如我的:

https://api.zhheo.com/HeoPVBridge/umami.php