Cloudreve超好用的自用网盘

目录

先来看下Cloudreve

登录注册页面

登录后的首页

个人设置页面


管理面板

Cloudreve介绍

官网:https://cloudreve.org/

Cloudreve 可以让您快速搭建起公私兼备的网盘系统。Cloudreve 在底层支持不同的云存储平台,用户在实际使用时无须关心物理存储方式。你可以使用 Cloudreve 搭建个人用网盘、文件分享系统,亦或是针对大小团体的公有云系统。

Cloudreve 提供了社区版、捐助版、IOS订阅版,对于我来说IOS订阅版用不到,社区版是免费的,对于个人使用足够了,捐助版价格399元,功能比社区版功能要多,完美主义者可以上。

官方演示站

https://demo.cloudreve.org/

Cloudreve 社区版

Cloudreve 捐助版

Cloudreve for ios

Cloudreve价格表

支持WebDAV

可以通过应用程序对服务器进行读写,满足开发者的需求。

支持生成缩略图

下载地址

https://github.com/cloudreve/Cloudreve/releases/tag/3.8.3

GitHub issues

https://github.com/cloudreve/Cloudreve/issues

你可以在 GitHub Release 页面获取已经构建打包完成的主程序。其中每个版本都提供了常见系统架构下可用的主程序,命名规则为cloudreve_版本号_操作系统_CPU架构.tar.gz 。比如,普通 64 位 Linux 系统上部署 3.0.0 版本,则应该下载cloudreve_3.0.0_linux_amd64.tar.gz。

如果你想体验最新的功能特性,可以在 GitHub Actions 中下载每次 commit 后构建的开发版。注意,开发版并不稳定,无法用于生产用途,且不保证完全可用。

安装部署

我两种方式都安装了,两种都比较简单,如果你想扩展啥的,比如使用mysql、redis、跨域配置,那需要修改下conf.ini文件。

windows 部署

官网介绍安装步骤
安装包
解压
运行Cloudreve

直接双击cloudreve.exe,就启动成功了 ,默认端口5212

重点来了!!!
观察dos窗口内的内容,web地址和端口及账号密码都在里面(登录上去后,可以自己修改账号和密码,也可以新增账号)
访问地址:http://localhost:5212
账号密码:自己看dos内容

linux 部署

官网介绍安装步骤
安装包
解压并执行主程序
bash 复制代码
#解压获取到的主程序
tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz
bash 复制代码
# 赋予执行权限
chmod +x ./cloudreve
bash 复制代码
# 启动 Cloudreve
./cloudreve

Cloudreve 在首次启动时,会创建初始管理员账号,请注意保管管理员密码,此密码只会在首次启动时出现。如果您忘记初始管理员密码,需要删除同级目录下的cloudreve.db,重新启动主程序以初始化新的管理员账户。

Cloudreve 默认会监听5212端口。你可以在浏览器中访问http://服务器IP:5212进入 Cloudreve。

以上步骤操作完后,最简单的部署就完成了。你可能需要一些更为具体的配置,才能让 Cloudreve 更好的工作,具体流程请参考下面的配置流程。

配置文件

首次启动时,Cloudreve 会在同级目录下创建名为conf.ini的配置文件,你可以修改此文件进行一些参数的配置,保存后需要重新启动 Cloudreve 生效。

你也可以在启动时加入-c参数指定配置文件路径:

bash 复制代码
./cloudreve -c /path/to/conf.ini

一个完整的配置文件示例如下:

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

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

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

; Redis 相关
[Redis]
Server = 127.0.0.1:6379
Password =
DB = 0

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

默认情况下,Cloudreve 会使用内置的 SQLite 数据库,并在同级目录创建数据库文件cloudreve.db,如果您想要使用 MySQL,请在配置文件中加入以下内容,并重启 Cloudreve。注意,Cloudreve 只支持大于或等于 5.7 版本的 MySQL 。

