相关链接
Docker-Compose配置
# 创建应用目录
cd ~
mkdir umami
# 编辑docker-compose.yml(参考下文配置)
# 请将<yourpassword>和<yourhashsalt>更改
nano ~/umami/docker-compose.yml配置内容参考如下:
version: '3.9'
services:
postgres:
image: postgres:17-alpine
container_name: umami-postgres
restart: always
environment:
POSTGRES_USER: umami
POSTGRES_PASSWORD: <yourpassword>
POSTGRES_DB: umami_db
volumes:
- ./postgres-data:/var/lib/postgresql/data
ports:
- "5432:5432"
networks:
- umami-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U umami -d umami_db"]
interval: 5s
timeout: 5s
retries: 5
umami:
image: docker.umami.is/umami-software/umami:latest
container_name: umami
restart: always
environment:
DATABASE_URL: postgresql://umami:<yourpassword>@postgres:5432/umami_db
DATABASE_TYPE: postgresql
HASH_SALT: <yourhashsalt>
ports:
- "3001:3000"
networks:
- umami-network
depends_on:
postgres:
condition: service_healthy
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
umami-network:
driver: bridge随后启动容器:
# 可以先拉取所需的两个镜像
sudo docker pull postgres:17-alpine
sudo docker pull docker.umami.is/umami-software/umami:latest
# 拉取成功后启动容器
cd ~/umami
sudo docker compose up -dPostgreSQL数据库备份与恢复
# 备份数据库
docker exec -t <容器名umami-postgres> pg_dump -U <用户名umami> -c <数据库名umami_db> > ~/backup.sql
# 恢复数据库
cat ~/backup.sql | docker exec -i <容器名umami-postgres> psql -U <用户名umami> <数据库名umami_db>Nginx+Certbot配置
# 安装启动Nginx、Certbot
apt-get update && apt-get install -y nginx
systemctl enable nginx && systemctl start nginx
apt-get install -y certbot
apt-get install -y python3-certbot-nginx
# 申请SSL证书
# 将<your-domain>改为已在DNS处解析过的域名
sudo certbot certonly --nginx -d <your-domain>
# 编辑Nginx配置文件(参考下文)
nano /etc/nginx/sites-available/default
# 启用软链接
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
# 测试文件格式
nginx -t
# 重载Nginx服务
systemctl reload nginx配置文件内容参考:
# ==================== Umami - HTTP ====================
server {
listen 80;
server_name <your-domain>;
# HTTP自动跳转HTTPS
return 301 https://$host$request_uri;
}
# ==================== Umami - HTTPS ====================
server {
listen 443 ssl;
server_name <your-domain>;
ssl_certificate /etc/letsencrypt/live/<your-domain>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<your-domain>/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3001;
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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}默认账号密码:
- Username:
admin - Password:
umami
结语
- 上述方法建立在长期使用,且有域名的前提下,此方法不需要开放云服务器厂商处的端口。
- 当然你可以使用宝塔、1Panel等服务器面板管理应用,一键安装配置。
- 如果你只是测试,可以不进行Nginx配置,只在docker容器跑通后,开放云服务器厂商的3001TCP端口,即可通过http://ip:3001访问Umami后台。
