Ubuntu搭建统计网站Umami统计

Umami 是 Google Analytics 的简单、快速、注重隐私的替代方案

官方GitHub地址:https://github.com/umami-software/umami
官方镜像地址: https://docker.umami.dev/umami-software/umami:postgresql-latest

基于 开发,并且支持 或 Postgresql 等数据库存储方式,可以将数据掌握在自己手中。并且 UMAMI 还提供了非常详细的可视化的界面,UI 体验以及统计准确度十分不错。UMAMI目前还可以防止被广告屏蔽插件等等屏蔽,统计精准度大。

官方文档:详细的入门指南可以在https://umami.is/docs/找到

自建统计网站Umami统计-1

功能
  • :Umami 可以跟踪和分析网站的访问量、页面浏览量、用户行为等指标,帮助你了解用户如何与你的网站进行交互。
  • 事件跟踪:它支持对特定事件的跟踪,例如按钮点击、表单提交、视频播放等,以便你了解用户在网站上的具体操作。
  • 用户洞察:通过Umami,你可以获取有关用户的信息,如访问频率、新用户与回访用户的比例等,从而深入了解你的用户群体。
  • 来源分析:Umami 可以追踪用户访问网站的来源,包括搜索引擎、社交媒体、直接访问等,帮助你评估营销渠道的效果。
  • 自定义报表:根据你的需求,Umami 允许你创建自定义的报表和图表,以便更好地分析和可视化数据。
  • A/B 测试支持:Umami 可以帮助你进行 A/B 测试,比较不同版本的页面或功能,以优化网站的用户体验。
  • 数据导出:你可以将数据导出为 CSV 或其他格式,以便与其他工具或分析平台进行集成和进一步分析。
特点
  • 简单易用:Umami 具有用户友好的界面和易于设置的特性,即使对于非技术人员也相对容易上手。
  • 开源免费:作为开源项目,Umami 可以免费使用,并且你可以根据自己的需求进行定制和扩展。
  • 数据隐私:Umami 注重用户数据的隐私,不会收集敏感信息或用于广告目的。
  • 轻量级:它的设计相对简洁,不会对网站的性能产生显著影响,适合中小型网站和项目。
  • 灵活定制:由于是开源的,你可以根据自己的需求对 Umami 进行二次开发和定制,以满足特定的分析要求。
  • 实时数据:Umami 提供实时数据的监测和反馈,让你能够及时了解网站的动态和用户行为。

要求:

  • 具有 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

自建统计umami统计-1

更新系统

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 v18.x

通过NodeSource提供的官方包安装 自带最新npm

Node.js目前有三个版本,Node.js 18.x 、Node.js 20.x、Node.js 21.x

以下是 Node.js 18.x的安装,一行代码搞定。&&\ 的意思是前面的命令执行无误后,再执行后面代码

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - &&\
sudo apt-get install -y nodejs

使用root身份安装

curl -fsSL https://deb.nodesource.com/setup_18.x | bash - &&\
apt-get install -y nodejs

安装完毕后,查看一下版本是否安装成功

node -v

如果安装其它版本,只需将上面命令中的setup_20.x换成所需安装的版本即可。

注意:在Ubuntu22.4中使用Node.js 20.x、Node.js 21.x安装后,umami打开后一片空白,无法访问。会造成404错误!

Umami安装之后打开一片空白的解决方法

这也是一个巨大的坑,使用Node.js 20.x、Node.js 21.x进行编译后,会发生错误,打开浏览器会出现一片空白,并不是没有内容,F12后发现,所有的js文件均无法访问,使用Node.js 20.x、Node.js 21.x编译都会遇到这样的问题,将Node.js 安装18.x后,一切编译正常,打开没问题。

注意:请使用Node.js 18.x进行编译,请使用Node.js 18.x进行编译,请使用Node.js 18.x进行编译,重要的事情说三遍。不要自己给自己挖坑!

下面关于Node.js的内容仅供参考,实际应用中,请忽略下面Node的相关内容。

----------------------------------------------------------------------------------------

Node官网下载地址:https://nodejs.org/en/download/

还有另外一种方法,直接在上使用apt安装Node

注意:使用apt安装,有可能会安装低版本的node,后面安装中会报错:

error @clickhouse/client@0.2.10: The engine "node" is incompatible with this module. Expected version ">=16". Got "12.22.9"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