bash 复制代码
[Database]
; 数据库类型,目前支持 sqlite/mysql/mssql/postgres
 Type = mysql
; ; MySQL 端口
 Port = 3306
; ; 用户名
 User = root
; ; 密码
 Password = xxx
; ; 数据库地址
 Host = 127.0.0.1
; ; 数据库名称
 Name = cloudreve
; ; 数据表前缀
 TablePrefix = cd_
; ; 字符集
 Charset = utf8mb4
; ; SQLite 数据库文件路径
 DBFile = cloudreve.db
; ; 进程退出前安全关闭数据库连接的缓冲时间
 GracePeriod = 30
; ; 使用 Unix Socket 连接到数据库
 UnixSocket = false

更换数据库配置后,Cloudreve 会重新初始化数据库,原有的数据将会丢失。

使用Redis

你可以在配置文件中加入 Redis 相关设置:

bash 复制代码
[Redis]
Server = 127.0.0.1:6379
Password = your password
DB = 0

请为 Cloudreve 指定未被其他业务使用的 DB,以避免冲突。

重启 Cloudreve 后,可注意控制台输出,确定 Cloudreve 是否成功连接 Redis 服务器。使用 Redis 后,以下内容将被 Redis 接管:

  • 用户会话(重启 Cloudreve 后不会再丢失登录会话)
  • 数据表高频记录查询缓存(如存储策略、设置项)
  • 回调会话
  • OneDrive 凭证
Cors跨域
bash 复制代码
; 跨域配置
 [CORS]
 AllowOrigins = *
 AllowMethods = OPTIONS,GET,POST
 AllowHeaders = *
 AllowCredentials = false
 SameSite = Default
 Secure = lse
启用 HTTPS

如果您正在使用 Web 服务器反向代理 Cloudreve,推荐您在 Web 服务器中配置 SSL,本小节所阐述的启用方式只针对使用 Cloudreve 内置 Web 服务器的情境下有效。

在配置文件中加入:

bash 复制代码
[SSL]
Listen = :443
CertPath = C:\Users\i\Documents\fullchain.pem
KeyPath = C:\Users\i\Documents\privkey.pem

其中 CertPathKeyPath 分别为 SSL 证书和私钥路径。保存后重启 Cloudreve 生效。

覆盖从机节点的配置项

Cloudreve 的某些配置项是存储在数据库中的,但是从机节点并不会连接数据库,你可以在配置文件中覆盖相应的配置项。

比如,从机节点作为存储端运行时,你可以通过下面的配置设定从机生成的缩略图规格:

bash 复制代码
[OptionOverwrite]
thumb_width = 400
thumb_height = 300
thumb_file_suffix = ._thumb
thumb_max_task_count = -1
thumb_encode_method = jpg
thumb_gc_after_gen = 0
thumb_encode_quality = 85

如果从机节点作为离线下载节点使用,你可以通过下面的配置覆盖默认的重试、超时参数,以避免默认的数值过于保守导致文件转存失败:

bash 复制代码
[OptionOverwrite]
; 任务队列最多并行执行的任务数
max_worker_num = 50
; 任务队列中转任务传输时,最大并行协程数
max_parallel_transfer = 10
; 中转分片上传失败后重试的最大次数
chunk_retries = 10

可选部署流程

反向代理

在自用或者小规模使用的场景下,你完全可以使用 Cloudreve 内置的 Web 服务器。但是如果你需要使用 HTTPS,亦或是需要与服务器上其他 Web 服务共存时,你可能需要使用主流 Web 服务器反向代理 Cloudreve ,以获得更丰富的扩展功能。

你需要在 Web 服务器中新建一个虚拟主机,完成所需的各项配置(如启用 HTTPS),然后在网站配置文件中加入反代规则:

Nginx

在网站的server字段中加入:

bash 复制代码
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;
}
Apache

VirtualHost 字段下加入反代配置项ProxyPass,比如:

