Umami 是一个简单、易于使用、自托管的网络分析解决方案。目标是为您提供一个更友好、更注重隐私的 Google Analytics 替代方案,以及一个免费、开源的付费解决方案替代方案。

其实之前用过谷歌家的 Google Analytics ,功能还是很强大的,不过终归还是墙外的用起来稍稍麻烦,挂上网站后,基本就没看过几次,偶尔网站发现易用性问题发送邮件的时候才会看一眼,不过几个破站都没什么流量,属实没什么好看的,umami 是在少数派文章里看到的,界面简洁,第一眼就很喜欢,决定搭建一个玩玩,纯粹抱着尝鲜的态度搭建……

少数派文章方案是 Vercel 静态站点托管服务 + PostgreSQL 数据库服务商 Supabase,组建的白嫖系统 ,写的也比较详细。不过我还是喜欢在自己的服务器上搭建,起码我可以保证他没那么容易挂掉。 本篇文章简单讲讲 宝塔面板搭建umami

准备工作

打开宝塔面板手动新建一个数据库,我是以 umami 作为库名和用户名。

安装 PM2管理器 ,umami 需要用的 node.js 。

开始搭建

获取源代码并安装包

打开终端,连接上你的服务器,我是在 root 目录下直接搭建的,所以直接复制粘贴下面命令就行了。

git clone https://github.com/mikecao/umami.git
cd umami
npm install

创建数据库表

MySQL 方法:

mysql -u username -p databasename < sql/schema.mysql.sql

PostgreSQL 方法:

psql -h hostname -U username -d databasename -f sql/schema.postgresql.sql

其中 usernamedatabasename 分别替换为上面准备中创建的数据库 用户名数据库名

然后根据命令行提示 输入数据库密码

手动创建 .env 文件

/root/umami 路径下创建一个名为 .env 的文件,内容如下。

DATABASE_URL=mysql://umami:123456@localhost:3306/umami
HASH_SALT=yuchangye

其中,第一行第一个 umami 为数据库用户名。123456 为数据库密码,第二个 umami 为数据库名。

第二行 yuchangye 为自定义字段,随便打。

生成数据库客户端

npm run build-mysql-client

运行 build

npm run build

运行程序

通常使用 npm start 就可以直接启动,但是退出 ssh 之后就直接停止运行了,可以使用 pm2 来让程序一直运行。

cd umami
pm2 start npm --name umami -- start
pm2 startup
pm2 save

进入 umami 后台

访问地址:http://服务器ip地址:3000

默认用户名 admin 密码 umami

添加网站

填好名字和域名,勾选 启用共享连接 可以单独生成一个链接查看当前域名下的访问统计页面,无权限,仅浏览。

然后把跟踪代码填到你监控网站的 header 下,添加完刷新下被监控网站,再回到 umami 刷新下数据,看到访问增加就说明成功了。

报错处理

登陆时提示 Internal Server Error 多半是数据库问题,仔细看看 .env 文件填的正确不正确。

包括命令窗口以下报错,都属于 .env 文件没有填写正确引起的报错。

域名访问方式

域名处 反向代理 如图填写,打码地方为你的服务器 IP地址

链接

umami 官方网站

umami 官方文档

本博客访问数据概览页面

来用 Umami 自建统计工具吧!