在群晖NAS上搭建Cloudreve网盘系统


众所周知,某度网盘为了挣钱,对下载各种极限限速,速度能把人恶心死。但是,网盘类服务越来越成为人们的刚需,不管是个人生活中的照片,还是工作学习中各类资料,相信很多人都需要使用到网盘进行存储和分享。如果你不想忍受某度的速度,建议有条件的朋友可以试试自己搭建一套网盘系统,本文以Cloudreve为例,在群晖NAS上搭建一套属于自己的私人网盘服务,供读者们参考。
Cloudreve简介
Cloudreve是一款国人开发的能以最低的成本快速搭建公私兼备的网盘系统,使用GO + Gin + React + Redux + Material-UI架构,界面简洁,使用风格比较符合国人操作习惯,比Nextcloud要轻量易用,主要特色就是支持多家第三方云存储,比如七牛、又拍云、阿里云OSS、AWS S3、Onedrive等。
Cloudreve只要有以下特性:
☁️ 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 作为存储端
📤 上传/下载 支持客户端直传,支持下载限速
💾 可对接 Aria2 离线下载,可使用多个从机机点分担下载任务
📚 在线 压缩/解压缩、多文件打包下载
💻 覆盖全部存储策略的 WebDAV 协议支持
⚡ 拖拽上传、目录上传、流式上传处理
🗃️ 文件拖拽管理
👩‍👧‍👦 多用户、用户组
🔗 创建文件、目录的分享链接,可设定自动过期
👁️‍🗨️ 视频、图像、音频、文本、Office 文档在线预览
🎨 自定义配色、黑暗模式、PWA 应用、全站单页应用
🚀 All-In-One 打包,开箱即用
🐳 支持docker部署
部署方式
本文以命令行部署方式为例进行介绍,docker部署方式的后续会更新。
下载适用于您目标机器操作系统、CPU架构的主程序
下载地址:Releases · cloudreve/Cloudreve (github.com)

下载后进行解压
比如下载【cloudreve_3.7.1_linux_amd64.tar.gz】之后,进入下载目录进行操作
## 解压
tar -zxvf cloudreve_3.7.1_linux_amd64.tar.gz

启动程序
cd cloudreve_3.7.1_linux_amd64

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

## 启动,前台运行
./cloudreve

上面的启动方式是在前台运行,一旦退出终端,进程就会终止,使用下面命令后台运行
nohup ./cloudreve >/dev/null 2>&1 &

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

Cloudreve 默认会监听5212端口。你可以在浏览器中访问http://IP:5212进入 Cloudreve。
请记下初始管理员账号和初始管理员密码
如果初始管理员账号和初始管理员密码忘记了,删除同级目录下的cloudreve.db,重新启动主程序
在浏览器中输入群晖的ip+端口,即可访问到Cloudreve

部署反向代理
通过上面的操作,Cloudreve实际上已经在正常工作了,但是只能通过群晖的ip+端口的方式访问,如果需要通过公网环境访问,需要再配置端口映射和反向代理,有需要的读者可以参考博主的这篇文章中的方法进行配置:使用群晖WebStation安装Lsky兰空图床
关于反向代理,如果你想单独使用Nginx或Apache,可以按照下面方法设置即可:
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 NoDecode
ProxyPass "/" "http://127.0.0.1:5212/" nocanon

</VirtualHost>

守护进程
在部署方式章节中简单的介绍了如何启动Cloudreve,但是如果进程异常退出了,网盘就挂掉了,关注稳定性的读者可以使用守护程序来自动重启Cloudreve,本文以Systemd为例进行配置。
新增配置文件
# 编辑配置文件
vim /usr/lib/systemd/system/cloudreve.service

将下面内容添加到配置文件中
启动CLOUDREVE_DIR改为你的Cloudreve程序的目录路径
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
After=mysqld.service
Wants=network.target

[Service]
WorkingDirectory=/CLOUDREVE_DIR
ExecStart=nohup /CLOUDREVE_DIR/cloudreve >/dev/null 2>&1 &
Restart=on-abnormal
RestartSec=5s
KillMode=mixed

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target

管理命令
# 启动服务
systemctl start cloudreve

# 停止服务
systemctl stop cloudreve

# 重启服务
systemctl restart cloudreve

# 查看状态
systemctl status cloudreve

使用systemctl start cloudreve启动Cloudreve,即可实现进程守护
相关设置
使用初始管理员账号和密码登录系统,请到个人设置页面修改默认密码
如果你不想让别人在你的网盘上注册用户,请关闭允许新用户注册开关
路径为:管理面板——参数设置——注册与登录

Cloudreve默认将文件存储在本地,如果你想讲文件存储在第三方云上,可以添加存储策略
路径为:管理面板——储存策略——添加存储策略

重置初始管理员密码
如果忘记了初始管理员密码,除了删除cloudreve.db并重启外,还可以使用下面命令重置初始管理员密码
./cloudreve --database-script ResetAdminPassword

到顶部