更新 Umami 至 v2
Umami 是一款注重隐私的网站访客统计工具,对标 Google Analytics
简单写一下 Umami 大版本升级(v1 到 v2)的教程
Umami v2 有很多破坏性更改,自己更新的时候遇到了一些坑,所以自己整理一下升级教程
这不是官方教程,官方教程(英文)可以在这里找到
升级前请确认你正在运行最新版本的 v1(v1.4.0),否则升级时会报错
另外,强烈建议在升级之前备份数据库,如果数据库 dump 文件大于 50 MB,数据库更新可能需要几分钟才能完成
关闭旧版本
首先先把 Umami 旧版本关掉,如果你 Umami 是 systemd 自启,就用:
- sh
1 | systemctl stop umami |
升级数据库
在更新程序版本前要升级数据库,在 umami 目录输入下面的命令即可:
- sh
1 | npx @umami/migrate-v1-v2@latest |
如果你卡在了 reify:prisma: http fetch GET 200
这个步骤,并不用担心升级出现了问题,只是程序在下载文件而已
(中国大陆下载升级 prisma 大概会消耗半个多小时时间,也可能会更久, prisma 下载文件的地址是写死的,这意味着你改了 npm 注册表(镜像)也没有一点用,但是你可以设置一个 HTTPS_PROXY
变量来让他走代理)
升级好之后会问你要不要删除旧的数据表,输入 y
或者 n
就行
更新前准备
先检查一下自己的 Umami 配置文件(.env
)有没有设置自定义 JS 名称(TRACKER_SCRIPT_NAME
)
更新 v2.2.0 之后,你需要在这个脚本名后加个 .js
才能正常跑,如果你原来是这样:
- env
1 | TRACKER_SCRIPT_NAME=delightful |
那么就改成:
- env
1 | TRACKER_SCRIPT_NAME=delightful.js |
更新 Umami
先 stash 掉目前的更改,然后更新 Git 存储库:
- sh
1 | git stash |
Git 更新完成后,还要更新 node 软件包:
- sh
1 | yarn install |
然后就是构建 Umami:
- sh
1 | yarn build |
构建时候可能会在 Saved geo database
卡很久,也可能遇到下面的报错,大意是 GeoIP 数据库下载失败:
1 |
|
一般只有中国大陆会出现这个问题,解决的方法就是在另一台网络正常的机器下载 GeoIP 数据库(GeoLite2-City),文件大概有 70 MB,下载完成后上传到服务器 umami 安装目录下面的 geo/
目录,重命名为 GeoLite2-City.mmdb
当然,配置代理也是 OK 的,但是 GeoIP 数据库下载时不看系统代理变量,只能自己想办法配置 iptables
了
如果你没直接报错退出,一直卡在 Saved geo database
,其实也可以慢慢等,大概等个半小时也能下载完
配置端口
如果需要修改运行端口,修改 package.json
,在第 15 行 start
后面加上 -p 端口号
:
- json
1 | "start": "next start -p 53019", |
运行
输入 yarn start
后,Umami 应该就可以正常启动了,如果发现无法正常统计,尝试清除一下网页缓存就可以
如果你 Umami 是 systemd 自启,就用下面的命令启动
- sh
1 | systemctl start umami |