Umami - 自建网站访问量统计系统
由于站点较多,而且为了保护隐私,比较抵触使用 CNZZ 或 GOOGLE 等第三方的访问量统计系统。最近发现了一个统计网站访问量的工具。也使用了一段时间,现在将搭建教程分享出来:
项目介绍
项目地址:Umami
UMAMI 基于Node.js 开发,并且支持 MySQL 或 Postgresql 等数据库存储方式,可以将数据掌握在自己手中。并且 UMAMI 还提供了非常详细的流量分析可视化的界面,UI 体验以及统计准确度十分不错(此处所讲统计精准度为实际真是访客的访问量,有可能一天只有1-2请做好心理准备。)
官方文档:Umami Docs
环境需求
由于 Umami 基于Node.js 开发,采用 MySQL 或 Postgresql 数据库存储数据,所以配置要求如下:
- Node.js 14.18 或更高的版本
- 服务器上安装了 MySQL 5.7 或以上 或 Postgresql 12.14 或以上
2022-7-22 更新:今天更新 umami 时,发现更换了 umami 构建安装方式,遂更新一波,可能配图不正确,但步骤基本一致。
2023-5-3更新:更新了一下 Node.js 的版本,以及文章上的一些错误。
2023-8-21更新:程序守护更改为 PM2 管理,进而放弃 systemctl ,其在我这次将服务迁移到国内服务器内出现了很大的问题,以及文章上的一些错误。
2024-2-8更新:更新了Node.js 的版本,以及文章上的一些错误。
环境配置
本文基于宝塔面板,使用 MySQL 进行安装
安装配置 Node.js
此处 MySQL 安装方式此处不再进行演示,如您已安装 Node.js 并且配置成功,则此步可以跳过。
安装 Node.js 命令如下
1 | cd /www/server/nodejs |
设置 Node.js 全局变量:
在宝塔面板打开 /etc/profile 文件,将以下配置输入文件最后面,并保存
1 | export NODE_HOME=/www/server/nodejs/node-v21.6.0-linux-x64 |
输入以下命令用于重载全局配置。
1 | source /etc/profile |
输入 node -v 和 npm -v 返回以下信息即配置完成

配置成功
安装 Yarn
1 | npm install -g yarn |
查看版本信息,如遇 yarn:未找到命令,请看:《NodeJS 和 npm 配置全局变量》

国内服务器此步骤由于 Node.js 没有大陆节点,速度较慢。请耐心等待
部署 Umami
克隆仓库
1 | cd /www/wwwroot |

安装依赖
国内服务器此步骤由于 Node.js 没有大陆节点,速度较慢。请耐心等待
千万不要使用淘宝的 registry 镜像源!!!!!!!!
否则安装依赖会出错!!!!!!!!
1 | cd umami |

依赖安装完成
配置数据库
创建数据库:打开宝塔面板,点击左侧 数据库->添加数据库。输入数据库相关信息即可。

配置 .env 文件
在 umami 文件夹中新建一个名为 .env 的文件

文件具体配置如下:
1 | DATABASE_URL=mysql://用户名:密码@localhost:3306/库名 |

配置示例
构建 Umami
千万不要使用淘宝的 registry 镜像源!!!!!!!!
否则安装依赖会出错!!!!!!!!
1 | yarn build |

构建完成
导入数据库
1 | yarn update-db |
运行
1 | yarn start |

默认用户名:admin 默认密码:umami
此时即可通过 IP:3000访问网站了,但为了方便使用,还需进行以下操作
其他配置
设置程序守护,此处以 PM2 为例
打开目录 umami 安装目录
1 | #全局安装 pm2 |

设置网站反代
宝塔新建站点 -> 打开SSL - > 反向代理 ->添加反向代理
目标 URL 填写:http://127.0.0.1:3000
配置反代

配置站点
登录 Umami
默认账号:admin
默认密码:umami

添加站点,并将代码放到网站
部分来收集数据。升级配置
此时必须保证 Umami 没有正在运行,重新 拉取仓库、安装依赖、构建项目、启动即可
1 | #拉取仓库 |
后语
特别强调,无论国外源多慢都强烈要求使用国外源。在使用淘宝源时,构建会失败!!!!!!!!!!!!!
**解决了统计JS被广告拦截插件给屏蔽的问题:**https://bcon.roywang.cn/umami-js-name/
许可协议
本文由 ROYWANG 原创,采用 CC BY-NC-SA 4.0 协议。转载请注明出处。
PERMALINK
https://roy.wang/umami-nodejs-build/