🚀 使用 Docker Compose 部署 Umami 3.0.0 的 PostgreSQL 数据库新版本,详细步骤
前提条件
- 一台安装了 Docker 和 Docker Compose 的服务器(或本地机器)。
第一步:创建项目目录和文件
首先,创建一个新的目录用于存放 Umami 的配置文件,并进入该目录。
mkdir /opt/umami
cd /opt/umami
第三步:创建 docker-compose.yml 文件
在同一目录下创建一个名为 docker-compose.yml 的文件,复制下面代码到docker-compose.yml 文件里面保存,用于定义 Umami 服务和 PostgreSQL 数据库服务。
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
TRACKER_SCRIPT_NAME: tongjifenxi.js
depends_on:
db:
condition: service_healthy
restart: unless-stopped
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: umami
volumes:
- umami_db_data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
volumes:
umami_db_data:
第四步:启动容器
在包含 docker-compose.yml 文件的目录下,执行启动命令:
docker compose up -d
up: 创建并启动容器。-d: 在后台(分离模式)运行容器。
第五步:验证和访问
- 检查容器状态:Bash
docker ps你应该能看到umami和umami-db两个容器的状态都是Up。 - 访问 Umami:打开你的浏览器,访问
http://你的服务器IP或域名:3000。 - 默认登录凭证:
- 用户名 (Username):
admin - 密码 (Password):
umami
- 用户名 (Username):
后续更新
当 umami 更新后,运行下列命令即可更新 umami。
注意是在保存 docker-compose.yml 文件的目录下执行命令。
docker compose pull
docker compose up -d --remove-orphans
🚀 使用 Docker Compose 部署 MySQL 旧版本步骤
步骤同上面部署 Umami 3.0.0 的 PostgreSQL 数据库新版本一样
Umami 运行最低需要 MySQL v5.7,用 MySQL 的话个人建议最好是 8.0
在同一目录下创建一个名为 docker-compose.yml 的文件,复制下面代码到docker-compose.yml 文件里面保存
services:
umami:
image: ghcr.io/umami-software/umami:mysql-latest
restart: always
depends_on:
- umami-db
ports:
- 3000:3000
environment:
DATABASE_TYPE: mysql
DATABASE_URL: mysql://umami:password@umami-db:3306/umami
APP_SECRET: replace-me-with-a-random-string
container_name: umami
umami-db:
image: mysql:5.7 # 最好部署新版 mysql:8.0、mysql:8.4
restart: always
volumes:
- ./data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: umami
MYSQL_USER: umami
MYSQL_PASSWORD: password
container_name: umami-db