当前位置:首页 > 学习 > 正文内容

CentOS下搭建Cloudreve对接Aria2实现网盘和在线下载功能

hunterzuo2年前 (2023-06-17)学习368

13a13c8120f5b1203507409eecffbe31.png

一直想要一个在线的大容量网盘,把本机上一些文档、视频以及网上搜集的一些资源放到网盘上,一来节约本地硬盘资源,二来可以实现网络共享,随时随地可以查看,第三也相当于把这些资源在网络上做个备份。要实现这些功能有很多方案,我网上搜索查询了以后,最后选择了Cloudreve和Aria2这个组合,搭建Cloudreve作为网盘平台,打开webdav把网盘空间映射到本地PC作为网络磁盘使用。这个方案很成熟,教程也很多,但是里面也有一些坑,尤其在使用docker搭建的时候,走了一点弯路。这个教程不是原创,而是把我自己的搭建过程记录下来,以备今后之用。

安装docker和docker-compose

# 下载docker安装脚本
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
$ sudo systemctl start docker
$ sudo systemctl enable docker

# 下载docker-compose二进制文件
$ curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予执行权限
$ sudo chmod +x /usr/local/bin/docker-compose

# 创建软链接
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 测试是否安装成功
$ docker-compose version
## 如果返回显示了版本号就是安装成功了

Aria2安装时的避坑指南

网上有不少使用docker或者docker-compose安装cloudreve和aria2的教程,但安装好之后发现(具体的安装过程就不贴了,反正没有用),cloudreve基本上都没有问题,aira2也显示安装成功了,但是在cloudreve面板里始终无法做到与aria2的对接,刚开始十分抓狂,总也找不出问题,最后仔细阅读了官方文档以后,才发现漏掉了一个很关键的东西Aria2需要与主机Cloudreve进程共用相同的文件系统因为网上大部分提供的docker-compose配置文件,都是把cloudreve和aria2作为两个容器来运行的,自然无法做到共用相同的文件系统。为此,我踩了不少的坑。这里有两个方面需要记录下来的。

Snipaste_2023-06-26_18-44-31.png

第一种情况,如果aria2和cloudreve作为两个容器来运行,要想保证两者正常通信,RPC服务器地址就不能填写http://127.0.0.1:6800,而需要使用运行容器时,给aria2分配的内部ip地址,比如172.28.*.*,否则无法与cloudreve进行通信

Snipaste_2023-06-26_18-59-27.png

第二种情况,即便第一种情况所列的问题解决了,rpc服务器地址填对了可以与cloudreve通信实现了离线下载,但是会在下载完成进行转存的时候出现错误,总是转存失败。经过检查,发现存储的文件还在docker的容器里,无法转存到映射的目录里。起初,我以为是映射目录的权限问题,折腾来折腾去无法解决问题。网上搜了很多,也没有发现哪里出了问题。终于,阅读了官方文档后恍然大悟,还是因为aria2和cloudreve没有共用相同的文件系统造成的。忘记了截图,就不贴图出来了。

搞清楚了这两个坑之后,我明白了要实现cloudreve与aria2对接,还是不要偷懒用docker一键安装cloudreve和aria2,而是需要把cloudreve和aria2分开来手动安装,然后再实现对接,这样才可以避免aria2与cloudreve没有使用共同的文件系统而造成的这样那样的问题(至少我很难解决)。下面就来记录正确的安装过程:

安装Cloudreve

# 进入lnmp已经建立的网站目录,下载cloudreve
$ wget https://github.com/cloudreve/Cloudreve/releases/download/3.7.1/cloudreve_3.7.1_linux_amd64.tar.gz

# 解压cloudreve
$ tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz

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

# 运行cloudreve
$ ./cloudreve

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

这时候就可以访问你的域名的5212端口,http://yourdomain.com:5212,就可以看到登陆界面了。这时候还需要设置反向代理,找到网站的配置文件,把以下一段代码写入配置文件,然后重启nginx

