Hexo + Umami + Vercel + Supabase + 搭建网站分析系统
Umami 是一个开源的、以隐私为中心的 Google Analytics 替代方案。Umami 提供强大的网络分析解决方案,不会侵犯用户隐私。此外,当自行托管 Umami 时,可以完全控制自己的数据。
Umami 基于 Node.js 开发,支持 Mysql 和 Postgresql 数据库,除服务器外,它甚至可以部署在 Serverless 中。自部署的好处在于某些商业服务滥用用户数据,当数据保存在自己手中时可以确保不会分享给第三方
官方文档介绍了多种部署方式,包括使用自己服务器,或者第三方平台,例如 Netlify、Heroku、Railway 等等,不过这些第三方平台一般都不提供数据库服务,所以我选择使用 Supabse 提供的免费数据库服务,以及 Vercel 的部署。
一、准备条件
在使用前,先注册并登录好 GitHub、Vercel、Supabase 三个平台,并在 GitHub 平台 Fork Umami 的项目仓库。
GitHub:https://github.com/umami-software/umami
Vercel:https://vercel.com/
Supabase:https://supabase.com/
二、在Supabase建立数据库
在官网选择 Free
方案,进入 Create a new project
页面,按要求填写相关内容。Name
填写任意项目名,Database Password
可以使用下方工具 Generate a password
生成,并保存到记事本备用
。
等待数据库建立,需要几分钟的时间。
建立之后,点击左下方的 Project Settings
,选择 Database
,找到 Connection string
中的URL
一栏,复制内容,并将[YOUR-PASSWORD]
替换为上一步生成的密码,稍后会用到。
Supabase 平台的操作就结束了。
三、在 Vercel 部署 Umami
登录 Vercel 之后,点击右上角 Add New Project
,并导入事先Fork
的项目仓库。
在 Configure Project 中需要设置两个环境变量(Environment Variables)。
分别添加 DATABASE_URL
和 HASH_SALT
。
DATABASE_URL
: 是上一步在 Subabase 复制的 URL,记得替换自己的 Password;HASH_SALT
: 需要自己随意生成一长串字符串。
特别提醒:需要在数据连接信息后面加上 ?pgbouncer=true,例如:
1 | postgresql://postgres:密码@db.随机字符.supabase.co:5432/postgres?pgbouncer=true |
最后点击 Deploy
,等待两分钟。
四、自定义域名
由于 Vercel 提供的域名在大陆无法访问,所以如果是想大陆流畅访问,建议绑定一个自己的域名。
1、在自有域名的 DNS
服务中添加一条记录,选择 CNAME
类型转发,记录值填写为:cname.vercel-dns.com
2、然后在 Vercel 中找到 umami 项目,点击 Settings 标签卡,跳转页面后点击左侧的Domains
菜单项,输入你自己定义的域名
点击 Add 按钮
即可。
五、使用 Umami
按照上述步骤,Umami 已经部署成功了,通过绑定的域名进入网站,默认用户名和密码分别是 admin
和 umami
,进入后台可以修改密码、设置语言,然后就可以添加网站
了。
1、完成基础帐号配置后,点击侧边栏网站 Tab,点击添加网站。
2、填写网站基本信息
3、网站创建完成,点击编辑
按钮进入如下页面,获取 umami 脚本,
4、在Hexo中使用该信息
如果主题没有适配 umami 的话,可以使用 hexo injector 直接注入,hexo 版本需要大于 5
- 在博客项目根目录,创建
scripts
文件夹 - 在
scripts
文件夹下,创建injector.js
文件
1 | // your-website-id: 上面的umami脚本中获取的 |
然后重新部署hexo就可以了
六、使用 最终效果
七、FAQ
1、 在Vercel上进行部署的时候,报了如下错误,怎么解决
1 | $ node scripts/check-db.js |
A: 通过在 数据连接信息后面加上 ?pgbouncer=true解决的
,如上文
七、参考
1、使用 Vercel + Supabase 零成本部署 Umami
2、使用 vercel+supabase 免费部署 umami
3、从零开始搭建一个免费的个人博客数据统计系统:umami + Vercel + Heroku
4、自建 UMAMI | 一个开源网站分析工具
5、使用 Umar 统计个人网站访问数据