视频加载失败

Umami 自托管部署完整指南:Vercel + Supabase 免费方案

1765 字
9 分钟
Umami 自托管部署完整指南:Vercel + Supabase 免费方案

什么是 Umami?#

Umami 是一个开源、轻量、隐私友好的网站分析工具,相比 Google Analytics,它更注重用户隐私,数据完全由自己掌控,而且界面简洁美观,功能实用。

为什么选择 Vercel + Supabase?#

  • Vercel:提供免费的静态网站托管服务,部署简单,全球 CDN,访问速度快
  • Supabase:提供免费的 PostgreSQL 数据库服务,适合小型应用,操作简单
  • 完全免费:两者的免费额度足够个人和小型网站使用
  • 无需服务器:不需要购买和维护服务器,节省成本和精力

准备工作#

1. 注册账号#

  • GitHub 账号:用于代码托管和 Vercel 登录
  • Vercel 账号:用于部署 Umami
  • Supabase 账号:用于提供 PostgreSQL 数据库

2. 技术要求#

  • 基本的 Git 操作知识
  • 基本的数据库操作知识
  • 能够访问 GitHub、Vercel 和 Supabase 网站

步骤一:创建 Supabase 项目#

1. 登录 Supabase#

访问 Supabase 控制台,使用 GitHub 账号登录。

2. 创建新项目#

  1. 点击「New Project」按钮
  2. 填写项目信息:
    • Project Name:填写项目名称,比如 umami-db
    • Database Password:设置一个安全的数据库密码(记住这个密码,后面会用到)
    • Region:选择离你最近的区域
  3. 点击「Create Project」按钮,等待项目创建完成(约需 2-3 分钟)

3. 获取数据库连接信息#

项目创建完成后:

  1. 点击顶部菜单的「Connect」
  2. 在「Connection String」部分,找到「URI」格式的连接字符串
  3. 复制这个连接字符串,备用

注意:连接字符串格式类似:

postgresql://postgres:你的密码@aws-0-us-east-1.pooler.supabase.com:6543/postgres

4. 执行数据库初始化脚本#

  1. 点击左侧菜单的「SQL Editor」
  2. 点击「New query」按钮
  3. 复制粘贴以下 SQL 脚本:
-- Create tables
CREATE TABLE IF NOT EXISTS accounts (
id serial PRIMARY KEY,
username VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS websites (
id serial PRIMARY KEY,
name VARCHAR(255) NOT NULL,
domain VARCHAR(255) NOT NULL,
share_id VARCHAR(64) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS website_events (
id serial PRIMARY KEY,
website_id INTEGER NOT NULL,
session_id VARCHAR(64) NOT NULL,
event_type VARCHAR(64) NOT NULL,
url VARCHAR(2048) NOT NULL,
referrer VARCHAR(2048),
device VARCHAR(64),
browser VARCHAR(64),
os VARCHAR(64),
country VARCHAR(2),
city VARCHAR(255),
screen VARCHAR(64),
language VARCHAR(64),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Create indexes
CREATE INDEX IF NOT EXISTS website_events_website_id_idx ON website_events(website_id);
CREATE INDEX IF NOT EXISTS website_events_session_id_idx ON website_events(session_id);
CREATE INDEX IF NOT EXISTS website_events_created_at_idx ON website_events(created_at);
-- Insert default account
INSERT INTO accounts (username, password) VALUES ('admin', '$2b$10$t3q4bN3BjV8sS6XZ7Y8Z9u.7a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t');
  1. 点击「Run」按钮执行脚本

说明:默认账号的用户名是 admin,密码是 umami,登录后可以修改。


方案二:使用 Vercel Database(Neon)部署#

如果你觉得 Supabase 配置步骤太麻烦,也可以选择使用 Vercel 自带的 Neon 数据库服务,操作更加简单一体化。

1. 登录 Vercel#

访问 Vercel 控制台,使用 GitHub 账号登录。

2. 创建数据库#

  1. 在 Vercel 控制台中,点击左侧菜单的「Storage」
  2. 点击「Create Database」按钮
  3. 选择「Neon」作为数据库类型
  4. 填写数据库信息:
    • Database Name:填写数据库名称,比如 umami-db
    • Region:选择离你最近的区域
  5. 点击「Create」按钮,等待数据库创建完成

3. 获取数据库连接信息#

数据库创建完成后:

  1. 在 Storage 页面中,点击你刚刚创建的数据库
  2. 在「Connection Project」选项卡中,选择部署好的项目(前提是你已经部署了项目,建议先执行步骤二的内容)
  3. 重新执行步骤二的第6点内容

步骤二:部署 Umami 到 Vercel#

1. Fork Umami 仓库#

  1. 访问 Umami GitHub 仓库
  2. 点击右上角的「Fork」按钮,将仓库 fork 到自己的 GitHub 账号下

2. 登录 Vercel#

访问 Vercel 控制台,使用 GitHub 账号登录。

3. 导入项目#

  1. 点击「Add New」→「Project」
  2. 在「Import Git Repository」部分,找到并选择你刚才 fork 的 Umami 仓库
  3. 点击「Import」按钮

4. 配置项目#

在配置页面:

  1. Project Name:保持默认或修改为你喜欢的名称
  2. Framework Preset:选择「Next.js」
  3. Root Directory:保持默认
  4. Build and Output Settings:保持默认

5. 设置环境变量#

在「Environment Variables」部分,点击「Add」按钮,添加以下环境变量:

变量名说明
DATABASE_URL你的 Supabase 连接字符串数据库连接地址
HASH_SALT随机字符串用于密码哈希,建议使用随机生成的字符串

注意

  • DATABASE_URL 就是你在 Supabase 中复制的连接字符串
  • HASH_SALT 可以使用在线工具生成一个随机字符串

6. 部署项目#

点击「Deploy」按钮,等待部署完成。部署过程可能需要 2-3 分钟。

7. 访问项目#

部署完成后,Vercel 会生成一个域名,点击「Visit」按钮即可访问 Umami 应用。

步骤三:配置 Umami#

1. 登录 Umami#

  1. 访问部署后的 Umami 网站
  2. 使用默认账号登录:
    • 用户名:admin
    • 密码:umami

2. 修改默认密码(重要)#

  1. 登录后,点击右上角的用户头像
  2. 选择「Profile」
  3. 在「Password」部分,输入新密码
  4. 点击「Save」按钮

3. 添加网站#

  1. 点击左侧菜单的「Websites」
  2. 点击「Add Website」按钮
  3. 填写网站信息:
    • Name:网站名称
    • Domain:网站域名
  4. 点击「Save」按钮

4. 获取跟踪代码#

  1. 在网站列表中,找到你刚刚添加的网站
  2. 点击右侧的「</>」图标
  3. 复制跟踪代码
  4. 将跟踪代码添加到你网站的 <head> 标签中

步骤四:验证部署#

1. 检查数据统计#

  1. 访问你添加的网站
  2. 浏览几个页面
  3. 回到 Umami 控制台,查看「Real-time」数据
  4. 确认能看到访问数据

2. 检查历史数据#

  1. 等待一段时间(约 5-10 分钟)
  2. 回到 Umami 控制台
  3. 查看「Dashboard」页面
  4. 确认能看到历史访问数据

常见问题及解决方案#

1. 数据库连接失败#

症状:部署后无法访问,或显示数据库连接错误

解决方案

  • 检查 DATABASE_URL 环境变量是否正确
  • 确认 Supabase 项目是否正常运行
  • 检查数据库密码是否正确

2. 跟踪代码不工作#

症状:网站访问后,Umami 中没有数据

解决方案

  • 确认跟踪代码是否正确添加到网站中
  • 检查浏览器控制台是否有错误
  • 确认网站域名是否与 Umami 中添加的域名一致

3. 部署失败#

症状:Vercel 部署过程中出现错误

解决方案

  • 检查环境变量是否正确设置
  • 确认 Umami 版本是否与 Vercel 兼容
  • 查看部署日志,根据错误信息进行修复

总结#

通过以上步骤,你已经成功在 Vercel 上部署了 Umami,并使用 Supabase 作为数据库。现在你可以:

  • 实时监控网站访问数据
  • 查看详细的用户行为分析
  • 导出数据进行进一步分析
  • 完全掌控你的网站分析数据

Umami 是一个非常优秀的开源网站分析工具,结合 Vercel 和 Supabase 的免费服务,你可以零成本搭建一个功能完整的网站分析系统。

项目资源#

希望这篇指南对你有所帮助!如果你在部署过程中遇到任何问题,欢迎在评论区留言。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Umami 自托管部署完整指南:Vercel + Supabase 免费方案
https://blog.huhaha.vip/posts/tools/实用工具/umami-vercel-supabase-deployment/
作者
小王的博客
发布于
2026-04-22
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
Project N.O.M.A.D.:离线生存电脑,知识永不离线
实用工具想象一下,当你远离城市,深入荒野,或者遇到网络中断的紧急情况时,如何获取关键信息和工具?今天要给你们介绍一个超级酷的项目——**Project N.O.M.A.D.**,一个自包含的离线生存电脑,让知识和工具永远伴随着你!
2
Tailscale:不用公网IP,不用配置防火墙,3分钟搞定异地组网!
实用工具简单来说,Tailscale能让你把不同地方的设备,组成一个虚拟局域网。不管是Windows、macOS、Linux,还是iOS、ndroid、NAS,它全支持。而且,不用公网IP,不用配置路由器,不用开端口,3分钟搞定。
3
PicList-轻松管理你的图片库,让美好瞬间触手可及
实用工具PicList,一款基于 PicGo 深度二次开发的图片管理工具。PicList 不仅继承了 PicGo 的所有优秀特性,如支持多种图床服务(GitHub、SM.MS 等),还新增了相册同步、多图床支持、云存储管理、链接复制和预览功能等高级特性。如何安装、配置和使用 PicList,及其他使用技巧。
4
JSDelivr & NPM CDN 国内加速节点
实用工具2024-09-08
5
【工具】Watt Toolkit GitHub加速
实用工具本文介绍了如何使用 Watt Toolkit(即 Steam++)来加速 GitHub 访问。文章还提供了取消 git 代理的命令,方便用户根据需要进行切换。本文适合需要提高 GitHub 访问速度的开发者和用户参考。
随机文章随机推荐

评论区

Profile Image of the Author
小王的博客
一个上了年纪的猿人.
分类
标签
最新动态
站点统计
文章
209
分类
15
标签
161
总字数
478,322
运行时长
0
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录