location ^~ /
{
    proxy_pass http://127.0.0.1:5212;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;
    add_header X-Cache $upstream_cache_status;
}

添加开启启动

# 编辑配置文件
$ sudo vim /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=/PATH_TO_CLOUDREVE
ExecStart=/PATH_TO_CLOUDREVE/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

后来补充:Centos 8的环境下,原先Centos 7开机脚本已经无法使用了,这里列一个开机启动的办法

#  编辑rc.local文件
vi /etc/rc.local

#  添加一行内容
/cloudreve的绝对路径/cloudreve

#  加入可执行属性
chmod +x /etc/rc.d/rc.local

#  配置rc.local服务
vi /usr/lib/systemd/system/rc-local.service

Snipaste_2024-04-24_21-14-14.png

Snipaste_2024-04-24_21-15-08.png

最后的install一段不可少,如果当前的service文件中没有这段,需手动添加(默认有前两部分) 否则服务启动时会报错

安装Aria2程序

# 下载aria2一键安装脚本
$ wget http://down.nifeng.win/shell/aria2.sh

# 赋予执行权限
$ sodu chmod +x ./aria2.sh

# 执行脚本
$ ./aria2.sh

这个脚本还是很好用的,根据自己的需要进行安装,建议下载文件的位置放到网站目录里,便于管理。如果安装的时候忘记选择下载文件位置了,可以再次运行脚本,选择修改配置,很方便。

Snipaste_2023-06-26_20-53-15.png

安装完成后,会显示ip、端口、secret以及下载的位置需要记住,之后要填到cloudreve的离线下载配置里面。当然,如果忘记了,可以运行aria2脚本再次查看或者修改。

Snipaste_2023-06-26_20-57-15.png

至此,cloudreve和aria2就安装完成了。下面,要进入cloudreve的管里面板做一些设置。点击右上角点击进入管理面板,然后点击离线下载节点;随后点击编辑,依次输入有关的信息

Snipaste_2023-06-26_21-02-50.png

Snipaste_2023-06-26_21-12-00.png

Snipaste_2023-06-26_21-13-51.png

最后点击Aria2测试通信,如果出现以下情况,就表示设置成功了

Snipaste_2023-06-26_21-20-14.png

Snipaste_2023-06-26_21-25-06.png


扫描二维码推送至手机访问。

版权声明:本文由人生如诗发布,如需转载请注明出处。

本文链接:https://blog.nifeng.win/?id=8

分享给朋友:

“CentOS下搭建Cloudreve对接Aria2实现网盘和在线下载功能” 的相关文章

CentOS下搭建Zdir目录列表程序

CentOS下搭建Zdir目录列表程序

Zdir是一款相对比较流行的目录列表程序,与Directory Lister不同的是Zdir可以用户登录以后实现文件上传,可以实现文件分享、二维码等功能。相比起其他的目录列表程序,Zdir也是比较轻量、简洁的,受到了很多人的欢迎。它并没有像Directory Lister那样最朴素的直链功能,但仍然...

CentOS下搭建WebSSH并配置密码访问

CentOS下搭建WebSSH并配置密码访问

自己平时比较喜欢折腾,手上有一些linux系统的vps,有的时候不在家里或者办公室没有SSH客户端,管理这些vps比较麻烦。这几天在网上逛,发现可以通过搭建网页版的SSH客户端,这下就方便了。只要把webssh放在一台网络比较友好的vps上,那么几乎可以实现随时随地方便地连接和管理我的vps了。今天...

CentOS下搭建TinyProxy代理服务器

CentOS下搭建TinyProxy代理服务器

  TinyProxy是一个linux下的轻量级代理服务器软件,功能比较全面,软件的安装和配置相对于squid proxy来说比较简单,适用于搭建简易的要求不高的http(s)代理服务器,个人使用是完全足够了。我的应用场景是用美国服务器搭建了一个cloudreve个人网盘,用Raidriv...