bash 复制代码
<VirtualHost *:80>
    ServerName myapp.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /www/myapp/public

    # 以下为关键部分
    AllowEncodedSlashes NoDecode
    ProxyPass "/" "http://127.0.0.1:5212/" nocanon

</VirtualHost>
IIS

URL Rewrite: 点击下载

ARR: 点击下载

bash 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="HTTP to HTTPS redirect" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{HTTPS}" pattern="off" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
                </rule>
                <rule name="Rerwite" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="http://localhost:5212/{R:0}" />
                </rule>
            </rules>
        </rewrite>
        <security>
            <requestFiltering allowDoubleEscaping="true">
                <requestLimits maxAllowedContentLength="60000000" />
            </requestFiltering>
        </security>
    </system.webServer>
</configuration>

进程守护

Supervisor 不做介绍,我用的是Systemd

Systemd
bash 复制代码
# 编辑配置文件
vim /usr/lib/systemd/system/cloudreve.service

将下文 PATH_TO_CLOUDREVE 更换为程序所在目录:

bash 复制代码
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
After=mysqld.service
Wants=network.target

[Service]
WorkingDirectory=/PATH_TO_CLOUDREVE
ExecStart=/PATH_TO_CLOUDREVE/cloudreve
Restart=on-abnormal
RestartSec=5s
KillMode=mixed

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target
bash 复制代码
# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

管理命令

bash 复制代码
# 启动服务
systemctl start cloudreve

# 停止服务
systemctl stop cloudreve

# 重启服务
systemctl restart cloudreve

# 查看状态
systemctl status cloudreve

Docker

重置管理员密码

以下数据库脚本可以重设初始管理员(即 UID 为 1 的用户)的密码,新密码会在命令行日志中输出,请注意保存。

bash 复制代码
./cloudreve --database-script ResetAdminPassword

构建

Cloudreve支持编译构建,Cloudreve 项目主要由两部分组成:后端主仓库 cloudreve/Cloudreve,以及前端仓库 cloudreve/frontend。编译 Cloudreve 后端前,需要先构建assets 目录下的前端子模块,并使用 statik 嵌入到后端仓库,这里不展开讲了。

Cloudreve社区

https://forum.cloudreve.org/t/exp

禁止白嫖,点赞、收藏

相关推荐
ApacheSeaTunnel9 小时前
保姆级 SeaTunnel 入门!再学不会小编当场表演倒立敲代码
大数据·数据集成·seatunnel·技术分享·数据同步
Harvey663 天前
2026年01月24日最热门的开源项目(Github)
开源项目·周榜·月榜·活跃项目·热门项目·github 榜单·2026年01月24日
ApacheSeaTunnel7 天前
告别手敲 Schema!SeaTunnel 集成 Gravitino 元数据 RestApi 这个新动作有点酷
大数据·ai·seatunnel·技术分享·数据同步·gravitino
Harvey667 天前
2026年第02周最热门的开源项目(Github)
开源项目·周榜·月榜·活跃项目·热门项目·github 榜单·2026年第02周
Harvey6610 天前
2026年01月16日最热门的开源项目(Github)
开源项目·周榜·月榜·活跃项目·热门项目·github 榜单·2026年01月16日
Harvey6612 天前
2026年01月15日最热门的开源项目(Github)
开源项目·周榜·月榜·活跃项目·热门项目·github 榜单·2026年01月15日
答案—answer12 天前
开源项目:Three.js3D模型可视化编辑系统
javascript·3d·开源·开源项目·three.js·three.js编辑器
分布式存储与RustFS13 天前
MinIO社区版“躺平”,RustFS能接棒吗?
rust·开源项目·对象存储·企业存储·rustfs·minio国产化替代
Harvey6615 天前
2026年01月12日最热门的开源项目(Github)
开源项目·周榜·月榜·活跃项目·热门项目·github 榜单·2026年01月12日