Umami 部署文档

Umami 部署文档

本文档主要目的是部署 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


Obsidian 多端同步方案详解 2026-01-21
驾驶舱大屏适配方案总结 2026-04-14

评论区