Cloudreve

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

主要功能:

  • 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 、S3兼容协议 作为存储端

  • 上传/下载 支持客户端直传,支持下载限速

  • 可对接 Aria2 离线下载,可使用多个从机节点分担下载任务

  • 在线 压缩/解压缩、多文件打包下载

  • 覆盖全部存储策略的 WebDAV 协议支持

  • 拖拽上传、目录上传、流式上传处理

  • 文件拖拽管理

  • 多用户、用户组、多存储策略

  • 创建文件、目录的分享链接,可设定自动过期

  • 视频、图像、音频、 ePub 在线预览,文本、Office 文档在线编辑

  • 自定义配色、黑暗模式、PWA 应用、全站单页应用、国际化支持

  • All-In-One 打包,开箱即用

  • 支持直链分享、网盘分享

前置容器:

扩展能力:

1、镜像

cloudreve/cloudreve:latest

2、安装

2.1、基础设置

  • 重启策略:容器退出时总是重启容器。

2.2、网络

  • 桥接即可。

2.3、存储空间

  • /cloudreve/avatar:头像存储文件夹;

  • /cloudreve/uploads:本地存储时文件存放位置,可单独映射到更大空间磁盘;

  • /data:aria2作为离线下载器的数据目录,主要用于aria2完成下载时上传给Cloudreve的临时文件目录,后续aria2容器配置时,需要装载此目录且映射目录与Cloudreve的映射目录完全一致;

  • /cloudreve/conf.ini:配置文件,非文件夹;

  • /cloudreve/cloudreve.db:sqlite3数据库文件,非文件夹。

2.3.1、配置文件conf.ini

[System]
; 运行模式
Mode = master
; 监听端口
Listen = :5212
; 是否开启 Debug
Debug = false
; Session 密钥, 一般在首次启动时自动生成
SessionSecret = 须更改复杂字符串,如:6d065c1a600daa123210525df3349e82
; Hash 加盐, 一般在首次启动时自动生成
HashIDSalt = 须更改,如:hash_600da123249e82
; 呈递客户端 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 = 
; 密码
Password = 
; 数据库地址,ip地址即可
Host = 
; 数据库名称
Name = 
; 数据表前缀
TablePrefix = cd_
; 字符集
Charset = utf8mb4
; SQLite 数据库文件路径
DBFile = cloudreve.db
; 进程退出前安全关闭数据库连接的缓冲时间
GracePeriod = 30
; 使用 Unix Socket 连接到数据库
UnixSocket = false

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

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

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

; 从机配置覆盖
; [OptionOverwrite]
; 可直接使用 `设置名称 = 值` 的格式覆盖
; max_worker_num = 50
  • [System]配置节,SessionSecretHashIDSalt须修改,其他可不修改;

  • [SSL]配置节,后续使用反向代理,这里全部注释不启用;

  • [UnixSocket]配置节,未做研究,这里全部注释不启用,若需要此配置须自行研究;

  • [Database]配置节,配置数据库信息,此处仅对MySQLSqlite做阐述:

  • 类型选择MySQL时,填写PortUserPasswordHostName字段即可,其他不变;

    • 须先在数据库中创建相应数据库后使用,字符集为utf8mb4

    • 此时无需配置装载路径/cloudreve/cloudreve.db

  • 类型选择Sqlite时,数据库文件名DBFile默认:cloudreve.db,无须修改,其他不变;

    • 手动创建空的文件本件,修改名称为cloudreve.db,作为装载路径/cloudreve/cloudreve.db的映射文件;

    • 注意:装载路径/cloudreve/cloudreve.db的数据库文件名须与DBFile定义的文件名一致。

  • [Slave]配置节,从机配置节点,本例只有一个主机无从机,这里全部注释不启用;

  • [CORS]配置节,跨域配置,保持不变;

  • [Redis]配置节,不是必要配置,若需启用则填写相应信息即可,本例全部注释不启用;

  • [OptionOverwrite]配置节,从机配置覆盖,本例只有一个主机无从机,这里全部注释不启用。

2.3.2、官方配置文档

2.4、端口设置

  • conf.ini配置文件中定义的端口作为容器端口,默认:5212,本地端口自动未被使用的端口即可。

2.5、环境

  • 设置TZ,值:Asia/Shanghai,将时区设置到+8时区,即北京时间。

3、使用

3.1、初始化

  • 首次启动时会在日志中打印默认的账户与密码,登录后须修改;

  • 注意:此账号密码只会出现一次,若日志过多导致无法查找时,删除或清空数据库重新创建。

3.2、支持的存储模式

  • 若使用的对象存储厂家支持S3协议,则直接选择AWS S3进行对象存储添加即可。

3.3、配置用户组使用的存储空间

  • 在用户组中选择存储空间及空间大小,分配到此组的用户即使用配置的存储空间和用户拥有的空间大小,可建立多个组进行分配。

3.4、文件分享

3.4.1、创建分享

  • 右键文件 - 创建分享链接。

3.4.2、查看分享

  • 分享链接无需登录,无需客户端即可下载。

3.4.3、直链分享,需在组和存储配置中开启

  • 右键文件 - 获取外链。