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

作者 胡萝虎 日期 2022-03-03
在群晖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部署方式博主后续会更新。

  1. 下载适用于您目标机器操作系统、CPU架构的主程序

    下载地址:下载地址

    image-20220303214902934

  2. 下载后进行解压

    比如下载【cloudreve_3.4.2_linux_amd64.tar.gz】之后,进入下载目录进行操作

    ## 解压
    tar -zxvf cloudreve_3.4.2_linux_amd64.tar.gz
  3. 启动程序

    cd cloudreve_3.4.2_linux_amd64

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

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

    上面的启动方式是在前台运行,一旦退出终端,进程就会终止,使用下面命令后台运行

    nohup ./cloudreve >/dev/null 2>&1 &
  4. 等待程序初始化配置

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

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

    image-20220303215521815

  5. 在浏览器中输入群晖的ip+端口,即可访问到Cloudreve

    image-20220303220022987

部署反向代理

通过上面的操作,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为例进行配置。

  1. 新增配置文件

    # 编辑配置文件
    vim /usr/lib/systemd/system/cloudreve.service
  2. 将下面内容添加到配置文件中

    启动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
  3. 管理命令

    # 启动服务
    systemctl start cloudreve

    # 停止服务
    systemctl stop cloudreve

    # 重启服务
    systemctl restart cloudreve

    # 查看状态
    systemctl status cloudreve

    使用systemctl start cloudreve启动Cloudreve,即可实现进程守护

相关设置

  1. 使用初始管理员账号和密码登录系统,请到个人设置页面修改默认密码

  2. 如果你不想让别人在你的网盘上注册用户,请关闭允许新用户注册开关

    路径为:管理面板——参数设置——注册与登录

    image-20220303221859944

  3. Cloudreve默认将文件存储在本地,如果你想讲文件存储在第三方云上,可以添加存储策略

    路径为:管理面板——储存策略——添加存储策略

    image-20220303222356629

  4. 重置初始管理员密码

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

    ./cloudreve --database-script ResetAdminPassword
“扫一扫接着看”