这个错误表明你的当前 Node.js 版本不符合 @clickhouse/client 模块的要求。@clickhouse/client 模块需要 Node.js 版本至少为 16。而你当前的 Node.js 版本是 12.22.9。

要解决这个问题,你可以考虑升级你的 Node.js 版本到符合要求的版本。

 

sudo apt update	
sudo apt install nodejs
#不自带 npm 需要自行安装
sudo apt install npm
#使用 n Node版本管理工具升级到 最新版
sudo npm install n -g
# 下载最新稳定版
sudo n stable
# 下载最新版
sudo n lastest
# 查看已下载的版本
sudo n ls
# 切换 Node 版本
sudo n 18.21.1
# 升级 npm 
sudo npm install npm -g 

卸载nodejs Ubuntu 和 Debian 软件包

apt-get purge nodejs &&\
rm -rf /etc/apt/sources.list.d/nodesource.list &&\
rm -rf /etc/apt/keyrings/nodesource.gpg
#卸载npm
npm uninstall npm -g

如果在安装过程中,无法安装npm,可以使用nvm进行安装

使用 nvm 安装 Node.js 和 npm: 使用 Node Version Manager (nvm) 可以更轻松地管理 Node.js 版本和 npm。你可以按照以下步骤安装 nvm,并使用它来安装 Node.js 和 npm:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
#或者使用wget安装
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
#安装 Node.js 和 npm,npm是包含在Node中的,安装Node会自动安装npm
nvm install node
#使用新安装的Node
nvm use node

 

使用nvm安装多版本node

#查看当前已经安装node
nvm ls
#安装 20x版本node,会默认安装20x的最高版本,例如20.12
nvm install 20
#使用20x版本
nvm use 20
#永久使用20x版本
nvm alias default 20

参考结束!!

--------------------------------------------------------------------------------------------------

注意:如果以上方法都无法解决问题,你可以尝试使用 yarn 代替 npm。yarn 是一个快速、可靠、安全的包管理器,通常可以作为 npm 的替代品使用。你可以按照以下步骤安装 yarn

安装Yarn

使用 yarn 替代 npm: 因为该项目使用Yarn进行编译,所以我们要安装一下Yarn。

npm install -g yarn

通过 Yarn 官方安装脚本安装: Yarn 官方提供了一个安装脚本,你可以通过以下命令来安装:

curl -o- -L https://yarnpkg.com/install.sh | bash
#或者使用wget方法安装
wget -qO- https://yarnpkg.com/install.sh | bash

新建MySQL数据库

这里我们使用的是MySQL,在数据库中新建一个空数据库

使用phpmyadmin,在服务器上创建一个Umami的空数据库

自建统计网站Umami统计-1

或者在服务器上直接创建:

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

自建统计网站Umami统计-1耐心等待,安装完毕后,需要配置.env 文件

配置 .env 文件

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

使用touch命令新建.env文件,或者直接使用vim命令新建.env文件

vi .env

注意.env文件创建完毕后,在目录下是查看不到的,.env是隐藏文件,可以使用vi直接编辑。

编辑.env文件输入以下配置保存即可:

DATABASE_URL=mysql://umamiuser:umamipass@localhost:3306/umami_db

APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/
DISABLE_TELEMETRY=1
TRACKER_SCRIPT_NAME=custom

DATABASE_URL
DATABASE_URL=mysql://umamiuser:umamipass@localhost:3306/umami_db
解释:这是 Umami 的数据库连接 URL,指向一个 MySQL 数据库umami_db,数据库用户是umamiuser,密码是 umamipass,数据库服务器运行在 127.0.0.1:3306。
确保有效性:
确认数据库已正确创建,并且数据库用户和密码配置无误。
确保 MySQL 数据库允许通过 127.0.0.1 地址进行连接。
确保 Umami 服务可以访问该 MySQL 数据库。

APP_SECRET
APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/
解释:这是一个用于加密和签名的应用密钥。Umami 使用它来确保 JWT(JSON Web Tokens)和其他敏感信息的安全。
确保有效性:
保持该密钥的安全,不要公开或泄露。
可以生成更复杂的密钥,例如使用 openssl rand -base64 32 生成新的密钥。

