站点图标 Lee's Blog

使用umami分析网站流量

1.安装须知

我安装采用Docker-compose安装,因此主机需要有docker以及docker-compose,另外,由于是使用镜像,因此umami的域名必须是根,也就是”/”,简单说就是访问umami的域名必须是”http(s)://域名:端口号/”,端口号后面无法加其他路径,比如想使用”https://域名/umami”是不可以的,因为后缀是需要在build过程中提供的,通过docker的环境变量想传进容器是不行的,因为在官方的Dockerfile里已经写死了。如果非要用的话有两种方法:1.自己修改Dockerfile,然后生成镜像。2.不适用Docker直接在本机用Node.js安装,由于必须使用数据库,因此更加麻烦。我建议的方案就是使用子域,在nginx中新建一个name近行单独配置,或者再买个便宜域名。

2.安装

安装可以参考官方文档:Docs: Installation – Umami

可惜没详细步骤。我是去GitHub中找docker-compose.yml文件自己修改的。

官方的docker-compose:umami/docker-compose.yml at master · umami-software/umami · GitHub

---
version: '3'
services:
  umami:
    image: ghcr.io/umami-software/umami:postgresql-v2.11.2
    ports:
      - "53000: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
#    healthcheck:
#      test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
#      interval: 5s
#      timeout: 5s
#      retries: 5
  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:

我修改的地方有:

1.umami的版本,官方默认标签是latest,我习惯写上版本号,以供未来升级使用,文件中的版本号实际就是当下最新版。

2.端口号进行了修改,53000是容器外端口,可根据需求修改。

3.注释掉的那些内容是docker自带的检测健康度用来控制安装顺序的,我都注释掉直接安装即可。

4.第28行,数据库官方是用的生成一个容器自己的卷,我是为了未来升级或者备份方便直接做的路径映射。

确认配置后安装即可。docker-compose up -d

安装完成后输入对应域名访问即可

3.配置nginx文件

server {
        listen       443 ssl;
        server_name  umami.xxx.com;       
        #证书
        ssl_certificate      /root/.acme.sh/umami.xxx.com_ecc/umami.xxx.com.cer;
        ssl_certificate_key  /root/.acme.sh/umami.xxx.com_ecc/umami.xxx.com.key;
        location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $host;
            proxy_pass http://127.0.0.1:53000/;
          }        
    }

关于证书申请可以参考我另一篇文章:

http://185.239.224.99/linux%e4%bd%bf%e7%94%a8acme%e7%94%b3%e8%af%b7%e8%af%81%e4%b9%a6/

参考文章:

Umami Docker 部署及优化 · 大大的小蜗牛 (eallion.com)

退出移动版