Umami
项目简介
Umami 是一个开源的轻量网站统计分析工具。
官方网站:https://umami.isopen in new window
官方文档:https://umami.is/docsopen in new window
开源地址:https://github.com/umami-software/umamiopen in new window
项目特点
- 简单分析 Umami 只测量你关心的重要指标:网页浏览量、使用的设备以及访问者的来源。这些数据都在一个易于浏览的页面上展示。
- 不限网站数量 Umami 通过一次安装就可以跟踪无限数量的网站,甚至还可以跟踪子域名和单个的 URL。
- 绕过广告拦截器 Umami 由你在自己进行托管部署,所以你可以有效地避免 Google Analytics 不同的广告拦截器。
- 轻量级 追踪脚本很小(只有 2KB),而且支持 IE 等旧版浏览器。
- 多账户 Umami 可用于为朋友或客户托管数据,只需创建一个单独的账号,他们就可以开始在自己的仪表板上跟踪自己的网站。
- 共享数据 如果你想公开分享你的统计数据,那么你可以使用一个唯一生成的 URL 进行共享。
- 移动端友好 Umami 界面已针对移动设备进行了优化,因此你可以从任何地方查看你的统计数据。
- 数据所有权 由于 Umami 是自托管的,因此你拥有所有数据。无需将你的数据交给第三方进行利用。
- 注重隐私 Umami 不收集任何个人身份信息,并对收集的所有数据进行匿名处理。
- 开源 Umami 是开源的,并采用 MIT 的开源协议。
Docker部署
准备条件
- 安装Docker和docker-compose
- 将域名解析到云主机
- 开放Docker映射的端口
Docker部署
- 在站点或者任意目录创建
docker-compose.yaml
文件 - 运行部署命令
docker-compose up -d
- 登录部署的域名,默认用户名:admin 密码:umami
文件配置
docker-compose.yaml
文件配置:
version: '3'
services:
umami:
image: docker.umami.dev/umami-software/umami:postgresql-latest
ports:
- "56000:3000" #只需要修改此处的映射端口
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: replace-me-with-a-random-string
TRACKER_SCRIPT_NAME: random-string.js
depends_on:
- db
restart: always
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: umami
volumes:
- ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
- ./umami-db-data:/var/lib/postgresql/data
restart: always
volumes:
umami-db-data:
配置说明
- 将
"56000:3000"
中的56000
修改为你的站点映射端口 - 注意在安全组开放对应的映射端口
使用教程
添加网站
设置中文界面
登录umami
站点,点击右上方图标,选择语言为中文
Alt text
添加网站
进入设置-添加站点
输入站点名称和域名
添加跟踪代码
跟踪代码
umami
通过跟踪代码对目标网站进行统计,所以需要在目标站点的head
部分加入跟踪代码。
添加教程
进入站点设置
找到站点跟踪代码
在对应的站点系统head
部分加入站点代码即可进行站点统计。
示例
WordPress站点
WordPress站点添加跟踪代码
示例1
登录站点后台,编辑主题文件
,找到header.php
,在head
部分的最后一段,加入跟踪代码
,保存修改
如图:
示例2
部分主题,支持直接添加自定义header
代码,找到对应的设置,添加跟踪代码
,保存
如图:
Alist站点
Alist站点添加跟踪代码
登录Alist
后台,找到设置
-全局
-自定义头部
。
添加跟踪代码
如图:
VuePress站点
VuePress站点添加跟踪代码
修改VuePress项目下的文件
src/.vuepress/config.ts
添加跟踪代码
// Umami 跟踪代码
head: [
['script', { async: true, src: 'https://umami.xxx.com/random-string.js', 'data-website-id': '702f98a8-de52-4298-8f6b-ab6520b2fa9c' }]
完整的示例:
import { defineUserConfig } from "vuepress";
import theme from "./theme.js";
import { searchProPlugin } from "vuepress-plugin-search-pro";
import { componentsPlugin } from "vuepress-plugin-components";
export default defineUserConfig({
base: "/",
lang: "zh-CN",
title: "",
description: "五六零网校知识库",
theme,
// 插件设置
plugins: [
searchProPlugin({
// 索引全部内容
indexContent: true,
// 为分类和标签添加索引
customFields: [
{
getter: (page) => page.frontmatter.category,
formatter: "分类:$content",
},
{
getter: (page) => page.frontmatter.tag,
formatter: "标签:$content",
},
],
}),
componentsPlugin({
components: [
"ArtPlayer",
"AudioPlayer",
"Badge",
"BiliBili",
"CodePen",
"FontIcon",
"PDF",
"Replit",
"Share",
"SiteInfo",
"StackBlitz",
"VPBanner",
"VPCard",
"VidStack",
"VideoPlayer",
"XiGua",
"YouTube",
],
// Enable it with pwa
// shouldPrefetch: false,
}),
],
// Umami 跟踪代码
head: [
['script', { async: true, src: 'https://umami.xxx.com/random-string.js', 'data-website-id': '702f98a8-de52-4298-8f6b-ab6520b2fa9c' }]
],
});