自建umami网站统计
自建 Umami 网站统计。

前言

Umami 是一款开源的、注重隐私的网站流量统计分析工具,可以方便直观的观察到网站数据,并且不像谷歌统计过多地收集用户的隐私信息,而自建服务可以避免 Adblock 插件屏蔽导致统计不准的问题。 仓库地址如下:umani 部署所用工具:

部署

Vercel

首先 Fork Umami 的仓库,然后在 Supabase 新建一个项目,记住数据库密码,待项目新建完毕后,进入项目,依次点击 Project Settings-Database,在 Connecting string 复制 URL

Supabase
接下来在 Vercel 新建一个项目,导入 Github Fork 的仓库,添加下面的环境变量:

NAMEVALUE
DATABASE_URL复制的 URL
TRACKER_SCRIPT_NAME自定义脚本名称,如 myscript
COLLECT_API_ENDPOINT自定义 endpoint 路径,如 /api/mycol
HASH_SALT随机字符串

将复制的 url[YOUR-PASSWORD] 换位数据库的密码,并在 url 最后添加 ?pgbouncer=true,最终链接如下形式: postgres://postgres.xxxxxxxxxxxx:[YOUR-PASSWORD]@aws-0-us-east-1.pooler.supabase.com:5432/postgres?pgbouncer=true

待部署完成后须添加自定义域名,否则 Vercel 域名被墙,会无法正常使用,打开部署的网站后,默认用户名为 admin,默认密码为 umami。 添加网站后在设置-网站-跟踪代码 处复制统计代码,添加到自己网站 </body>前即可。

Supabase

Docker

docker-compose 文件如下:

 1version: '3'
 2services:
 3  umami:
 4    image: ghcr.io/umami-software/umami:postgresql-latest
 5    ports:
 6      - "3000:3000"
 7    environment:
 8      DATABASE_URL: postgresql://umami:umami@db:5432/umami
 9      DATABASE_TYPE: postgresql
10      APP_SECRET: replace-me-with-a-random-string  # 随机字符串
11    depends_on:
12      db:
13        condition: service_healthy
14    restart: always
15    healthcheck:
16      test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
17      interval: 5s
18      timeout: 5s
19      retries: 5
20  db:
21    image: postgres:15-alpine
22    environment:
23      POSTGRES_DB: umami
24      POSTGRES_USER: umami
25      POSTGRES_PASSWORD: umami
26    volumes:
27      - umami-db-data:/var/lib/postgresql/data
28    restart: always
29    healthcheck:
30      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
31      interval: 5s
32      timeout: 5s
33      retries: 5
34volumes:
35  umami-db-data:

参考


最后修改于 2024-05-06