众所周知,某度网盘为了挣钱,各种极限限速,下载限速能把人恶心死。但是,网盘类服务越来越成为人们的刚需,不管是个人生活中的照片,还是工作学习中各类资料,相信很多人都需要使用到网盘进行存储和分享。如果你不想忍受某度的速度,建议有条件的朋友可以试试自己搭建一套网盘系统,本文以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架构的主程序
下载地址:下载地址
下载后进行解压
比如下载【cloudreve_3.4.2_linux_amd64.tar.gz】之后,进入下载目录进行操作
# 解压
tar -zxvf cloudreve_3.4.2_linux_amd64.tar.gz启动程序
cd cloudreve_3.4.2_linux_amd64
# 赋予执行权限
chmod +x ./cloudreve
# 启动,前台运行
./cloudreve上面的启动方式是在前台运行,一旦退出终端,进程就会终止,使用下面命令后台运行
nohup ./cloudreve >/dev/null 2>&1 &
等待程序初始化配置
Cloudreve 在首次启动时,会创建初始管理员账号,请注意保管管理员密码,此密码只会在首次启动时出现。如果您忘记初始管理员密码,需要删除同级目录下的
cloudreve.db
,重新启动主程序以初始化新的管理员账户。- Cloudreve 默认会监听
5212
端口。你可以在浏览器中访问http://IP:5212
进入 Cloudreve。 - 请记下初始管理员账号和初始管理员密码
- 如果初始管理员账号和初始管理员密码忘记了,删除同级目录下的
cloudreve.db
,重新启动主程序
- Cloudreve 默认会监听
在浏览器中输入群晖的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