简单易用私人网盘系统Cloudreve搭建安装教程

相信用过国内限速的网络云盘的朋友们都有过相同感受,下载怎么这么慢!?不禁开始说出优美的中国话.. 工信部整顿“网盘限速”后,各大网盘确有改善不少,不过还是很难用啊。如果是用自己的服务器搭建一个网盘私人网盘系统,那么稳定性、隐私空间,传输速率还是可以保证的。

接下来介绍的是开源网盘系统Cloudreve,其他暂且不说,就论它搭建安装,实在是太便捷友好了!仅仅只需要复制下面这一串代码,即可开始使用。之前折腾搭建安装过Seafile,失败了。这一对比Cloudreve,对于看不太懂代码的小白,Cloudreve的简易安装是真的好使。

Cloudreve 功能介绍

主要特色功能如下,更多功能介绍可直达官网查看。

  • 多样化的外部存储:支持对接多种外部存储存储端,文件的上传和下载全部为客户端直传,无需经过您的服务器中转。
  • 虚拟文件系统:Cloudreve 基于 DBMS 构建了一层文件系统抽象,将用户文件和物理文件结构隔离,用户管理文件时无需关注底层存储方式,也可同时管理多个外部存储。
  • 从机存储节点:您可以将多个 Cloudreve 实例组成主从集群,将文件、离线下载任务分配到不同的服务器处理。
  • 流畅的文件上传、管理体验:在 Web 端,Cloudreve 提供了强大的文件管理及上传组件,通过拖拽管理文件;多选、范围选择批量操作文件,对文件进行分享、移动、复制、压缩等操作。功能丰富的上传任务管理器,支持目录上传、断点续传、并行上传、拖拽文件上传。
  • 对接外部云存储提供商:支持使用本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、AWS S3、OneDrive 作为存储端,上传/下载 均支持客户端直传,无需服务器中转。
  • 构建您的私人离线资源库:将磁力链、种子文件、下载链接交给 Cloudreve 处理,Cloudreve 会在服务端下载您指定的文件, 并自动上传到对应的存储端中.您还可以通过从机 Cloudreve 节点,将不同的离线下载和转存任务分配到不同服务器处理,减轻主节点的负载压力。
  • 从多种设备、应用中访问您的文件:通过 WebDAV 协议,您可以在所有支持 WebDAV 协议的应用中访问并操作文件,包括 系统文件管理器、 各种文件管理器客户端、视频播放器、笔记软件等。
  • 创建分享链接来分享您的文件、目录,为你的分享链接设置密码保护、自动过期、收费分享。

Cloudreve搭建安装流程

项目地址:https://docs.cloudreve.org/,下面以Ubuntu 20.04 系统,CPU架构为AMD64的VPS为例,在其上搭建安装Cloudreve网盘系统,访问域名为cloud.example.com。不同之处请自行修改。

获取 Cloudreve

你可以在 GitHub Release 页面获取已经构建打包完成的主程序。其中每个版本都提供了常见系统架构下可用的主程序,命名规则为cloudreve_版本号_操作系统_CPU架构.tar.gz 。比如,普通64位Linux系统上部署3.0.0版本,则应该下载cloudreve_3.0.0_linux_amd64.tar.gz。如果你想体验最新的功能特性,可以在 GitHub Actions 中下载每次 commit 后构建的开发版。注意,开发版并不稳定,无法用于生产用途,且不保证完全可用。

启动 Cloudreve

SSH远程登录到Linux服务器,直接获取、解压并执行主程序即可:

apt-get update && apt-get upgrade
cd /usr/bin

wget https://github.com/cloudreve/Cloudreve/releases/download/3.5.3/cloudreve_3.5.3_linux_amd64.tar.gz

#解压获取到的主程序
tar -zxvf cloudreve_3.5.3_linux_amd64.tar.gz

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

# 启动 Cloudreve
./cloudreve
简单易用开源私人云盘Cloudreve搭建安装教程

访问http://服务器IP:5212,使用首次启动Cloudreve打印出来的账号密码登录。登录后修改账号密码。Ctrl+C结束Cloudreve。

简单易用私人网盘系统Cloudreve安装教程

进程守护

使用Systemd方式:

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

将下文 PATH_TO_CLOUDREVE 更换为程序所在目录:

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

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

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target

启动Cloudreve

# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

反向代理

在自用或者小规模使用的场景下,你完全可以使用 Cloudreve 内置的 Web 服务器。但是如果你需要使用HTTPS,亦或是需要与服务器上其他 Web 服务共存时,你可能需要使用主流 Web 服务器反向代理 Cloudreve ,以获得更丰富的扩展功能。你需要在Web服务器中新建一个虚拟主机,完成所需的各项配置(如启用HTTPS)。

先将你要使用的域名解析到你服务器的IP。这里先介绍使用Nginx反向代理Cloudreve。

安装 nginx和 acme

sudo -i
apt-get install -y nginx

配置nginx虚拟主机

mkdir -p /www/log/  # 在此之前新建一个目录 (可选)

cd /etc/nginx/sites-available
sudo vi cloud.example.com # 进入文件写入如下相应配置后保存
cd ../sites-enabled
sudo ln -s ../sites-available/cloud.example.com

加入反代规则,内容如下:

server
{
	listen 80;
        listen [::]:80;

	server_name cloud.example.com;       # 这里替换为自己的域名

	location ^~ /.well-known/ {
	default_type "text/plain";
	allow all;
        root /var/www/cloud-ssl;
}


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;        # 这里限制了单个文件上传的大小
}
}

完成后启动nginx,设置开机启动

systemctl reload nginx
systemctl enable nginx

配置HTTPS访问

