Umami 是一个简单、快速、注重隐私的 Google Analytics 替代方案。本仓库适配了 EdgeOne Pages 平台。
本仓库是基于 Umami v3.3.1 适配 EdgeOne Pages 平台的版本。
- EdgeOne Pages 兼容:修复了 EdgeOne Pages 运行时环境下 POST 请求体丢失的问题
- 性能监控:新增 Web Vitals 性能指标收集(TTFB、FCP、LCP、CLS、INP)
- 安全增强:Token 绑定密码哈希,密码更改后自动失效旧 Token
- 会话链接:新增会话与用户关联功能
| Issue | 描述 | 修复方式 |
|---|---|---|
| POST 请求体丢失 | EdgeOne Pages 自 2025-12-21 起,Node.js/Next.js 运行时适配器更新导致 POST 请求体丢失 | 自动检测并尝试从查询参数重建请求体 |
| 数据膨胀 10x | POST→GET workaround 导致重复数据 | 优化数据处理逻辑,避免重复记录 |
| 登录 API 400 错误 | POST 请求体丢失导致登录失败 | 使用 parseRequest 统一处理请求解析 |
- EdgeOne Pages 账号
- PostgreSQL 数据库(推荐使用腾讯云数据库)
- Node.js 18.18+
- 克隆仓库
git clone https://github.com/afoim/umami-edgeonepages.git
cd umami-edgeonepages- 安装依赖
pnpm install- 配置环境变量
创建 .env 文件:
DATABASE_URL=postgresql://username:password@host:5432/dbname
HASH_SALT=your-random-salt-string- 构建项目
pnpm run build- 部署到 EdgeOne Pages
将构建产物部署到 EdgeOne Pages 平台,参考 EdgeOne Pages 文档。
- Node.js 18.18+
- PostgreSQL v12.14+
pnpm run dev访问 http://localhost:3000,默认账号:admin,默认密码:umami。
| 变量名 | 说明 | 必填 |
|---|---|---|
DATABASE_URL |
PostgreSQL 数据库连接地址 | 是 |
HASH_SALT |
哈希盐值,用于加密 | 是 |
CLICKHOUSE_URL |
ClickHouse 连接地址(可选) | 否 |
REDIS_URL |
Redis 连接地址(可选) | 否 |
CLOUD_MODE |
云模式开关 | 否 |
PRIVATE_MODE |
私有模式 | 否 |
DISABLE_TELEMETRY |
禁用遥测 | 否 |
在网站中嵌入追踪脚本:
<script
defer
src="https://your-domain.com/umami.js"
data-website-id="your-website-id"
data-host-url="https://your-domain.com"
></script>本仓库基于 Umami v3.3.1 版本,后续会持续跟进官方更新。
更新步骤:
git pull
pnpm install
pnpm run builddocker pull docker.umami.is/umami-software/umami:latest
docker compose up -d