前言
前置准备
请参考 Docker Compose 安装文档 安装 Docker 和 Docker Compose,看不懂的可以参考这篇文章。
准备 docker-compose.yml 文件
- 创建一个目录作为 Docker Compose 文件的存储目录,比如:
1 2
| mkdir -p ~/cloudreve cd ~/cloudreve
|
- 参考官方的 GitHub 仓库 ,将获取到的
docker-compose.yml 文件保存到此目录。
- 如果需要自动更新,可以使用
watchtower监控,修改后的 docker-compose.yml 文件如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| services: cloudreve: image: cloudreve/cloudreve:latest container_name: cloudreve-backend depends_on: - postgresql - redis restart: unless-stopped ports: - 5212:5212 - 6888:6888 - 6888:6888/udp environment: - CR_CONF_Database.Type=postgres - CR_CONF_Database.Host=postgresql - CR_CONF_Database.User=cloudreve - CR_CONF_Database.Name=cloudreve - CR_CONF_Database.Port=5432 - CR_CONF_Redis.Server=redis:6379 volumes: - backend_data:/cloudreve/data
postgresql: # Best practice: Pin to major version. # NOTE: For major version jumps: # backup & consult https://www.postgresql.org/docs/current/pgupgrade.html image: postgres:17 container_name: postgresql restart: unless-stopped environment: - POSTGRES_USER=cloudreve - POSTGRES_DB=cloudreve - POSTGRES_HOST_AUTH_METHOD=trust volumes: - database_postgres:/var/lib/postgresql/data
redis: image: redis:latest container_name: redis restart: unless-stopped volumes: - redis_data:/data
watchtower: image: containrrr/watchtower container_name: watchtower restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock command: - --cleanup # 更新后清理旧镜像 - --interval # 间隔参数 - "86400" # 24小时 - cloudreve-backend # 监控的目标容器名 volumes: backend_data: database_postgres: redis_data:
|
启动
在 docker-compose.yml 文件所在目录下运行:
Cloudreve 默认会监听 5212 端口。你可以在浏览器中访问 http://<your-server-ip>:5212 进入 Cloudreve。请注册一个账户,首个注册的账户会被设置为管理员。
启用 HTTPS
- 建议使用
Nginx 反代,你需要提前准备并解析好域名、申请好证书、安装Nginx。同时建议使用sites-enabled和sites-available模块来管理站点,这样可以不用改动主配置,达到清晰、方便、安全的管理效果。
- 在
sites-available 里写配置:
1
| sudo vim /etc/nginx/sites-available/cloudreve
|
内容示例,需要自行修改域名、证书等内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| server { listen 80; server_name your-domain.com; return 301 https://$host$request_uri; } server { listen 127.0.0.1:443 ssl http2; server_name your-domain.com;
ssl_certificate "/path/to/cert.pem"; ssl_certificate_key "/path/to/key.pem";
location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://127.0.0.1:5212; client_max_body_size 20000m; }
}
|
1
| sudo ln -s /etc/nginx/sites-available/cloudreve /etc/nginx/sites-enabled/
|
1 2
| nginx -t nginx -s reload
|