给站点添加站点统计:umami

简介

umami 是一个简单的站点分析系统,配置简单使用方便,页面也很漂亮。

下边是官网的演示

img

github:https://github.com/mikecao/umami

配置

官方文档有用 npm 部署的示例和 docker postgresql 的示例,我这里讲下 docker mysql 的配置和需要注意的地方

如果用 docker 部署,不需要下载其全部源码,只需要 docker-compose.yml 和 sql 文件夹中对应数据库的 sql

官方的 docker-compose.yml 用的 postgresql ,我这里贴上我用的 mysql 的 docker-compose.yml

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
26
27
28
---
version: '3'
services:
umami:
image: ghcr.io/mikecao/umami:mysql-5d74e86
ports:
- "127.0.0.1:3000:3000"
environment:
DATABASE_URL: mysql://<dbUserName>:<dbPwd>@db:3306/<dbName>
DATABASE_TYPE: mysql
HASH_SALT: <尽量长的随机字符串>
depends_on:
- db
restart: always
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: <dbName>
MYSQL_USER: <dbUserName>
MYSQL_PASSWORD: <dbPwd>
MYSQL_ROOT_PASSWORD: <rootPwd>
volumes:
- ./schema.mysql.sql:/docker-entrypoint-initdb.d/schema.mysql.sql:ro
- umamidb:/var/lib/mysql
restart: always
volumes:
umami-db-data:

我没有用 umami:mysql-latest 因为我曾遇到过 latest 版本比最新版差两个版本号。另外考虑到升级兼容性,除非发生安全性问题,还是固定版本的好。

因为我要做自动备份,用 MYSQL_ROOT_PASSWORD 设置 root 密码。如果你不需要 可以替换为 MYSQL_RANDOM_ROOT_PASSWORD:1 让 root 使用随机密码

访问 https://github.com/mikecao/umami/pkgs/container/umami 获取最新的版本号

在 docker-compose.yml 所在目录执行 docker-compose up -d 启动服务

这个镜像160M+,并且托管在 ghcr.io。我的服务器在腾讯云,pull 超级慢。我这里在家下好,用 docker save <image> | gzip > <name>.tar.gzdocker load -i <name>.tar.gz 导入

第一次启动需要手动导入数据库,

1
docker exec umami_db_1 sh -c 'exec mysql -u<dbUserName> -h 127.0.0.1 -p<dbPwd> <dbName> < /docker-entrypoint-initdb.d/schema.mysql.sql'

现在可以登录了

image-20220215190034669

默认用户名 admin,密码 umami

在设置里添加网站

image-20220215190517440

点击获取跟踪代码

image-20220215190614578

将代码插入到页面的 body 里就好了

如果装了 adblock 等防跟踪,可能会出现 ERR_BLOCKED_BY_CLIENT 把 umami.js 拦截掉。虽然有办法处理,但我更想尊重他们的意愿。

感谢阅读,如果你想建静态站点,不如看看 Hexo 手记,这里有奖 Typora 和 hexo 的对接,以及我用到的相关脚本。

本作品采用 知识共享许可协议 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。