自建umami监控服务

Google Analytics 即将在明年的 7 月份停止服务,所以不得不提前做一些准备。刚好最近用到了 umami 的云服务 ,感觉还挺不错,界面讨我喜欢,功能对我而言足够用了。说实话 GA 那一套很强,可对我这个小破站而言的确是有点大材小用了。另外由于 umami 是一款开源的软件 ,自然也就可以进行私有化部署。本来没想折腾,但是介于现在 Umami Cloud 在 Beta 阶段,略微有一些不够稳定,时不时的就登录不进去。其次菜单右侧的 Billing 也在告诉我,迟早我会私有化部署的。

得益于现在 XaaS 服务的发达,并且足够的便宜。基本上对于个人小项目,免费套餐都绰绰有余。所以,这次我就用现有的免费服务来进行私有化部署。

准备工作

umami 分为 database 和 web 两块,因此:

  1. 需要一个远程数据库,比如 VPS 的远程 Mysql,或者云服务商的远程数据库服务
  2. 需要一个前端自动部署的工具,比如 Vercel, Netlify, Railway
  3. github 帐号

我最终选择 Railway 来部署,因为 1 和 2 可以合在一起部署管理,而且 umami 官方也有一键部署方式

部署

按照官方文档里直接跳转到 Railway。会提示需要创建一个 repo,同时输入一个 HASH_SALT(通过 cmd +K 翻到最后可以自动生成,注意保存)。

然后就会生成两个项目,一个是后端数据库,一个是前端的 web 程序。

但官方的一键部署点击过后并无法正常运行 Web 程序,尝试了几次都无果。最后从 github 单独拉去 umami 的 web 项目进行手动配置(配置参数在这里),然后就正常运行了。为了避免 umami 的监控 js 代码被广告拦截插件拦截,可以增加TRACKER_SCRIPT_NAME 的配置,用来替换掉原始的 js 文件名。

接着就是去域名解析平台增加相应的 CNAME 解析即可。

运行

首次登录需要使用默认的帐号密码 admin / umami,然后进入控制台即可修改密码,增加网站,开新的帐号供朋友使用了。使用起来和 umami cloud 几乎没有区别。