DISABLE_TELEMETRY
DISABLE_TELEMETRY=1
解释:禁用遥测功能,意味着不会向 Umami 的服务器发送任何统计或使用数据。
确保有效性:此配置是有效的,并且已经禁用了遥测,适用于更严格的隐私要求。

TRACKER_SCRIPT_NAME
TRACKER_SCRIPT_NAME=custom
解释:此设置指定了 Umami 跟踪脚本的名称,默认名称是 umami.js,但你可以将其更改为 custom.js 或其他任何名字。
确保有效性:如果你希望使用自定义名称,确保你在网页代码中引用了正确的 JavaScript 跟踪脚本。
其他可能的配置项
根据你使用的 Umami 版本和需求,可能还需要以下配置:

 NEXT_PUBLIC_BASE_URL
用于指定 Umami 实例的基础 URL。例如,如果你的 Umami 安装在 https://umami.example.com,可以配置:

NEXT_PUBLIC_BASE_URL=https://umami.example.com

DISABLE_AUTH
如果你希望禁用 Umami 的身份验证功能,可以设置:

DISABLE_AUTH=true
警告:禁用身份验证将使得任何人都能访问管理面板,建议仅在开发环境中使用。

UMAMI_VERSION
如果你想要使用特定版本的 Umami,可以指定:

UMAMI_VERSION=v1.35.0

PORT
配置 Umami 监听的端口(如果默认端口不适用):

PORT=3000

SMTP 配置(用于电子邮件通知)
如果需要启用电子邮件通知或其他邮件功能,可以设置 SMTP 配置,例如:

SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=user@example.com
SMTP_PASSWORD=yourpassword

UMAMI_LOG_LEVEL

配置日志级别,可以根据需要设置:

UMAMI_LOG_LEVEL=info
示例:
将所有这些配置项整合到 .env 文件中:

DATABASE_URL=mysql://umamiuser:umamipass@localhost:3306/umami_db
APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/
DISABLE_TELEMETRY=1
TRACKER_SCRIPT_NAME=custom
NEXT_PUBLIC_BASE_URL=https://umami.example.com
DISABLE_AUTH=true
PORT=3000

这些配置项应该是有效的,确保你已经验证了 MySQL 数据库连接,并且根据需要添加了其他相关配置(如 SMTP 或身份验证设置)。

两种数据库的链接方式示例

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

安装过程中遇到P3018错误

Error: P3018

A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve

Migration name: 05_add_visit_id

Database error code: 1305

Database error:
FUNCTION t_umami_hk.BIN_TO_UUID does not exist

Please check the query number 2 from the migration file.

✗ Command failed: prisma migrate deploy
Error: P3018

A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve

Migration name: 05_add_visit_id

Database error code: 1305

Database error:
FUNCTION t_umami_hk.BIN_TO_UUID does not exist

Please check the query number 2 from the migration file.

 

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.

MariaDB 目前还没有实现 BIN_TO_UUID,而它是 MySQL 中的内置函数。使用MariaDB数据库安装会报错p3018错误

umami更新到2.11版本之后,引入了UUID支持,MySQL 需要在迁移脚本中生成随机 UUID,但是你如果使用的是MariaDB的话,那么MariaDB不支持这个功能。你需要手动修改数据库。

p3018错误的解决方法

执行下面的命令,然后重新进行安装,问题解决。

npx prisma migrate resolve --applied "05_add_visit_id"
#重新运行安装命令
yarn build

卸载Umami

如果在安装过程中出现一些不可逆的操作,可以卸载掉Umami再重新安装,删除掉Umami的安装目录即可

rm -rf /home/umami
reboot

3000端口被占用

如果3000端口被占用,启动会失败,需要关闭占用3000端口的nghttpx

nghttpx占用了3000端口,如果没有nghttpx上没有服务要跑的话,关闭nghttpx即可。

systemctl stop nghttpx
systemctl disable nghttpx
reboot

安装PM2管理器

PM2管理器是一个守护进程的程序,通过PM2打开Umami

npm install pm2 -g
sudo yarn global add pm2
cd /home/umami
pm2 start npm --name umami -- start 
pm2 startup
pm2 save

使用npm安装PM2时遇到错误1143

node:internal/modules/cjs/loader:1143
const err = new Error(message);
^

