使用Vercel搭建Umami统计

一、前言

原先我的博客统计用的是51La,但用下来总感觉差点意思(并不是说51La不好,只是不太符合我的个人口味),于是便开始寻找替代品,偶然在洪哥博客下看到了这篇文章使用Docker搭建Umami统计,显示近一年的pv、uv数据的API搭建 ,其中的UmamiAPI原先是用PHP写的,本人对于PHP是不太熟悉的,后续如果要修改也不太玩的明白,于是打算用Python Copy参考原先的PHP代码写一个,不同的是采用Fastapi来作为后端框架,Vercel KV作为Umami API的缓存数据库,将其部署于Vercel上,下面简单记录一下搭建过程

二、准备工作

  • 注册 Vercel
  • Fork Umami,顺手点一个Star
  • Fork Umami-api
  • 两个域名(解决Vercel被墙的问题)

三、开始部署

3.1 创建Postgres数据库

打开Vercel 主界面-> storage -> create Database

选择Postgres -> continue

创建好之后需要点击你创建好的Postgres数据库

记录下你数据库的连接操作符,只需要双引号内的内容

3.3 创建Vercel KV数据库

storage -> create Database

选择KV -> continue

3.3 部署Umami

打开Vercel主界面-> Add New -> Project

选择Fork好的Umami仓库,Import,进入到你的Umami项目

导入你创建好的Postgres数据库,Storage -> Connent Database

选择你刚刚创建的数据库,选择Connect

设置相关的Postgres环境变量,Settings -> Environment Variables

环境变量说明:

变量名 变量值
HASH_SLAT 一串字符(脸滚键盘即可)
DATABASE_URL Postgres连接操作符

配置域名,Settings -> Domains,参考:解决Vercel域名被墙的问题

打开Umami界面,使用默认的账号admin密码umami进入面板,测试是否部署成功

添加你的博客网站,设置 -> 添加网站

记录下你的网站ID,设置 -> 编辑

3.4 部署Umami API

UmamiAPI的部分我已经写完,地址:vercel-umami-api ,Fork之后直接导入即可,也可以选择洪哥写的PHP版本,地址:HeoPVBridge,参考教程:使用Docker搭建Umami统计,显示近一年的pv、uv数据的API搭建

下面是我写的版本的搭建过程

Vercel导入部署的部分与Umami大同小异,这里不过多展开,下面是不同的部分

导入你创建好的Vercel KV数据库,Storage -> Connent Database

选择数据库,Connect

使用API调试工具获取Umami的验证Token,这里我以Apifox为例,地址:https://你的地址/api/auth/login

请求参数说明:

  • URL:https://你的地址/api/auth/login
  • 请求方法:POST

请求示例:

正常返回结果示例,这里需要记录下token的值:

返回Vercel,选择你的UmamiAPI项目,添加环境变量,Settings -> Environment Variables

环境变量说明:

变量名 变量值
umami_token Umami的token值
umami_web_id Umami的网站ID
umami_url Umami的url

配置域名,Settings -> Domains,参考:解决Vercel域名被墙的问题

UmamiAPI使用方法:

请求参数说明:

  • URL:https://你的地址/umami-stats
  • 请求方法:Get

示例:

四、最后

如何结合你的主题展示数据可自行寻找方法

anzhiyu主题的可参考这位大佬的博客:Umami?不,还是51LA | 梦爱吃鱼 (bsgun.cn)