Google Analytics 收集的信息过多且数据不在自己手里。这里就用 Umami 代替

【Github】https://github.com/umami-software/umami
安装
支持两个数据库:Mysql 和 Postgresql
mysql 5.7 版本的注意

这个 sql 文件中的一些语句与 5.7 版本不兼容,在 run build 时会出错
可以参考 Github issues:https://github.com/umami-software/umami/issues/2118
需要将 migration.sql 中的
-- AlterTable
ALTER TABLE `event_data` RENAME COLUMN `event_data_type` TO `data_type`;
ALTER TABLE `event_data` RENAME COLUMN `event_date_value` TO `date_value`;
ALTER TABLE `event_data` RENAME COLUMN `event_id` TO `event_data_id`;
ALTER TABLE `event_data` RENAME COLUMN `event_numeric_value` TO `number_value`;
ALTER TABLE `event_data` RENAME COLUMN `event_string_value` TO `string_value`;
替换为
-- RenameColumns
ALTER TABLE `event_data` ADD COLUMN data_type INTEGER UNSIGNED AFTER event_data_type;
ALTER TABLE `event_data` ADD COLUMN date_value TIMESTAMP(0) AFTER event_date_value;
ALTER TABLE `event_data` ADD COLUMN event_data_id VARCHAR(36) AFTER event_id;
ALTER TABLE `event_data` ADD COLUMN number_value DECIMAL(19, 4) AFTER event_numeric_value;
ALTER TABLE `event_data` ADD COLUMN string_value VARCHAR(500) AFTER event_string_value;
UPDATE event_data
SET data_type = event_data_type,
date_value = event_date_value,
event_data_id = event_id,
number_value = event_numeric_value,
string_value = event_string_value;
ALTER TABLE `event_data` MODIFY data_type INTEGER UNSIGNED NOT NULL;
ALTER TABLE `event_data` MODIFY event_data_id VARCHAR(36) NOT NULL;
ALTER TABLE `event_data` DROP COLUMN event_data_type;
ALTER TABLE `event_data` DROP COLUMN event_date_value;
ALTER TABLE `event_data` DROP COLUMN event_id;
ALTER TABLE `event_data` DROP COLUMN event_numeric_value;
ALTER TABLE `event_data` DROP COLUMN event_string_value;
ALTER TABLE `event_data` ADD PRIMARY KEY(event_data_id);
在跟目录新建一个 .env 文件,里面填写数据库链接
DATABASE_URL=mysql://xxx:xxx@xxx:3306/umami
HASH_SALT=xxx
构建
yarn install
注意端口,默认是 3000,想改的化,记得在 package.json 中 scripts 中 start 命令后面加 -p xxxx
"scripts": {
"dev": "next dev",
"build": "npm-run-all check-env build-db check-db build-tracker build-geo build-app",
"start": "next start -p 1111",
打包
yarn run build
后面会卡住一会儿,要下载 城市 IP 的数据【GeoLite2-City.mmdb】,有 60 MB 左右
运行
安装 pm2 方便管理
npm install -g pm2
// 然后执行
pm2 start npm --name umami -- start
使用
登陆账号和密码:admin umami
创建网站信息

然后把跟踪代码放到网站里面
例如(站主是 Nuxt 3)

Comments NOTHING