Error: Cannot find module 'semver'
Require stack:
- /usr/share/nodejs/npm/lib/utils/unsupported.js
- /usr/share/nodejs/npm/lib/cli.js
- /usr/share/nodejs/npm/bin/npm-cli.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1143:15)
at Module._load (node:internal/modules/cjs/loader:984:27)
at Module.require (node:internal/modules/cjs/loader:1231:19)
at require (node:internal/modules/helpers:179:18)
at Object. (/usr/share/nodejs/npm/lib/utils/unsupported.js:2:16)
at Module._compile (node:internal/modules/cjs/loader:1369:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1427:10)
at Module.load (node:internal/modules/cjs/loader:1206:32)
at Module._load (node:internal/modules/cjs/loader:1022:12)
at Module.require (node:internal/modules/cjs/loader:1231:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/usr/share/nodejs/npm/lib/utils/unsupported.js',
'/usr/share/nodejs/npm/lib/cli.js',
'/usr/share/nodejs/npm/bin/npm-cli.js'
]
}

Node.js v20.12.2

解决方法:

这个错误是npm安装完成后没有重新启动服务器,变量没有生效,重新启动服务器即可解决问题。

巨大的坑

在安装完毕后,使用 yarn start 命令来打开Umami,如果3000端口被占用,会提示端口占用错误。

