本文介绍了如何使用Docker部署Umami,一个开源的网站访问统计分析工具,以及如何备份和迁移Umami数据库。首先,通过创建docker-compose文件和.env文件来部署Umami,然后设置反向代理并登录后台。接着,介绍了如何使用rclone和1panel面板计划任务来备份Umami数据库到坚果云。最后,说明了如何迁移数据库并导入到新的服务器。
此内容由AI生成,不代表个人观点,仅用于文章内容的解释与总结
Umami 是一个简单易用、自托管的开源的网站访问统计分析工具。 Google Analytics 替代品。
项目地址: umami
一、部署
1.这里以docker部署为例,在opt/umami目录下创建 docker-compose 文件和.env
docker-compose内容:
version: '3.8'
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
container_name: umami
ports:
- "3000:3000"
env_file:
- .env
environment:
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
APP_SECRET: ${APP_SECRET}
depends_on:
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
db:
image: postgres:15-alpine
container_name: umami_db
env_file:
- .env
volumes:
- umami-db-data:/var/lib/postgresql/data
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
interval: 10s
timeout: 5s
retries: 5
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
volumes:
umami-db-data:
.env文件内容:
POSTGRES_USER=umami
POSTGRES_PASSWORD=your_very_secure_password_here
POSTGRES_DB=umami
APP_SECRET=your_random_secret_string_here
2.保存并启动
docker compose up -d
3.如果报错:
[dotenv@17.2.1] injecting env (0) from .env -- tip: ? prevent committing .env to code: https://dotenvx.com/precommit ✓ DATABASE_URL is defined. ✗ Unable to connect to the database: Authentication failed against database server, the provided database credentials for umami are not valid. Please make sure to provide valid database credentials for the database server at the configured address. ELIFECYCLE Command failed with exit code 1. ERROR: "check-db" exited with 1. ELIFECYCLE Command failed with exit code 1.
手动修改数据库密码:
docker exec -it umami_db psql -U umami -d umami
然后在 psql 里执行:
ALTER USER umami WITH PASSWORD 'your_very_secure_password_here';
4.设置反向代理
访问http://ip:3000 反代用1panel面板就行。
5.登录后台
默认账号:admin ,默认密码:umami 在设置界面可以设置语言为中文。
二、备份umami数据库
1.如果你的服务器没有安装rclone,请先安装rclone,安装好7z,并设置好坚果云webdav,在1panel面板计划任务中添加以下代码:
三、迁移数据库并导入数据库
1.请确保你新的服务器的PostgreSQL 容器在运行
docker ps | grep umami_db
输出中应该能看到 umami_db 容器状态是 Up。
2.这里假设数据库备份在/root/backups,直接用 docker exec 将备份导入 PostgreSQL 容器:
gunzip < /root/backups/umami_backup_latest.sql.gz | docker exec -i umami_db psql -U umami -d umami
-U umami -d umami:使用数据库用户名和数据库名(必须和 .env 中一致)
3.验证数据
docker exec -it umami_db psql -U umami -d umami -c "SELECT * FROM event LIMIT 5;"
如果能查到数据,说明导入成功,到这里就全部配置完成了。