使用 Docker 部署 Umami 推荐的方式
参考资料
使用 Docker 部署 Umami 是一种非常方便和推荐的方式。整个过程主要围绕 docker-compose.yml 配置文件展开。
✅ 前提条件
开始前,请确保你的服务器或本地电脑已安装:
Docker 和 Docker Compose。如果不确定,可以参考官方安装指南 (opens in a new tab)。
🚀 步骤 1:创建 docker-compose.yml 文件
在一个空目录下(比如 umami),新建一个名为 docker-compose.yml 的文件,并填入以下内容。
version: '3'
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3000:3000" # 主机端口:容器端口,可按需修改主机端口
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: "replace-me-with-a-random-string" # 务必修改为一个强随机字符串!
depends_on:
db:
condition: service_healthy
restart: always
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: umami # 请修改为一个更安全的密码
volumes:
- umami-db-data:/var/lib/postgresql/data
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
volumes:
umami-db-data:✍️ 配置要点
APP_SECRET:用于加密的强随机字符串,务必修改,建议用密码生成器生成一个长的随机字符串。
端口:
"3000:3000"表示将宿主机的3000端口映射到容器的3000端口。如果3000端口被占用,可以改为"3001:3000"。数据库密码:默认密码
umami并不安全,请务必修改POSTGRES_PASSWORD的值,并同步更新DATABASE_URL中的密码。镜像加速:如果你的服务器在中国大陆,从 GitHub Container Registry (
ghcr.io) 拉取镜像可能较慢。可以将image换为国内镜像:docker.umami.dev/umami-software/umami:postgresql-latest。
🏃 步骤 2:启动服务
保存 docker-compose.yml 文件后,在终端进入该文件所在目录,执行以下命令即可启动:
docker compose up -d
-d参数表示服务将在后台(detached mode)运行。
首次启动会自动拉取所需的镜像并创建容器,整个过程可能需要几分钟。
🔑 步骤 3:验证与登录
确认服务状态:可运行
docker compose ps命令,确认umami和db服务均为Up (healthy)状态。访问 Umami 界面:在浏览器中打开
http://你的服务器IP:3000(端口号以你的配置为准)。登录:使用初始账号
admin和密码umami登录,建议登录后立即修改。
如果无法访问,请检查服务器的防火墙或安全组策略,是否已放行你配置的端口。
🔒 步骤 4:配置反向代理
为了方便使用,通常是采用反向代理软件(如 Nginx),将 Umami 服务绑定到你的域名上。
以下是一段 Nginx 的配置示例,用于将你的域名指向 Umami 服务:
server {
listen 80;
server_name your-domain.com; # 请替换为你的实际域名
location / {
proxy_pass http://127.0.0.1:3000; # 代理地址指向本机的Umami端口
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;
}
}建议同时为你的域名配置 SSL 证书,以保证数据传输的安全性。
### 如何自己生成(更安全) - **Linux / macOS 终端**: `openssl rand -base64 32` (结果约 44 个字符) 或 `cat /dev/urandom | tr -dc 'a-zA-Z0-9!@#$%^&*' | fold -w 32 | head -n 1` - **Python 一次性生成**: `python3 -c "import secrets; print(secrets.token_urlsafe(32))"` - **在线生成**(不推荐用于生产,仅测试):使用 `https://randomkeygen.com/` 等工具,但最佳是离线生成。
🎯 总结与后续
更新镜像:当 Umami 发布新版本时,可在
docker-compose.yml目录下执行docker compose pull和docker compose up -d来更新。统计数据:成功部署后,登录后台,点击 "添加网站" (Add Website),填入你的网站信息,即可获得一段追踪代码,将其嵌入到你的网站中,就能开始收集数据了。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . docker 部署》 -- 发布时间:2025-03-29
本页链接:https://docker.ciilii.com/show/news-20.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
