使用 umami 搭建私有流量统计平台

现在的流量统计平台,都是基于第三方的服务,比如 Google Analytics、百度统计、CNZZ 等。这些服务都提供了一定的优势,但是也存在一些问题。例如,这些服务都是基于云服务,所以需要付费,而且这些服务也存在一定的隐私问题。

最近网站内容重新整理后,想使用一个流量统计平台,但上面的国内常用如百度统计、CNZZ等都没有免费的可以使用的了,目前还有一个可以正常免费使用的平台 51la还可以正常免费使用。

但是,我更喜欢使用 umami 这个开源项目。使用 umami 可以在私有服务器上搭建一个流量统计平台,并且可以自己定制自己的统计页面。更加可以适应一些内网的需求。

下面我将以 umami 为例,介绍如何使用 docker 快速搭建一个私有流量统计平台。

准备工作

下面是 umami 的镜像地址,直接使用 docker pull 下载镜像即可。

1
2
3
docker pull elestio/umami:latest
# 数据库镜像
docker pull postgres:15-alpine

如果国内访问不了docker仓库,可以使用阿里云的镜像源。

1
2
3
docker pull registry.cn-hangzhou.aliyuncs.com/elestio_cn/umami:latest
# 数据库镜像
docker pull registry.cn-hangzhou.aliyuncs.com/elestio_cn/postgres:15-alpine

也可以在镜外服务器中 pull 下来再 save 到本地,下载后 load 到本地服务器中。

创建容器

下面是 docker-compose 的配置文件,可以参考。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
version: '3.3'
services:
umami:
image: elestio/umami:latest
ports:
- "172.17.0.1:3956:3000"
environment:
DATABASE_URL: postgresql://umami:${ADMIN_PASSWORD}@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: ${SECRET_KEY_BASE}
depends_on:
- db
init: true
restart: always
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: ${ADMIN_PASSWORD}
volumes:
- ./umami-db-data:/var/lib/postgresql/data
restart: always

上面的配置中,可以将变量 ADMIN_PASSWORD、SECRET_KEY_BASE 替换为实际的值。

将上面的配置文件保存为 docker-compose.yml,然后使用 docker-compose up -d 命令启动容器。

访问 umami

访问地址为 http://172.17.0.1:3956,默认用户名是 admin ,密码是上面配置文件中设置的变量值。其中 172.17.0.1 为宿主机的IP地址,3956 为端口号。

上面配置是只是一个示例,在生产环境中使用时,还需要配置域名绑定,使用nginx反向代理等。

  1. 首先可以新增网站,在设置中可以看到网站列表

umami_set.png

  1. 编辑查看页面中,可以获到流量统计的代码

umami_code.png

  1. 将统计代码插入到网站中,即可实现流量统计。再通过 umami 查看流量统计。

umami_tj.png

这样就完成了使用 umami 搭建私有流量统计平台的过程。有更多需求,可以基于其 github 项目进行二次开发。