利用Cloudreve建立自己的私人网盘

利用Cloudreve建立自己的私人网盘

Cloudreve 官网地址:https://cloudreve.org/
Cloudreve 官方文档:https://docs.cloudreve.org/
Github 开源:https://github.com/cloudreve/Cloudreve

Cloudreve

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

Cloudreve 优点

目前市面上有很多开源的私人网盘系统,但是都存在一定的的冗余,并且功能往往向OA系统靠拢,对于个人用户不太友好。Cloudreve 不仅有完备的网盘系统,同时界面简洁优美,易于操作,还支持和他人共享文件。

  • ☁️ 支持本机、从机、七牛、阿里云OSS、腾讯云COS、又拍云、OneDrive
  • 📤 上传/下载 支持客户端直传,支持下载限速
  • 💾 可对接 Aria2 离线下载
  • 📚 在线 压缩/解压缩、多文件打包下载
  • 💻 覆盖全部存储策略的 WebDAV 协议支持
  • ⚡ 拖拽上传、目录上传、流式上传处理
  • 🗃️ 文件拖拽管理
  • 👩‍👧‍👦 多用户、用户组
  • 🔗 创建文件、目录的分享链接,可设定自动过期
  • 👁️‍🗨️ 视频、图像、音频、文本、Office 文档在线预览
  • 🎨 自定义配色、黑暗模式、PWA 应用、全站单页应用
  • 🚀 All-In-One 打包,开箱即用
  • 🌈 ... ...

安装 Cloudreve

获取 Cloudreve

根据当前系统版本下载对应的Cloudreve压缩包并上传到服务器
下载地址:https://github.com/cloudreve/Cloudreve/releases

Linux服务器一般使用amd64版本、Windows仅支持64位版本

启动 Cloudreve(Linux)

#解压获取到的主程序
tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz

# 赋予执行权限
chmod +x ./cloudreve

# 启动 Cloudreve
./cloudreve

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

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

配置域名访问

Nginx在域名的配置文件server字段中加入:

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,比如:

<VirtualHost *:80>
    ServerName myapp.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /www/myapp/public
    
    # 以下为关键部分
    AllowEncodedSlashes NoDecod
    ProxyPass "/" "http://127.0.0.1:5212/" nocanon
    
</VirtualHost>

进程守护

在我们使用命令行启动Cloudreve时,一旦结束命令,Cloudreve就会退出,导致无法访问,我们可以使用配置service的方式来保证Cloudreve的持续运行。

使用以下命令下载service模板到服务器并编辑

#下载
sudo wget -P /usr/lib/systemd/system/ https://cos3.oren.ink/share/cloudreve.service

# 编辑配置文件
vim /usr/lib/systemd/system/cloudreve.service

将下文 /Path 替换为程序所在目录:

[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
Wants=network.target

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

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target

更改完成后,可以使用以下命令来启动服务

# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

现在,你就可以使用IP:5212或者你设置好的域名访问网站了。

Cloudreve 进阶

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

使用Mysql

默认情况下,Cloudreve 会使用内置的 SQLite 数据库,并在同级目录创建数据库文件cloudreve.db,如果您想要使用 MySQL,请按照以下步骤操作。

1、使用命令停止服务

systemctl stop cloudreve

2、在配置文件中加入以下内容。注意,Cloudreve 只支持大于或等于 5.7 版本的 MySQL 。

[Database]
; 数据库类型,目前支持 sqlite | mysql
Type = mysql
; MySQL 端口
Port = 3306
; 用户名
User = root
; 密码
Password = root
; 数据库地址
Host = 127.0.0.1
; 数据库名称
Name = v3
; 数据表前缀
TablePrefix = cd_

3、启动Cloudreve生成管理员账号(/Path替换为程序所在目录)

#启动程序
/Path/cloudreve

#结束
ctrl+c

#使用服务启动
systemctl restart cloudreve

至此,已经实现了Mysql的替换。

自定义前端

自定义前端:https://docs.cloudreve.org/use/zi-ding-yi-qian-duan

离线下载

离线下载:https://docs.cloudreve.org/use/aria2

本地代码构建

构建:https://docs.cloudreve.org/getting-started/build

安装时踩的坑

  1. 目前Cloudreve并不支持CDN,配置CDN后会出现无法应用设置,无法删除文件的情况。
  2. 在配置存储策略时尽量使用向导模式,专家模式内容不全。
  3. 使用宝塔面板或者其他一些守护类应用的,需要将cloudreve添加至白名单,避免被清除。