假设服务器已安装好 dockernginx ,服务器 IP 可被公网访问

拉取镜像

  1. 拉取数据库镜像

    docker pull postgres:15-alpine
  2. 拉取 umami 镜像

    docker pull docker.umami.is/umami-software/umami:postgresql-latest

启动数据库服务

  1. 创建本地路径,用来持久化保存数据库数据

    mkdir postgresql-data
  2. 创建 docker 网络,供 umami 容器访问

    docker network create umami_sql_network
  3. 启动数据库服务,替换 /root/umami/postgresql-data 为第一步创建的完整路径

    docker run -d --name umami_database --network umami_sql_network --network-alias umami_database -e POSTGRES_DB=umami -e POSTGRES_USER=umami -e POSTGRES_PASSWORD=umami -v /root/umami/postgresql-data:/var/lib/postgresql/data postgres:15-alpine
  4. 查看数据库容器日志与状态

    • 查看数据库容器日志: docker logs umami_database

    • 查看运行中的 docker 容器: docker ps

启动 umami 容器

  • APP_SECRET 替换为随机字符串,如果不需要 nginx 反向代理的话,把 -p 127.0.0.1:3000:3000 换成 -p 3000:3000 ,直接访问本机 http://本机ip:3000

    docker run -d --name umami --network umami_sql_network -e DATABASE_URL=postgresql://umami:umami@umami_database:5432/umami -e DATABASE_TYPE=postgresql -e APP_SECRET=ewgyifufsrgyuyhuserfyger -p 127.0.0.1:3000:3000 docker.umami.is/umami-software/umami:postgresql-latest
  • 查看 umami 容器日志: docker logs umami

  • 查看运行中的 docker 容器: docker ps

Info

umami 安装将创建一个默认的管理员账户,用户名为 admin,密码为 umami

nginx 反向代理 (可选)

使用 nginx 代理 umami 服务,配置 https证书

新建 /etc/nginx/conf.d/umami.conf 配置文件

vim /etc/nginx/conf.d/umami.conf

填写以下配置,server_namehttps证书路径 (ssl_certificatessl_certificate_key) 供参考,根据自己的域名与证书路径配置

server {
    listen 443 ssl;
    http2 on;
    server_name umami.hyacm.com;

    ssl_certificate /root/lobe-chat-db/hyacm.com.cert;
    ssl_certificate_key /root/lobe-chat-db/hyacm.com.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:3000;
        # proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        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;
        client_max_body_size 20000M;
    }
}

重载 nginx 服务

systemctl reload nginx.service

或者重启 nginx 服务

systemctl restart nginx.service