Vercel + Neon 免费部署 Umami,并接入 Hugo
Umami 是一款开源、轻量的网站访问统计工具,可用于查看访问量、来源、设备、地区和页面浏览等数据。本文记录如何使用 Vercel 部署 Umami、使用 Neon 提供 PostgreSQL 数据库,并将跟踪代码接入 Hugo PaperMod。
本文以个人博客和低流量站点为例。Vercel 与 Neon 的免费额度、控制台界面及相关政策可能发生变化,请以官方页面显示为准。
准备工作
开始前需要准备:
部署过程主要分为四步:
- 在 Vercel 中创建 Neon PostgreSQL 数据库
- 从 Umami 官方仓库创建项目并部署
- 登录 Umami,添加需要统计的网站
- 将跟踪代码添加到 Hugo 的
<head>中
创建 Neon 数据库
1. 新建存储服务
进入 Vercel 控制台,点击顶部的 Create New。

选择 Storage。

点击 Create Storage,新建存储服务。

在数据库类型中选择 Neon。

2. 完成数据库配置
根据页面提示确认数据库名称、区域等配置。此时可以暂不关联 Vercel 项目;如果页面要求填写 Custom Prefix,设置一个便于识别的环境变量前缀即可。

数据库创建完成后,进入数据库详情页,点击 Open in Neon 打开 Neon 控制台。

3. 获取数据库连接字符串
在 Neon 控制台左上角点击 Connect,打开数据库连接面板。

复制 PostgreSQL 连接字符串,后续需要将它设置为 Umami 的 DATABASE_URL 环境变量。

连接字符串通常类似:
|
|
DATABASE_URL中包含数据库账号和密码,不要将它写入公开文章、截图、Git 仓库或前端代码。
在 Vercel 部署 Umami
1. 从官方仓库创建项目
打开 Umami 的 Vercel 部署页面,使用 Umami 官方仓库创建 Vercel 项目。
首次部署时,Vercel 会要求在 GitHub 账号下创建一个新的仓库。填写容易辨认的仓库名,例如 umami 或 umami-analytics。

2. 配置数据库环境变量
在项目配置页面找到环境变量,将刚才复制的 Neon 连接字符串填入:
|
|
确认变量名称为 DATABASE_URL,然后点击部署。Vercel 将自动安装依赖、初始化数据库并构建 Umami。

部署完成后,打开 Vercel 提供的项目域名。如果能够看到 Umami 登录页面,说明应用和数据库已经连接成功。
3. 首次登录并修改密码
首次登录可尝试使用 Umami 的默认管理员账号:
|
|

登录后应立即进入个人资料或账号设置,修改默认密码。默认凭据是公开信息,长期保留会带来账号被接管的风险。
如果默认账号无法登录,请查看 Vercel 的部署日志,并参考当前版本的 Umami 官方文档;不同版本的初始化流程可能有所变化。
在 Umami 中添加网站
进入 Umami 后,在网站管理页面点击添加网站,填写站点名称和域名。

域名只需填写主机名,一般不包含协议和路径。例如:
|
|
网站创建完成后,进入对应网站,点击右上角的 Edit 或相关设置按钮。

在跟踪代码页面复制 Umami 生成的 <script> 标签。

自托管 Umami 生成的代码通常类似:
|
|
如果使用 Umami Cloud,则脚本地址通常为:
|
|
data-website-id 必须使用当前网站对应的 ID,不要直接照抄其他站点的示例值。
将 Umami 接入 Hugo PaperMod
PaperMod 会自动加载 layouts/partials/extend_head.html 中的自定义内容,因此不需要直接修改主题目录。
在 Hugo 项目根目录创建以下文件:
|
|
如果 layouts 或 partials 目录不存在,按上述层级手动创建。然后将 Umami 提供的完整跟踪代码粘贴到文件中:
|
|

保存后重新构建并部署 Hugo 网站。不要修改 themes/PaperMod 中的同名文件,否则主题更新时改动可能被覆盖。
如果
extend_head.html中已经存在字体、验证标签或其他代码,保留原内容并另起一行加入 Umami 脚本即可。请确保同一个网站只加载一次跟踪脚本,以免造成重复统计。
验证统计是否生效
网站部署完成后,可以按以下步骤检查:
- 打开已部署的网站并访问几个页面
- 在浏览器中按
F12打开开发者工具 - 进入 Network 面板并刷新页面
- 搜索
script.js,确认跟踪脚本返回200 - 搜索
api/send,确认统计请求已成功发出 - 返回 Umami 控制台,等待片刻后查看实时访客或页面浏览数据
也可以在页面源代码中搜索 data-website-id,确认跟踪代码已经进入网页的 <head>。
常见问题
部署后出现数据库连接错误
重点检查以下内容:
- Vercel 中是否存在名为
DATABASE_URL的环境变量 - 连接字符串是否完整,复制时有没有遗漏字符
- Neon 数据库是否处于可用状态
- 数据库连接是否要求 SSL
- 修改环境变量后是否重新部署了项目
Umami 页面可以打开,但没有统计数据
可以依次检查:
data-website-id是否属于当前网站- 跟踪脚本域名是否可以正常访问
- 网站是否已重新构建并部署
- 浏览器广告拦截插件是否拦截了统计请求
- Umami 中填写的网站域名是否正确
- 页面是否重复加载了多个 Umami 脚本
Vercel 部署失败
进入 Vercel 项目的 Deployments 页面查看构建日志。常见原因包括数据库连接失败、环境变量缺失、上游 Umami 版本更新,或免费套餐限制发生变化。
自定义域名后统计失效
为 Umami 绑定新域名后,需要同步更新 Hugo 中脚本的 src 地址,并确认 HTTPS 证书已经生效。如果 Umami 网站配置中启用了域名限制,也要将博客的新域名更新进去。
后续维护建议
- 定期更新 Umami,部署前先阅读版本升级说明
- 定期检查 Neon 和 Vercel 的用量及免费额度政策
- 妥善保管
DATABASE_URL,发现泄露后及时轮换数据库密码 - 为 Umami 管理后台设置强密码,不再使用默认凭据
- 绑定自定义域名时启用 HTTPS
- 重大升级前备份 PostgreSQL 数据库
完成以上配置后,Hugo 网站的访问数据就会发送到自己的 Umami 实例中,可以在不依赖传统大型统计平台的情况下查看基础访问情况。