Umami (这名字起的小编很无语,猜测是骂谷歌~) 是一款开源的网站访问统计分析工具,简单易用、轻量级、可以自托管,无需 Cookie,不跟踪用户,符合 GDPR,匿名处理所有收集的数据,统计包括了来源国家,来源域名,使用的浏览器、系统、设备,访问等。被称为 Google Analytics 的精简版,资源占用很低。项目基于MIT协议,在GitHub上已获得 17.5k stars。
功能特性
- 基于 MIT 协议开源
- 自主托管、数据精简、界面简洁
- 无需 Cookie
- 界面简单,操作容易,所有数据一目了然
- 所有数据都是匿名,尊重数据隐私
- 硬件配置要求低
- 实时查看网站流量。查看访问者登录的确切页面
- 只分析关心的重要指标,所有内容轻松访问
- 获取有关访问者的详细信息,包括浏览器、操作系统和设备等
- 可捕获网站上的任何事件,如按钮点击和表单输入
- 内置报告功能,可深入了解数据
- 支持过滤器深入挖掘数据。可根据浏览器、操作系统和国家等指标对用户进行细分
🐞 源码安装
前提准备
- Nodejs 16.13+
- MySQL 或 PostgreSQL
- 安装 yarn
npm install -g yarn
1、git clone 源码到本地服务器
git clone https://github.com/umami-software/umami.git
cd umami
2、安装依赖新建文件 .yarnrc(或者.npmrc文件)设置国内镜像,防止依赖包安装失败。
内容如下:
registry "https://registry.npm.taobao.org"
sass_binary_site "https://npm.taobao.org/mirrors/node-sass/"
phantomjs_cdnurl "http://cnpmjs.org/downloads"
electron_mirror "https://npm.taobao.org/mirrors/electron/"
sqlite3_binary_host_mirror "https://foxgis.oss-cn-shanghai.aliyuncs.com/"
profiler_binary_host_mirror "https://npm.taobao.org/mirrors/node-inspector/"
chromedriver_cdnurl "https://cdn.npm.taobao.org/dist/chromedriver"
sharp_binary_host "https://npm.taobao.org/mirrors/sharp"
sharp_libvips_binary_host "https://npm.taobao.org/mirrors/sharp-libvips"
yarn install
4、新建数据库这里小编使用 mysql,自建数据库名称为 mydb
5、创建配置文件
创建一个 .env 文件,配置数据库连接:
DATABASE_URL={connection-url}
数据库连接connection-url的格式参考如下:
postgresql://username:mypassword@localhost:5432/mydb
mysql://username:mypassword@localhost:3306/mydb
6、构建
yarn build
7、启动
yarn start
浏览器访问:http://localhost:3000
Umami 占用资源小,基于Node.js开发,需要Node.js环境。不过,推荐使用 Docker 安装 Umami,搭配 Nginx,在VPS主机上运行非常简单。接下来我们演示下如何使用Docker部署:
🐞 Docker 部署安装
1、创建文件夹 umami
mkdir umami
cd umami
2、创建 docker-compose.yml
文件如果拉取镜像失败,可能是被墙了。① 有条件的直接开梯子② 没有梯子的将ghcr.io
域名改为docker
---
version: '3'
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3000: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:
3、启动
docker compose up -d
在浏览器访问:http://localhost:3000默认账号:admin默认密码:umami
暂无评论内容