Cloudreve 是一个开源的云存储网盘系统,它提供了丰富的功能,使用户可以在自己的服务器上建立个人或团队的云存储和文件共享平台。

1、创建专属桥接网络

若已创建,可跳过此步骤。

https://www.hcjike.com/archives/tMUqkbKb

2、部署项目

2.1、创建项目

2.2、Compose配置

networks:
    app_network:
        external: true
services:
    cloudreve:
        container_name: cloudreve
        image: cloudreve/cloudreve:latest
        networks:
            - app_network
        ports:
            - 10022:5212
        restart: always
        volumes:
            - ./data/uploads:/cloudreve/uploads
            - ./data/data:/data
            - ./data/temp:/temp
            - ./data/avatar:/cloudreve/avatar
            - ./data/conf.ini:/cloudreve/conf.ini
            - ./data/cloudreve.db:/cloudreve/cloudreve.db
        environment:
            - PUID=1000
            - PGID=10

./data/uploads:/cloudreve/uploads:配置上传文件存储的位置;

./data/data:/data:离线下载时使用的路径,必须和Aria2配置的路径一致,包括宿主机和容器路径设置的一致;

./data/temp:/temp:临时文件的存储路径;

./data/avatar:/cloudreve/avatar:头像相关文件存储路径;

./data/conf.ini:/cloudreve/conf.ini:配置文件,需要优先在宿主机路径上创建文件后再部署;

./data/cloudreve.db:/cloudreve/cloudreve.db:数据库文件,需要优先在宿主机路径上创建文件后再部署;

3、配置

3.1、conf.ini 配置文件

[System]
; 运行模式
Mode = master
; 监听端口
Listen = :5212
; 是否开启 Debug
Debug = false
; Session 密钥, 一般在首次启动时自动生成
SessionSecret = 6d065c1a200daa12da210525df31319a82
; Hash 加盐, 一般在首次启动时自动生成
HashIDSalt = hash_20a2a121d29a82
; 呈递客户端 IP 时使用的 Header
ProxyHeader = X-Forwarded-For

; SSL 相关
; [SSL]
; SSL 监听端口
; Listen = :443
; 证书路径
; CertPath = C:\Users\i\Documents\fullchain.pem
; 私钥路径
; KeyPath = C:\Users\i\Documents\privkey.pem

; 启用 Unix Socket 监听
; [UnixSocket]
; Listen = /run/cloudreve/cloudreve.sock
; 设置产生的 socket 文件的权限
; Perm = 0666

; 数据库相关,如果你只想使用内置的 SQLite 数据库,这一部分直接删去即可
[Database]
; 数据库类型,目前支持 sqlite/mysql/mssql/postgres
Type = mysql
; MySQL 端口
Port = 3306
; 用户名
User = cloudreve
; 密码
Password = cloudreve
; 数据库地址,ip地址即可
Host = mysql
; 数据库名称
Name = cloudreve
; 数据表前缀
TablePrefix = cd_
; 字符集
Charset = utf8mb4
; SQLite 数据库文件路径
; DBFile = cloudreve.db
; 进程退出前安全关闭数据库连接的缓冲时间
GracePeriod = 30
; 使用 Unix Socket 连接到数据库
UnixSocket = false

; 从机模式下的配置
; [Slave]
; 通信密钥
; Secret = 6d085c6d600daa568680513df6d085c6d600daa749480513df7649a82
; 回调请求超时时间 (s)
; CallbackTimeout = 20
; 签名有效期
; SignatureTTL = 60

; 跨域配置
[CORS]
AllowOrigins = *
AllowMethods = OPTIONS,GET,POST
AllowHeaders = *
AllowCredentials = false
SameSite = Default
Secure = lse

; Redis 相关
[Redis]
Server = redis:6379
Password = redis
; 通道,需要未被使用的,0 - 15
DB = 0

; 从机配置覆盖
; [OptionOverwrite]
; 可直接使用 `设置名称 = 值` 的格式覆盖
; max_worker_num = 50

3.1.1、[System] 配置节点

SessionSecretHashIDSalt可调整为自己的参数;

其他参数不变。

3.1.2、[Database] 配置节点

如果不需要其他数据库只使用sqlite,则可删除此配置节点;

使用MySQL数据库,需要进行数据库和数据库管理镜像安装;

创建MySQLhttps://www.hcjike.com/archives/BsOgZbge

MySQL管理https://www.hcjike.com/archives/64T5tBWw

Host = mysql:使用了相同的网络模式,此处可以直接填写 MySQL 部署时的服务名代替 IP 地址。

User:可以填写root,也可填写拥有对应数据库权限的用户名;

Password:填写User用户对应的密码;

Name:填写创建的数据名称;

3.1.3、[Redis] 配置节点

Redis安装https://www.hcjike.com/archives/EX0NaI2g

Server = redis:6379:使用了相同的网络模式,此处可以直接填写 Redis 部署时的服务名代替 IP 地址,使用服务名时端口为容器端口,非宿主机端口。

3.2、配置离线下载

Aria2安装:https://www.hcjike.com/archives/AXLb9hR2

编辑默认的节点,配置相关参数;

RPC 服务器地址:使用了相同的网络模式,此处可以直接填写 Aria2 部署时的服务名代替 IP 地址,示例:http://aria2:6800/

RPC 授权令牌:填写 Aria2 部署时设置的RPC连接令牌

临时下载目录:填写/data