# 生成证书(在这一步前要完成域名解析)
mkdir -p /var/www/cloud-ssl
chmod a+r /var/www/cloud-ssl

curl https://get.acme.sh | sh -s email=my@is-udomain.com
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
~/.acme.sh/acme.sh --issue -d cloud.example.com -w /var/www/cloud-ssl

编辑/etc/nginx/sites-enabled/cloud.example.com,写入最终nginx配置。有四个地方需要根据自己的情况进行替换。

server
{
	listen 80;
        listen [::]:80;

	server_name cloud.example.com;       # 这里替换自己的域名

	location ^~ /.well-known/ {
	default_type "text/plain";
	allow all;
        root /var/www/cloud-ssl;
}


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;        # 这里限制了单个文件上传的大小
}
}

server
{
	listen 443 ssl http2;
        listen [::]:443 ssl http2;

	server_name cloud.example.com;       # 这里替换自己的域名

	location ^~ /.well-known/ {
	default_type "text/plain";
	allow all;
        root /var/www/cloud-ssl;
}


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;        # 这里限制了单个文件上传的大小
}

ssl_certificate /etc/nginx/certs/fullchain.cer;     # 这里是你的证书地址
ssl_certificate_key /etc/nginx/certs/cloud.example.com.key; # 这里是你的密钥路径
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_session_timeout 10m;
}

必须使用以下命令将生成的证书复制到证书文件的存储目录,请勿使用~/.acme.sh/文件夹中的证书文件,它们仅供内部使用,文件夹结构将来可能会更改。

mkdir /etc/nginx/certs

~/.acme.sh/acme.sh --install-cert -d cloud.ninest.top \
--key-file       /etc/nginx/certs/cloud.example.com.key   \
--fullchain-file  /etc/nginx/certs/fullchain.cer \
--reloadcmd     "service nginx force-reload"

这里看到Reload success即是成功!可以使用域名 https://cloud.example.com 访问登录搭建好的Cloudreve网盘啦!

如果遇到上传文件错误:无法解析响应。那需要修改反向代理配置里的client_max_body_size的值,因为它限制了单个文件上传的大小。

Cloudreve搭建教程

如没问题,我们接下来配置离线下载。

另:如果不使用Nginx反向代理Cloudreve,而想直接使用 Cloudreve 内置 Web 服务器,那么忽略nginx配置这部分内容,编辑/usr/bin/conf.ini 文件,添加以下配置代码:

[SSL]
Listen = :443
CertPath = /etc/nginx/certs/fullchain.cer
KeyPath = /etc/nginx/certs/cloud.example.com.key

指定配置文件路径:

cd /usr/bin/
./cloudreve -c /usr/bin/conf.ini

安装 Aria2 离线下载

首先安装Aria2,再接入Cloudreve。

推荐在日常启动流程中,先启动 Aria2,再启动 Cloudreve,这样 Cloudreve 可以向 Aria2 订阅事件通知,下载状态变更处理更及时。当然,如果没有这一流程,Cloudreve 也会通过轮询追踪任务状态。

Aria2安装

Aria2 github地址:https://github.com/P3TERX/aria2.sh

apt install wget curl ca-certificates

wget -N git.io/aria2.sh && chmod +x aria2.sh

./aria2.sh

输入1并回车来安装Aria2,再次输入 ./aria2.sh ,输入7查看配置文件中的 rpc-secret ,启动Aria2后将其与Cloudreve对接。

接入Cloudreve

前往 Cloudreve 的 管理面板→离线下载节点,选择启用主机接管离线下载任务,根据指引填写信息并测试是否可以与aria2正常通信。

对于其中重要参数项的解释如下:

RPC 服务器地址

Aria2 RPC 服务器的地址,一般可填写为http://127.0.0.1:6800/ 。其中6800 为上文 Aria2 配置文件中指定的监听端口。您可以使用 WebSocket 通信,此处填写为ws://127.0.0.1:6800/ 。

RPC Secret

上文中您在 Aria2 配置文件中设定的 RPC 授权令牌

临时下载目录

Cloudreve 会指定 Aria2 将文件下载到此目录中,下载完成后 Cloudreve 会复制到指定的存储策略,并删除文件。此目录必须为绝对路径,否则 Cloudreve 在任务下载完成后会找不到文件。Windows 下指定的绝对路径应该携带盘符,比如G:\www\downloads 。

状态刷新间隔(秒)

指定针对每一个任务,Cloudreve 向 Aria2 轮询更新任务状态的间隔。用户再前台看到的任务进度不会实时更新,而是根据这里设定的间隔自动刷新。

全局任务参数

在此处指定 Cloudreve 创建 Aria2 下载任务时携带的额外参数,如果 Aria2 未与其他服务公共时,你也可以在 Aria2 的配置文件中指定这些参数。具体的可用参数可参考官方文档,以 JSON 的格式填写在这里。如果格式有误,可能会导致无法创建任务。以下为一个填写示例,指定了最大并行任务数和 Tracker 服务器列表:

{
	"max-concurrent-downloads": 10,
	"bt-tracker": [
		"udp://tracker.coppersurfer.tk:6969/announce",
		"udp://tracker.opentrackr.org:1337/announce",
		"udp://tracker.leechers-paradise.org:6969/announce"
	]
}

重启 Cloudreve,搞定!

systemctl restart cloudreve

挂载 OneDrive 云盘

前往 Cloudreve 的 管理面板→存储策略→添加存储策略,官方说明已经很清楚,按提示操作挂载 OneDrive 或其他云盘即可。

完成后到用户组里,将存储策略修改为你新添加的。到这里已经完成了全部 Cloudreve 网盘搭建流程!

发表评论

您的电子邮箱地址不会被公开。