root@localhost:~# yarn start
yarn run v1.22.22
error Couldn't find a package.json file in "/root"
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
root@localhost:~# cd /home/umami
root@localhost:/home/umami# yarn start
yarn run v1.22.22
$ next start
⨯ Failed to start server
Error: listen EADDRINUSE: address already in use :::3000
at Server.setupListenHandle [as _listen2] (node:net:1897:16)
at listenInCluster (node:net:1945:12)
at Server.listen (node:net:2037:7)
at /home/umami/node_modules/next/dist/server/lib/start-server.js:279:16
at new Promise ()
at startServer (/home/umami/node_modules/next/dist/server/lib/start-server.js:190:11)
at nextStart (/home/umami/node_modules/next/dist/cli/next-start.js:50:40)
at /home/umami/node_modules/next/dist/bin/next:155:54
at async main (/home/umami/node_modules/next/dist/bin/next:155:5) {
code: 'EADDRINUSE',
errno: -98,
syscall: 'listen',
address: '::',
port: 3000
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

使用命令查看是谁占用了3000端口

root@localhost:~# sudo lsof -i :3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nghttpx 919 root 5u IPv4 34021 0t0 TCP localhost:3000 (LISTEN)
nghttpx 958 root 5u IPv4 34021 0t0 TCP localhost:3000 (LISTEN)

nghttpx占用了3000端口,如果没有nghttpx上没有服务要跑的话,关闭nghttpx即可。

systemctl stop nghttpx
systemctl disable nghttpx
reboot

停止服务,然后禁用开机启动,之后重新启动系统。

注意:巨大的坑来了。

使用 yarn start 命令启动Umami,这时端口没有占用,启动开始正常,然后:

root@localhost:/home/umami# yarn start
yarn run v1.22.22
$ next start
▲ Next.js 14.1.4
- Local: http://localhost:3000

⚠ "next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.
✓ Ready in 2s

启动过程中,抛出了一条警告,大致意思是

“next 启动”不适用于“输出:独立”配置。请使用“node.next/standalone/server.js” 这种警告到底是不是错误,需要不需要解决,在网上查了一圈,是next.js的问题。 最终结果:无需理会此警告,在浏览器中IP地址+端口,如果可以正常访问,就需继续下一步,注意,服务器的要打开3000端口。否则会拒绝访问。

测试安装是否成功

安装完毕后,你需要通过IP地址+端口来访问,查看页面是否能打开,初次访问,页面打开比较缓慢,等待一下就好。

自建统计网站Umami统计-1

如果没显示什么错误即安装成功,测试本机http://127.0.0.1:3000打开是否正常。

curl http://127.0.0.1:3000

查看一下有没有数据输出。

自建统计网站Umami统计-1查看3000端口当前状态,如果3000端口还是被占用,那么umami应该是没有启动起来。

lsof -i:3000

使用你的服务器IP+端口,在浏览器中打开Umami

Ubuntu搭建统计网站Umami统计-1

使用系统默认的用户名和密码进行登录

  • 用户名:admin
  • 密码:umami

Ubuntu搭建统计网站Umami统计-1

页面很简洁大方,快去设置你的吧!添加网站后获取代码就可以进行统计了!

记得在个人资料里更改密码,密码设置复杂一些!

Ubuntu搭建统计网站Umami统计-1

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

Ubuntu搭建统计网站Umami统计-1

Ubuntu搭建统计网站Umami统计-2

Ubuntu搭建统计网站Umami统计-3

然后创建一个资源集,类型选择 Proxy, URI设置为 /

Ubuntu搭建统计网站Umami统计-1

Ubuntu搭建统计网站Umami统计-2

Ubuntu搭建统计网站Umami统计-3

 

注意:网络服务器选择之前创建的tongji,其它设置填写最大。

重写规则, 因为 前后端域名不一样, 所以要用 伪静态规则把域名也传递到后端, 否则后端会拒绝连接, 前端直接返回403或者500错误。

Ubuntu搭建统计网站Umami统计-1

RewriteRule ^/(.*)$ http://tongji/$1 [P,E=Proxy-Host:xxx.com]
注意 其中 tongji 是 第二步里的外部应用程序名称, xxx.com是的域名。
安装 CyberPanel 面板的,重写规则会提示 Disabled by CyberPanel ,需要在CyberPanel 面板对应的网站里面填写重写规则。
最后,重新启动OpenLiteSpeed就可以正常访问了。

配置中文

我们登陆后台后,可能默认是英文,该面板自带简体中文。打开Settings–>Profile–>Language选择中文即可。

升级更新umami

关于umami有更新,先暂停pm2然后执行以下代码更新后再运行:

pm2 stop umami
#进入umami文件目录
cd /home/umami 
git pull
yarn install
yarn build

在升级umami的过程中遇到了 prisma migrate deploy Error: P3009

这个错误是由于umami更新到2.11版本之后,引入了UUID支持,MySQL 需要在迁移脚本中生成随机 UUID,但是你如果使用的是MariaDB的话,那么MariaDB不支持这个功能。你需要手动修改数据库。

下面是mysql的执行语句。

-- AlterTable
ALTER TABLE website_event ADD COLUMN visit_id VARCHAR(36) NULL;

-- Update with UUIDv4
UPDATE website_event we
JOIN (
SELECT DISTINCT
s.session_id,
s.visit_time,
LOWER(CONCAT(
HEX(SUBSTR(MD5(RAND()), 1, 4)), '-',
HEX(SUBSTR(MD5(RAND()), 1, 2)), '-4',
SUBSTR(HEX(SUBSTR(MD5(RAND()), 1, 2)), 2, 3), '-',
CONCAT(HEX(FLOOR(ASCII(SUBSTR(MD5(RAND()), 1, 1)) / 64)+8),SUBSTR(HEX(SUBSTR(MD5(RAND()), 1, 2)), 2, 3)), '-',
HEX(SUBSTR(MD5(RAND()), 1, 6))
)) AS uuid
FROM (
SELECT DISTINCT session_id,
DATE_FORMAT(created_at, '%Y-%m-%d %H:00:00') visit_time
FROM website_event
) s
) a ON we.session_id = a.session_id AND DATE_FORMAT(we.created_at, '%Y-%m-%d %H:00:00') = a.visit_time
SET we.visit_id = a.uuid
WHERE we.visit_id IS NULL;

-- ModifyColumn
ALTER TABLE website_event MODIFY visit_id VARCHAR(36) NOT NULL;

-- CreateIndex
CREATE INDEX website_event_visit_id_idx ON website_event(visit_id);

-- CreateIndex
CREATE INDEX website_event_website_id_visit_id_created_at_idx ON website_event(website_id, visit_id, created_at);

然后解决 Umami 文件夹中的迁移:

#进入umami文件目录
cd /home/umami
npx prisma migrate resolve --applied "05_add_visit_id"

之后在执行更新命令,别忘记启动PM2

#进入umami文件目录
cd /home/umami
git pull
yarn install
yarn build
pm2 start npm --name umami -- start

 

到这里umami搭建就正式结束了。其余配置都很简单,我们只需要根据umami面板提示的操作进行即可,有不懂的欢迎评论区留言交流。

参考文章:https://www.howtoforge.com/how-to-install-umami-analytics-on-debian-12/

5/5 - (1 vote)

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注