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

禁止白嫖,点赞、收藏

相关推荐
冰 河2 天前
《Mycat核心技术》第08章:Mycat的限制
数据库·分布式·微服务·数据存储·mycat
Amd7944 天前
特殊数据类型的深度分析:JSON、数组和 HSTORE 的实用价值
postgresql·json·数据存储·数据类型·数组·日期和时间·hstore
Crazy Struggle8 天前
开源 Material Design WPF UI 控件库,易用且功能强大
wpf·开源项目·ui控件库·materialdesigninxamltoolkit
杨浦老苏10 天前
轻量级安全云存储方案Hoodik
docker·群晖·网盘
塔克拉玛攻城狮16 天前
私有网盘+在线文档:内网离线搭建NextCloud+OnlyOffice详细指南
docker·在线文档·网盘
Tassel_YUE19 天前
SmartX分享:SMTX ZBS 中 RDMA 技术简介
分布式存储·rdma·技术分享·块存储·smartx
Amd7941 个月前
数据类型与约束
mysql·数据存储·数据类型·数据库设计·数据完整性·约束条件·数据约束
Tassel_YUE1 个月前
openEuler 22.03 使用cephadm安装部署ceph集群
运维·ceph·学习笔记·openeuler·技术分享·服务部署
小信瑞1 个月前
NetApp ONTAP Select,适用于混合云的软件定义的数据存储服务
java·开发语言·数据库·数据存储·存储管理·网络存储