UMAMI使用nodejs编写,是一个用于替代Google Analytics等第三方统计平台,更专注于用户隐私保护的自建统计项目。

环境

这里使用两种方法去安装umami,第一种是使用pm2或者supervisor直接运行在本机环境的,第二种是使用docker pull并build镜像。
如果已经安装了宝塔,推荐直接运行在本机环境中。
需要准备的有:

  • MySQL
  • nodejs
  • npm
  • pm2(或者supervisor)

Ubuntu系列安装Nodejs、npm:

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
apt-get install -y nodejs
apt-get install -y npm

Centos系列可以直接使用yum:
yum install node npm -y
218.png
MySQL建议查看其他博客的安装及配置。

如果您选择使用docker安装,那么仅需这样的一步:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内daocloud的脚本:
curl -sSL https://get.daocloud.io/docker | sh

安装及配置

如果您需要使用docker进行安装,请直接转到docker方式章节。

安装

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

导入数据库

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

我这里就直接在PMA中执行了
219.png

配置.env

DATABASE_URL=mysql://username:mypassword@localhost:3306/databasename
HASH_SALT=随机生成

optimize&build

在umami目录下执行:npm run build即可生成编译后的工程文件
220.png

启动程序

按照官方readme说的直接npm start是可以的,默认会运行在3000,但是我们如果关闭了终端会话,也会停止运行,
所以需要使用PM2或者supervisor进行后台保活运行,当然,也可以使用nohup。
如果我们使用的是第一种本机环境运行,那么可以通过npm安装pm2:npm install pm2 -g
在umami目录下执行:

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

由于服务器上已经有宝塔和pm2管理器了,所以我并不打算使用命令行添加。

docker方式

安装

注意,如果您选择docker方式,那么您可以完成后直接跳过安装及配置这一章
首先您需要docker环境,上述步骤已经提供了脚本。
然后执行docker-compose up确保服务已经启动。
我们这里使用MySQL作为数据库后端:
docker pull ghcr.io/mikecao/umami:mysql-latest
稍微等待数十分钟即可启动,默认占用端口3000。

升级

docker-compose pull
docker-compose up --force-recreate

域名反代

在nginx.conf中的http段下添加:

server{
    server_name 你的域名;
    location / {
        proxy_pass http://127.0.0.1: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;
    }
}

或者宝塔,网站管理,反向代理
225.png
即可。

文件修改及更新

假如你按照前面的pm2运行,那么按照如下步骤

  • 执行pm2 stop umami停止其运行。
  • 切换到你的umami目录pull一份最新的代码git pull
  • 重新安装node modules npm install
  • 重新编译npm run build
  • 重新启动PM2pm2 restart umami
    根据参考博文中提到的更新失败可以执行git reset --hard

使用

首次登录

221.png
默认账号admin,密码umami
222.png

添加统计网站

223.png

获取统计代码

224.png

查看统计

由于我并没有打算立刻使用umami,使用官方的图做一个收尾吧:
226.png

参考

  • https://github.com/mikecao/umami
  • https://www.himiku.com/archives/umami.html