目录
-
- 先来看下Cloudreve
- Cloudreve介绍
- [Cloudreve 社区版](#Cloudreve 社区版)
- [Cloudreve 捐助版](#Cloudreve 捐助版)
- [Cloudreve for ios](#Cloudreve for ios)
- Cloudreve价格表
- 支持WebDAV
- 支持生成缩略图
- 下载地址
-
- [GitHub issues](#GitHub issues)
- 安装部署
- 可选部署流程
- Docker
- 重置管理员密码
- 构建
- Cloudreve社区
先来看下Cloudreve
登录注册页面
登录后的首页
个人设置页面
管理面板
Cloudreve介绍
Cloudreve 可以让您快速搭建起公私兼备的网盘系统。Cloudreve 在底层支持不同的云存储平台,用户在实际使用时无须关心物理存储方式。你可以使用 Cloudreve 搭建个人用网盘、文件分享系统,亦或是针对大小团体的公有云系统。
Cloudreve 提供了社区版、捐助版、IOS订阅版,对于我来说IOS订阅版用不到,社区版是免费的,对于个人使用足够了,捐助版价格399元,功能比社区版功能要多,完美主义者可以上。
官方演示站
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
其中 CertPath 和KeyPath 分别为 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
禁止白嫖,点赞、收藏