网站统计——利用开源的网站流量分析统计工具

前言

github: umami仓库
umami: umami官网
demo: umami演示
机器配置: 轻量服务器(2C1G SSD 40GB)

内容

docker方式安装

通过docker方式安装 | 如果是需要调用一些api接口建议使用原生态;

docker安装

# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# systemctl start docker
# systemctl enable docker

docker-compose安装

# curl -L "https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# docker-compose --version

docker-compose.yml

---
version: '3'
services:
umami:
image: ghcr.io/mikecao/umami:postgresql-latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
DATABASE_TYPE: postgresql
HASH_SALT: replace-me-with-a-random-string
depends_on:
- db
restart: always
db:
image: postgres:12-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:

启动

# docker-compose up -d && docker-compose logs -f

原生态方式

这个是为了配合博皮使用,因为要调两个接口需要改下代码,正常使用推荐直接docker启动,不用看这块代码

克隆

git clone https://github.com/umami-software/umami.git

配置.env文件

!> 请确保这块配置且可连接成功再进行下一步操作

# cd umami/
# vi .env
# DATABASE_URL=mysql://<username>:<password>@127.0.0.1:3306/<databaseName>
// 示例 || 你也可以选择直接使用root账户
DATABASE_URL=mysql://umami:umamipassword@127.0.0.1:3306/umami

修改代码

?> 我是直接将认证那块注释了

# pages/api/website/[id]/stats.js
# pages/api/website/[id]/active.js

编译项目

# yarn install
# yarn build
# yarn update-db

PM2

帮助命令 | pm2 --help

# npm install -g pm2
# pm2 start yarn --name umami -- start
# pm2 startup
# pm2 save

配置Nginx

这块是只针对源码启动的配置

location / {
proxy_pass http://localhost:3000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
proxy_pass http://localhost:3000;
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
proxy_pass http://localhost:3000;
expires 7d;
access_log off;
}
location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|LICENSE|README\.md) {
deny all;
}

!> 如果涉及到需要请求一些API,获取数据,比如我这边集成到博皮,那就还需要对nginx增加以下配置

location ~* api/share {
## 如果是自己站点使用,这块建议使用自己域名通配符而不是*
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET,POST,PUT,DELETE,PATCH,OPTIONS';
add_header Access-Control-Allow-Headers "DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-umami-share-token";
if ($request_method = 'OPTIONS') {
return 204;
}
proxy_pass http://localhost:3000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~* api/website/.*/active {
if ($request_method = 'OPTIONS') {
return 204;
}
proxy_pass http://localhost:3000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

访问

默认账户/密码: admin/umami

配置

验证

posted @   。思索  阅读(518)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示