参考资料

  1. UEditor 二次开发富文本编辑器
  2. Docker 部署 Umami 教程
  3. YAML 文件中设置 Umami 的 BASE_URL 环境变量
  4. OneNav 是一款开源的书签导航工具
  5. GoodNotes是一款专为 iPa d 和 Mac 设计的 手写笔记应用
  6. Umami 是一款注重隐私、开源且支持自托管的网站分析工具
  7. RuoYi AI 是一套基于人工智能技术的开源系统
  8. mtab书签是一款基于Web的个人书签管理工具

网站分析工具 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)。