Umami 是 Google Analytics 的简单、快速、注重隐私的替代方案
官方GitHub地址:https://github.com/umami-software/umami
官方docker镜像地址: https://docker.umami.dev/umami-software/umami:postgresql-latest
UMAMI 基于Node.js 开发,并且支持 MySQL 或 Postgresql 等数据库存储方式,可以将数据掌握在自己手中。并且 UMAMI 还提供了非常详细的流量分析可视化的界面,UI 体验以及统计准确度十分不错。UMAMI目前还可以防止被广告屏蔽插件等等屏蔽,统计精准度大。
官方文档:详细的入门指南可以在https://umami.is/docs/找到
要求:
- 具有 Node.js 版本 12 或更高版本的服务器
- Umami 支持 MySQL 和 Postgresql 数据库。
在 Ubuntu 上安装 Node.js 并将 npm 更新到最新版本
安装Node.js
NodeSource 将继续维护以下架构,并可能在将来添加其他架构。
- amd64(64 位)
- armhf(ARM 32 位硬浮点、ARMv7 及更高版本:arm-linux-gnueabihf)
- arm64(ARM 64 位、ARMv8 及更高版本:aarch64-linux-gnu)
Node项目网站:https://github.com/nodesource/distributions
更新系统
sudo apt update && sudo apt upgrade
安装依赖
sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y
Node.js v21.x
通过NodeSource提供的官方包安装 自带最新npm
Node.js目前有三个版本,Node.js 18.x 、Node.js 20.x、Node.js 21.x
以下是 Node.js 20.x的安装,一行代码搞定。&&\ 的意思是前面的命令执行无误后,再执行后面代码
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\ sudo apt-get install -y nodejs
使用root身份安装
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - &&\ apt-get install -y nodejs
如果安装其它版本,只需将上面命令中的setup_20.x换成所需安装的版本即可。
Node官网下载地址:https://nodejs.org/en/download/
还有另外一种方法,直接在ubuntu上使用apt安装Node
sudo apt update sudo apt install nodejs #不自带 npm 需要自行安装 sudo apt install npm # 升级 npm sudo npm install npm -g #使用 n Node版本管理工具升级到 最新版 sudo npm install n -g # 下载最新稳定版 sudo n stable # 下载最新版 sudo n lastest # 查看已下载的版本 sudo n ls # 切换 Node 版本 sudo n 18.21.1
卸载nodejs Ubuntu 和 Debian 软件包
apt-get purge nodejs &&\ rm -rf /etc/apt/sources.list.d/nodesource.list &&\ rm -rf /etc/apt/keyrings/nodesource.gpg
安装Yarn
因为该项目使用Yarn进行编译,所以我们要安装一下Yarn。
npm install -g yarn
新建MySQL数据库
这里我们使用的是MySQL,在数据库中新建一个空数据库
使用phpmyadmin,在服务器上创建一个Umami的空数据库
或者在服务器上直接创建:
mysql -u root -p umami < sql/schema.mysql.sql
安装Umami
下载安装Umami
自定义下载到/home/umami目录,你也可以放在其他目录。
cd /home/ #git拉取umami git clone https://github.com/umami-software/umami.git #进入umami目录 cd umami #安装 yarn install
耐心等待,安装完毕后,需要配置.env 文件
配置 .env 文件
在 umami 文件夹中新建一个名为 .env 的文件。
使用touch命令新建.env文件,或者直接使用vim命令新建.env文件
vi .env
注意.env文件创建完毕后,在目录下是查看不到的,.env是隐藏文件,可以使用vi直接编辑。
编辑.env文件输入以下配置保存即可:
DATABASE_URL=mysql://用户名:密码@localhost:3306/数据库名称 APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/ DISABLE_TELEMETRY=1 TRACKER_SCRIPT_NAME=custom
- DATABASE_URL:按说明填写我们之前配置的数据库参数即可。
- HASH_SALT:填写随机字符即可,加密用。
- TRACKER_SCRIPT_NAME:统计链接的自定义js文件名称,你喜欢什么名字就输入什么,不要用中文,后面也不用加.js。
两种数据库的链接方式示例
postgresql://username:mypassword@localhost:5432/mydb mysql://username:mypassword@localhost:3306/mydb
编译 Umami
yarn build
等他执行完即可。
如果遇到无法连接数据库的错误
$ node scripts/check-db.js
✓ DATABASE_URL is defined.
✗ Unable to connect to the database.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ERROR: “check-db” exited with 1.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
将localhost修改为127.0.0.1
DATABASE_URL=mysql://用户名:密码@127.0.0.1:3306/数据库名称 APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/ DISABLE_TELEMETRY=1 TRACKER_SCRIPT_NAME=custom
卸载Umami
如果在安装过程中出现一些不可逆的操作,可以卸载掉Umami再重新安装,删除掉Umami的安装目录即可
rm -rf /home/umami reboot
启动应用程序
通常使用yarn start
就可以直接启动,但是退出ssh之后就直接停止运行了,所以需要用一些工具保证后台运行,官方文档中的推荐是安装PM2管理器。
npm install pm2 -g sudo yarn global add pm2 cd /home/umami pm2 start npm --name umami -- start pm2 startup pm2 save
如果没显示什么错误即安装成功,测试本机http://127.0.0.1:3000打开是否正常。
curl http://127.0.0.1:3000
查看一下有没有数据输出。
查看3000端口当前状态,如果3000端口没有占用,那么umami应该是没有启动起来。
lsof -i:3000
使用你的服务器IP+端口,在浏览器中打开Umami
使用系统默认的用户名和密码进行登录
- 用户名:admin
- 密码:umami
页面很简洁大方,快去设置你的网站统计吧!添加网站后获取代码就可以进行统计了!
记得在个人资料里更改密码,密码设置复杂一些!
PM2卸载
#禁止开机启动PM2 pm2 unstartup #杀死守护程序 pm2 kill #卸载 npm remove pm2 -g #删除所有保存的配置和日志 rm -rf ~/.pm2
最后,删除完成后,进入 /usr/local/lib/node_modules/ 下面查看是否有pm2文件夹,如果有的话直接删除即可。
OpenLiteSpeed做反向代理服务器
在OpenLiteSpeed中新建一个虚拟主机,然后进入到此主机中新建外部应用程序 , 类型选择 网络服务器, 名称写tongji
, 地址就写 127.0.0.1 :3000, 可以写公网IP:3000
然后创建一个资源集,类型选择 Proxy, URI设置为 /
注意:网络服务器选择之前创建的tongji,其它设置填写最大。
重写规则, 因为 前后端域名不一样, 所以要用 伪静态规则把域名也传递到后端, 否则后端会拒绝连接, 前端直接返回403或者500错误。
RewriteRule ^/(.*)$ http://tongji/$1 [P,E=Proxy-Host:xxx.com]
配置中文
我们登陆后台后,可能默认是英文,该面板自带简体中文。打开Settings–>Profile–>Language选择中文即可。
升级更新umami
关于umami有更新,先暂停pm2然后执行以下代码更新后再运行:
pm2 stop umami #进入umami文件目录 cd /home/umami git pull yarn install yarn build
到这里umami搭建就正式结束了。其余配置都很简单,我们只需要根据umami面板提示的操作进行即可,有不懂的欢迎评论区留言交流。
参考文章:https://www.howtoforge.com/how-to-install-umami-analytics-on-debian-12/