Umami统计 原创
简介
Umami 是一款开源的、注重隐私的网络分析工具,可作为 Google Analytics 的替代方案。它提供对网站流量、用户行为和性能的重要洞察,同时优先考虑数据隐私。
与许多传统分析平台不同,Umami 不会收集或存储个人数据,从而避免了使用 cookie 的需求,并且符合 GDPR 和 PECR 标准。
Umami 设计轻巧且易于设置,可以自托管,让用户完全控制自己的数据。
安装
有几种不同的方法可以安装 Umami。
- 从源代码安装:从 GitHub 获取代码并自行构建应用程序。
- 使用 Docker compose:使用构建您自己的 Docker 容器 docker compose。
- 使用 Docker 镜像:下载预先构建的
Docker 镜像
。
源代码安装
要求
- 具有 Node.js 版本 18.18 或更新版本的服务器。
- 数据库:Umami 支持 MySQL(最低版本 v8.0)和 PostgreSQL(最低版本 v12.14)数据库。
npm install -g yarn
git clone https://github.com/Umami-software/Umami.git
cd Umami
yarn install
配置 Umami
- 在 Umami 项目的根目录下创建一个名为
.env
的文件
.
│ ├──src
├── .env # 配置文件
├── package.json
├── README.md
├── yarn.lock
连接 url 格式如下:
提示
username
mypassword
和 mydb
替换成实际的数据库用户名
、密码
和数据库名
DATABASE_URL=postgresql://username:mypassword@localhost:5432/mydb
DATABASE_URL=mysql://username:mypassword@localhost:3306/mydb
我的配置如下:
DATABASE_URL=mysql://root:root@localhost:3306/umami
初始化数据库
- 新建 MySQL 链接
双击
umami
打开链接右键新建数据库
- 数据库名称:输入 umami
- 字符集:建议选择 utf8mb4(支持 Unicode 字符)
- 排序规则:选择 utf8mb4_general_ci
- 点击 “确定”,此时左侧列表中会出现 umami 数据库。
构建
提示
首次运行构建时,它将在数据库中创建所有必需的数据库表。它还将创建一个用户名为 admin
、密码为 umami
的登录帐户。
yarn build
启动
提示
默认情况下,这将在 上启动应用程序 http://localhost:3000。您需要 代理来自 Web 服务器的请求,或更改端口以直接为应用程序提供服务。
yarn start
重启
您可以直接运行 yarn start 来启动 Umami,但强烈建议您使用像 PM2 这样的进程管理器来为您处理重启。
要使用 PM2 运行:
yarn global add pm2
cd umami
pm2 start yarn --name umami -- start
pm2 startup
pm2 save
配置
- 点击上面菜单的设置,添加网站,输入网站名称和网址保存
添加完成后,点击编辑-跟踪代码获取页面埋点链接
将该链接添加到你网站的页面头部或者底部即可
[
"script",
{
src: "http://localhost:3000/script.js",
"data-website-id": "7a2817d2-xxxx-xxxx-xxxx-8401f59642f1",
defer: "defer",
},
],
效果
docker-compos 安装
提示
前提,你得先安装 docker-compose 。docker-compose 安装方式参考了 网站统计工具 Umami 的傻瓜安装指南~
sudo apt install docker-compose
拉取镜像
接着安装完成后进行下面操作
# 进入服务器目录 /root/下
cd /root
# 新建umami文件夹,并进入umami文件夹
mkdir umami
cd umami
# 拉取 PostgreSQL 支持的 Umami Docker 映像
docker pull ghcr.io/umami-software/umami:postgresql-latest
# 新建doker-compose.yaml文件并进行编辑
vi docker-compose.yaml
配置文件
复制粘贴以下内容,完成后按下 ESC 键,然后输入:wq 保存
提示
里面 ports 是后面进行反向代理的端口,可以自行设置
---
version: "3"
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3300:3000"
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: replace-me-with-a-random-string
depends_on:
db:
condition: service_healthy
restart: always
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: umami # 数据库名称
POSTGRES_USER: umami # 数据库用户名
POSTGRES_PASSWORD: umami # 数据库密码
volumes:
- umami-db-data:/var/lib/postgresql/data
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
volumes:
umami-db-data:
启动容器
docker-compose up -d
验证
docker-compose ps -a
# 看到下面输出表示成功
[root@VM-4-16-centos umami]# docker-compose ps -a
Name Command State Ports
--------------------------------------------------------------------------------------------------------
umami_db_1 docker-entrypoint.sh postgres Up (healthy) 5432/tcp
umami_umami_1 docker-entrypoint.sh yarn ... Up 0.0.0.0:3300->3000/tcp,:::3300->3000/tcp
- 访问 Umami
打开浏览器,访问 http://localhost:3300。 (这里用自己云服务器 ip 访问: http://云服务器公网 ip:3300) 默认管理员账号和密码: 用户名:admin 密码:umami
反向代理
注意
我的反向代理使用的是 Nginx,如果你使用的是其他的反向代理,请自行修改。路径在:/etc/nginx/conf.d/umami.conf
,以你为准
# umami.seasir.top 域名的 HTTP -> HTTPS 重定向
server {
listen 80;
listen [::]:80;
server_name umami.seasir.top;
# 配置 HTTP 到 HTTPS 的重定向
return 301 http://$host$request_uri;
}
# umami.seasir.top 域名的 HTTPS 反向代理
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name umami.seasir.top;
location / {
proxy_pass http://你的云服务器ip:3300/; # 反向代理到实际 umami 服务
include /etc/nginx/common_configs/common_proxy_params.conf; # 引入反向代理公用参数
}
}
- 配置后重启 nginx
nginx -s reload
选项
排除我自己的访问。您想访问自己的网站,但又不想让访问记录出现在您的统计数据中。为此,您需要在浏览器中添加一项设置。
在浏览器中打开开发者控制台:Settings -> More tools -> Developer tools
在控制台中,输入以下代码并点击 Enter:
localStorage.setItem('umami.disabled', 1);
此设置适用于每个网站,因此您需要对要排除的每个网站执行此操作。
要删除设置,请输入以下代码并点击 Enter:
localStorage.removeItem('umami.disabled');
拓展
- 停止 Umami 容器
cd umami
docker-compose down
- 重启容器
cd umami
docker-compose up -d
- 删除 Umami 及其数据
cd umami
docker-compose down -v
- 拉取最新镜像
cd umami
docker-compose pull
常见问题
- 为啥没有数据?
检查一下是否添加到网站,并且是否有页面埋点链接添加。可以通过 f12 搜索 umami 查看是否添加成功。如有有添加成功需要设置下反向代理