参考资料

  1. 解决 Umami 部署时 Nginx 反向代理出现空白页面的问题
  2. RuoYi AI 是一套基于人工智能技术的开源系统
  3. Docsify是一个动态生成文档网站的工具
  4. Codapp是一款低代码开发平台
  5. Docker 部署 Umami 教程
  6. 网站分析工具 Umami 的详细分析
  7. AWStats 是一款功能强大的免费工具
  8. 微信 Markdown 编辑器

网站分析工具 Umami 的详细分析

以下是关于开源网站分析工具 Umami 的详细分析,涵盖核心参数功能、开源项目必备组件、部署方式及注意事项:


一、Umami 核心参数功能解析

Umami 专注于简洁、隐私友好的网站分析,其参数设计围绕核心指标,避免过度追踪:

参数类别关键指标功能说明
流量分析浏览量 (Pageviews)页面被加载的次数,支持实时更新。

独立访客 (Unique Visitors)基于 Cookie 或 IP+User Agent 去重(默认使用匿名哈希,隐私优先)。

会话 (Sessions)用户连续活动的周期(默认 30 分钟无操作结束)。
来源追踪来源 (Referrers)流量来源域名(如 Google、直接访问)。

设备 & 浏览器设备类型(桌面/移动)、浏览器、操作系统。
内容分析热门页面 (Top Pages)按浏览量排序的页面排名。

入口页/退出页用户首次访问和最后离开的页面。
用户行为平均停留时长用户平均在网站停留的时间。

跳出率 (Bounce Rate)单页面访问会话占比(Umami 无事件触发即视为跳出)。
自定义事件事件追踪 (Events)通过 umami.track() 自定义事件(如按钮点击、表单提交)。

二、开源项目必备组件

部署 Umami 需以下技术栈支持:

  1. 数据库

    • PostgreSQL(≥ v12):主推选择,性能稳定。

    • MySQL(≥ 8.0)或 SQLite(仅适合轻量测试)。

  2. Node.js 环境

    • 需 Node.js v16 或更高版本

  3. Web 服务器

    • 前端:React (Next.js) 构建的 SPA。

    • 后端:Node.js (Express) API 服务。

  4. 环境变量

    • 必须配置 DATABASE_URL(数据库连接串)、HASH_SALT(加密盐值)。

    • 可选:APP_PORTCLOUD_MODE(禁用注册)等。

隐私特性:无 Cookie 横幅(符合 GDPR)、IP 匿名化、禁用用户指纹追踪。


三、部署方式详解

1. 一键托管方案(最快入门)

  • Vercel
    Deploy with Vercel

    • 免费计划可用,自动关联 GitHub 仓库。

    • 需配置 PostgreSQL 数据库(如 Supabase/Aiven)。

  • Railway
    Deploy on Railway

    • 提供 PostgreSQL + Umami 一站式部署。

2. 自托管方案(推荐生产环境)

Docker 部署(首选)
# 创建 docker-compose.yml
version: '3'
services:
  umami:
    image: ghcr.io/umami-software/umami:postgresql-latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://umami:password@db:5432/umami
      HASH_SALT: your-random-salt
    depends_on:
      - db
  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: password
    volumes:
      - umami-db-data:/var/lib/postgresql/data
volumes:
  umami-db-data:

运行:docker-compose up -d

手动部署(Node.js 环境)
# 克隆仓库
git clone https://github.com/umami-software/umami.git
cd umami

# 安装依赖
npm install

# 创建 .env 文件(配置数据库等参数)
echo "DATABASE_URL=postgresql://user:pass@localhost:5432/umami" >> .env
echo "HASH_SALT=your-salt" >> .env

# 构建并启动
npm run build
npm start

3. Kubernetes 部署(企业级)

# umami-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: umami
spec:
  replicas: 2
  template:
    spec:
      containers:
        - name: umami
          image: ghcr.io/umami-software/umami:postgresql-latest
          env:
            - name: DATABASE_URL
              value: "postgresql://user:pass@postgres-service:5432/umami"
            - name: HASH_SALT
              valueFrom:
                secretKeyRef:
                  name: umami-secrets
                  key: hash-salt
---
# 需独立部署 PostgreSQL StatefulSet 及 Secret

四、高级配置与集成

  1. 反向代理(Nginx):  

    server {
      listen 80;
      server_name analytics.yourdomain.com;
      location / {
         proxy_pass http://localhost:3000;
         proxy_set_header Host $host;
      }
    }
  2. 数据收集脚本:  

    <script 
      async 
      src="https://analytics.yourdomain.com/script.js" 
      data-website-id="YOUR_WEBSITE_UUID"
    ></script>
  3. 多站点管理

    • 在 Umami 控制台添加多个 website_id,为不同站点生成独立脚本。


五、常见问题与优化

  • 数据持久化:Docker 部署务必挂载 PostgreSQL 卷,避免重启丢失数据。

  • 性能瓶颈:超过 10 万条记录建议启用数据库索引优化。

  • 安全加固

    • 通过 CLOUD_MODE=1 禁用用户注册(仅管理员可添加账号)。

    • 定期更新镜像版本(GitHub Releases)。

  • 备份策略:定时导出 PostgreSQL 数据(pg_dump)或启用云数据库自动备份。


六、替代方案对比

工具隐私合规部署复杂度实时性成本
Umami免费+自托管
Google AnalyticsSaaS免费(受限)
Plausible低(SaaS)付费
Matomo自托管/付费

💡 结论:Umami 是注重隐私、追求轻量化且具备完全控制权的理想选择,适合技术团队自建分析平台。

部署后可通过 http://your-server:3000 访问控制台(默认账号:admin / umami)。