docker搭建umami
介绍
在众多的分析工具中,有google analyze、baidu analyze、51La等,为什么选择umami呢,原因在于umami可以用于自由部署、网站数据追踪、埋点等,数据可以掌握在自己手中,或者说灵活度更高,可以接入个人站点中展示网站访问情况。
umami优点:
- 简单分析 Umami 只测量你关心的重要指标:网页浏览量、使用的设备以及访问者的来源。这些数据都在一个易于浏览的页面上展示。
- 不限网站数量 Umami 通过一次安装就可以跟踪无限数量的网站,甚至还可以跟踪子域名和单个的 URL。
- 绕过广告拦截器 Umami 由你在自己进行托管部署,所以你可以有效地避免 Google Analytics 不同的广告拦截器。
- 轻量级 追踪脚本很小(只有 2KB),而且支持 IE 等旧版浏览器。
- 多账户 Umami 可用于为朋友或客户托管数据,只需创建一个单独的账号,他们就可以开始在自己的仪表板上跟踪自己的网站。
- 共享数据 如果你想公开分享你的统计数据,那么你可以使用一个唯一生成的 URL 进行共享。
- 移动端友好 Umami 界面已针对移动设备进行了优化,因此你可以从任何地方查看你的统计数据。
- 数据所有权 由于 Umami 是自托管的,因此你拥有所有数据。无需将你的数据交给第三方进行利用。
- 注重隐私 Umami 不收集任何个人身份信息,并对收集的所有数据进行匿名处理。
- 开源 Umami 是开源的,并采用 MIT 的开源协议。
前提
一台云服务器、配置有反向代理
云服务器安装docker、docker-compose
云服务器对应的防火墙(规则)端口开放
国内服务器需要自行配置镜像源地址
docker版本:Docker version 27.3.1, build ce12230
Linux版本:Linux lavm-2uq9wpz749 5.14.0-70.13.1.el9_0.x86_64 #1 SMP PREEMPT Wed May 25 21:01:57 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
umami版本:2.14.0 (目前是最新版)
官方网站:https://umami.is/
官方文档:https://umami.is/docs/
开源地址:https://github.com/umami-software/umami
演示地址: https://app.umami.is/share/8rmHaheU/umami.is
docker镜像查看:
https://github.com/umami-software/umami/pkgs/container/umami
https://hub.docker.com/r/umamisoftware/umami/tags
umami安装及配置
先熟悉不同docker-compose配置,如果你有docker基础,使用起来那是非常方便。如果不是,那就需要先了解docker的使用了。
这里使用最新docker compose命令,不再使用docker-compose命令
1.数据库选择(二选一)
mysql用于存储
文件名:docker-compose-umami.yml
以下是文件内容
version: '3'
services:
umami:
image: docker.umami.is/umami-software/umami:mysql-latest
container_name: umami-latest-v
ports:
- "3010:3000"
environment:
DATABASE_URL: mysql://umami-u:123456-u@umami-mysql:3306/umami
DATABASE_TYPE: mysql
APP_SECRET: replace-me-with-a-random-string
depends_on:
- umami-db
restart: always
umami-db:
image: mysql:8.0.20
container_name: umami-mysql
command: --default-authentication-plugin=mysql_native_password
environment:
TZ: Asia/Shanghai
MYSQL_DATABASE: umami
MYSQL_ROOT_PASSWORD: 123456-a
MYSQL_USER: umami-u
MYSQL_PASSWORD: 123456-u
ports:
- "3307:3306"
volumes:
# 挂载数据目录
- ./umami-mysql-data:/var/lib/mysql
restart: always
mysql://umami-u:123456-u@umami-mysql:3306/umami
mysql://数据库用户名:数据库密码@数据库容器名称:端口/数据库名
MYSQL_DATABASE: 数据库名
MYSQL_ROOT_PASSWORD: root用户密码
MYSQL_USER: 普通用户的用户名
MYSQL_PASSWORD: 普通用户的用户名对应的密码这里只有普通用户进行连接数据库
postgresql用于存储
文件名:docker-compose-umami.yml
以下是文件内容
version: '3'
services:
umami:
image: docker.umami.is/umami-software/umami:postgresql-latest
ports:
- "3010:3000"
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: replace-me-with-a-random-string
depends_on:
- db
restart: always
db:
image: postgres:12.22
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: umami
volumes:
- ./umami-db-data:/var/lib/postgresql/data
restart: always
postgresql://umami:umami@db:5432/umami
postgresql://用户名:密码@默认连接名称:5432/数据库名
POSTGRES_DB: 数据库名
POSTGRES_USER: 用户名
POSTGRES_PASSWORD: 密码注意:在老的教程中可能会有这个条// - ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro 现在不需要了
原因是在新版本中已经不需要初始化sql了,在源代码中已经处理了。
//- ./umami-db-data:/var/lib/postgresql/data
这个表示将本地文件系统中的某个目录(
./umami-db-data
)挂载到 Docker 容器中/var/lib/postgresql/data的目录,这样做的目的是以便在容器中持久化数据,数据卷可以使数据在容器停止或删除后保留,确保数据不丢失。
2.操作
2.1.创建目录:
mkdir -p /root/docker-compose/umami
mkdir -p /root/docker-compose/umami/umami-mysql-data
mkdir -p /root/docker-compose/umami/umami-db-data
2.2.在目录下创建docker-compose.yml文件
docker-compose.yml文件在/root/docker-compose/umami目录下创建
在数据选择中选择其中一个配置即可
2.3. 启动docker compose
在/root/docker-compose/umami目录下执行以下命令
启动:
docker compose -f docker-compose-umami.yml up -d
为什么使用自定义的docker-compose-umami.yml名称呢
1.为了方便后续增加其他docker-compose文件
2.docker compose 默认配置是docker-compose.yml,通过docker-compose up -d即可启动
3.自定docker compose配置,定制化需求更好,比如umami提供的两种数据库,不想修改配置,可以这样:
docker-compose-umami-mysql.yml 用于填写mysql配置内容
docker-compose-umami-postgresql.yml 用于填写postgresql配置内容
关闭删除容器
docker compose -f docker-compose-umami.yml down
更新容器镜像
docker compose -f docker-compose-umami.yml pull
拉取docker-compose-umami服务的最新镜像
访问umami
在没有使用方向代理,则直接通过ip地址加端口即可访问
默认账号是:admin
密码:umami
地址:http://11x.xx.xx.53:3010
附录
为什么使用docker compose而不使用docker-compose
对于新用户和新的项目,推荐使用 docker compose,因为它是最新的命令集并且集成更好
注意:
docker.umami.is/umami-software/umami:postgresql-latest镜像可能在国内服务器中可能拉下来非常慢,可以选择阿里云提供的镜像服务,将docker hub镜像同步到阿里云镜像仓库中,然后再在服务器中使用对应的地址拉取umami:postgresql-latest或umami:mysql-latest
参考:
https://blog.amarea.cn/archives/use-docker-deploy-umami-analytics.html
https://www.zywvvd.com/notes/tools/umami/umami/
https://blog.laoda.de/archives/umami?cid=3913