本文档主要目的是部署 Umami 到线上服务器,它是一款开源网站分析平台。部署完成后,可结合 Halo 的数据看板插件使用,用于查看网站访问量、访客来源、页面浏览趋势等统计数据。
本文章配置了 Ubuntu + PostgreSQL + systemd + Nginx,为部署 Umami 搭建环境。
根据 Umami 官方建议,推荐使用 PostgreSQL 作为数据库。经实际测试,使用 MySQL 安装时会出现初始化失败问题。
另外,本人亲测直接拉取源码仓库会导致部署后接口访问异常,建议优先使用 Umami 官方发布的 Release 压缩包进行安装。
一、安装 PostgreSQL 数据库
更新系统源:
sudo apt update
安装 PostgreSQL:
sudo apt install postgresql postgresql-contrib -y
启动服务:
sudo systemctl start postgresql
sudo systemctl enable postgresql
查看状态:
sudo systemctl status postgresql
进入 PostgreSQL:
sudo -i -u postgres psql
退出:
\q
二、旧环境清理
1. 移除 Umami systemd 服务
sudo systemctl stop umami
sudo systemctl disable umami
sudo rm -f /etc/systemd/system/umami.service
sudo systemctl daemon-reload
sudo systemctl reset-failed
检查:
systemctl status umami
2. 删除旧项目目录
sudo rm -rf /home/ubuntu/umami
sudo rm -rf /home/ubuntu/umami-master
3. 删除旧数据库与账号
sudo -i -u postgres psql
DROP DATABASE IF EXISTS umami;
DROP USER IF EXISTS umami;
\q
三、安装 Umami 项目
具体可查看umami文档,在这里我是通过源码安装方式进行安装。
进入用户目录:
cd /home/ubuntu
重命名项目目录:
mv umami-3.0.3 umami
cd umami
安装依赖:
pnpm i
四、创建 PostgreSQL 数据库与账号
进入 PostgreSQL:
sudo -i -u postgres psql
执行:
CREATE USER 你的账号 WITH PASSWORD '你的密码';
ALTER USER 你的账号 CREATEDB;
CREATE DATABASE umami OWNER 你的账号;
\q
五、配置环境变量
进入项目目录:
cd /home/ubuntu/umami
nano .env
填写:
DATABASE_URL=postgresql://你的账号:你的密码@localhost:5432/umami
APP_SECRET=你的随机密钥
说明:
APP_SECRET 建议使用 32 位以上随机字符串
数据库名默认使用
umami
六、首次启动测试
pnpm build
pnpm start
浏览器访问:
http://服务器IP:3000/login
默认账号为:admin 默认密码为:umami
确认正常后停止,继续配置 systemd。
七、配置 systemd 服务
创建服务文件:
sudo nano /etc/systemd/system/umami.service
写入:
[Unit]
Description=Umami Service
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/umami
ExecStart=/usr/bin/pnpm start
Restart=always
RestartSec=5
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
启动服务:
sudo systemctl daemon-reload
sudo systemctl enable umami
sudo systemctl start umami
查看状态:
sudo systemctl status umami
查看日志:
journalctl -u umami -f
八、域名配置(Nginx)
创建站点配置:
sudo nano /etc/nginx/sites-available/你的域名
写入:
server {
listen 80;
server_name 你的域名; # 二级域名:*.corner.ink
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/你的域名 /etc/nginx/sites-enabled/
检查并重启:
sudo nginx -t
sudo systemctl restart nginx
访问:
http://你的域名/login
九、配置 HTTPS 证书
安装 Certbot:
sudo apt install certbot python3-certbot-nginx -y
申请证书:
sudo certbot --nginx -d 你的域名
配置完毕后会自动更新 nginx 配置
完成后访问:
https://你的域名/login
安装成功

十、常用维护命令
查看 Umami 状态:
sudo systemctl status umami
重启 Umami:
sudo systemctl restart umami
查看日志:
journalctl -u umami -f
重启 Nginx:
sudo systemctl restart nginx
查看 PostgreSQL 状态:
sudo systemctl status postgresql
十一、部署信息
项目目录:
/home/umami数据库名:
umami数据库账号:
你的账号数据库密码:
你的密码域名:
你的域名运行端口:
3000