Cloudreve 是一个用Go语言写的公有网盘程序,我们可以用它来快速搭建起自己的网盘服务,公有云/私有云都可。
先来看看文档介绍吧。
Cloudreve
支持多家云存储驱动的公有云文件系统.
演示站 •
讨论社区 •
文档 •
下载 •
Telegram 群组 •
许可证
:sparkles: 特性
- :cloud: 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 作为存储端
- :outbox_tray: 上传/下载 支持客户端直传,支持下载限速
- ? 可对接 Aria2 离线下载
- ? 在线 压缩/解压缩、多文件打包下载
- ? 覆盖全部存储策略的 WebDAV 协议支持
- :zap: 拖拽上传、目录上传、流式上传处理
- :card_file_box: 文件拖拽管理
- :family_woman_girl_boy: 多用户、用户组
- :link: 创建文件、目录的分享链接,可设定自动过期
- :eye_speech_bubble: 视频、图像、音频、文本、Office 文档在线预览
- :art: 自定义配色、黑暗模式、PWA 应用、全站单页应用
- :rocket: All-In-One 打包,开箱即用
- ? ... ...
安装前的准备
安装之前我们需要准备好环境:
:hammer_and_wrench: 部署
Go语言环境
-
安装环境:CentOS Linux release 7.8.2003 (Core)
-
宝塔面板7.4.5
-
golang:go1.15.1.linux-amd64.tar.gz
视频中用的环境
- CentOS Linux release 7.9.2009 (Core)
- 宝塔面板7.5.1
- golang:go1.16.linux-amd64.tar.gz
- cloudreve_3.2.1_linux_amd64.tar.gz
Linux 常用命令
查看系统版本
ll /etc/*centos*
cat /etc/centos-release
常用的解压命令
tar –xvf file.tar
//解压 tar包
tar -xzvf file.tar.gz
//解压tar.gz
tar -xjvf file.tar.bz2
//解压 tar.bz2tar –xZvf file.tar.Z //解压tar.Z
Go简介
下载之前先去官网溜达下,点击【download go】就可进入下载页面:
根据自己的系统环境下载相应的版本,这里选择的是go1.15.1.linux-amd64.tar.gz。(新版用的是go1.16.linux-amd64.tar.gz)
下载安装
宝塔面板可以直接在面板里面下载安装,这里为了方便,直接就在命令环境下面下载安装配置了。
下载
SSH工具连接服务器开始操作:
cd /www/server && wget -O golang.tar.gz https://dl.google.com/go/go1.15.1.linux-amd64.tar.gz
上面是之前的安装,如果想要安装视频里的版本,可以用下面这个。
cd /www/server && wget -O golang.tar.gz https://golang.org/dl/go1.16.linux-amd64.tar.gz
这些可以直接在面板环境里操作,也很方便。
解压
下载好之后解压:
tar -xzvf golang.tar.gz
添加环境变量
添加环境变量,使用vim 打开/etc/profile 文件。
vim /etc/profile
在profile 最底部添加:
export GOROOT=/www/server/go
export GOBIN=$GOROOT/bin
export GOPKG=$GOROOT/pkg/tool/linux_amd64
export GOARCH=amd64
export GOOS=linux
export GOPATH=/www/wwwroot/Golang
export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin
丢一张图:
添加好之后,保存退出,然后执行如下命令使其生效:
source /etc/profile
测试是否生效
使用如下命令来测试Go语言环境是否安装成功。
go version
如果出现上图,表示我们已经安装成功了。
创建GOROOT目录
使用命令来创建,不过也可以用面板环境来进行可视化操作:
mkdir /www/wwwroot/Golang
通过上面的步骤,我们就完全安装好Go了。
Go run
我们可以用一段代码来验证一下go语言的运行。
我们到Golang里面新建一个文件命名为test.go
touch test.go
之后用vim简单编辑下,也可以直接到宝塔面板里新建编辑:
vim test.go
比如复制这段代码进去:
package main
import "fmt"
func main() {
/* 这是我的第一个简单的程序 */
fmt.Println("Hello, Roy's Blog!")
}
代码保存好之后,我们要开始执行 Go 程序了。
如何执行呢?
打开命令行,并进入程序文件保存的目录中。
go run test.go
出现下图:
成功执行了这一段代码,输出了“Hello, Roy's Blog!”
总结
整个环境的安装和简单的测试运行代码就说完了,希望对想学习Go语言的同学能有一点帮助。
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
Go 语言特色
- 简洁、快速、安全
- 并行、有趣、开源
- 内存管理、数组安全、编译迅速
Go 语言用途
1.Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
2.对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
安装Cloudreve
旧版:
cd /opt
wget https://github.com/cloudreve/Cloudreve/releases/download/3.1.1/cloudreve_3.1.1_linux_amd64.tar.gz
tar -zxvf cloudreve_3.1.1_linux_amd64.tar.gz #解压获取到的主程序
chmod +x ./cloudreve #赋予执行权限
./cloudreve #启动 Cloudreve
视频版本:
cd /opt
wget https://github.com/cloudreve/Cloudreve/releases/download/3.2.1/cloudreve_3.2.1_linux_amd64.tar.gz
tar -zxvf cloudreve_3.1.1_linux_amd64.tar.gz #解压获取到的主程序
chmod +x ./cloudreve #赋予执行权限
./cloudreve #启动 Cloudreve
分别复制命令回车执行,安装成功截图如下:
Cloudreve 在首次启动时,会创建初始管理员账号,请注意保管管理员密码,此密码只会在首次启动时出现。(比如我这里的'[email protected]','rgFzEBLc')
如果您忘记初始管理员密码,需要删除同级目录下的“cloudreve.db”,重新启动主程序以初始化新的管理员账户。
Cloudreve 默认会监听“5212”端口。你可以在浏览器中访问'http://服务器IP:5212'进入 Cloudreve。如果宝塔面板需要在安全中放行“5212”端口。注意用默认的管理账号和密码登录。
放行端口
服务器端
宝塔端
进程守护
以上步骤操作完后,最简单的部署就完成了。
我们需要一些更为具体的配置,才能让Cloudreve更好的工作,宝塔面板我们可以使用Supervisor管理器来设置进程守护,具体流程请参考下面的配置流程。
安装Supervisor管理器
在宝塔面板里头,软件商店→系统工具 ,找到Supervisor管理器安装即可。
添加守护进程
打开Supervisor管理器添加守护进程:
注意:路径修改为自己的。添加完成后,守护进程就会启动成功。
域名访问
新建网站,之后在网站设置中,配置反向代理。
添加域名解析
先在域名注册商那边把域名解析到服务器的IP上,我这边是腾讯的:
关于域名解析方面的知识,可以看这篇文章【服务器、域名购买】Namesilo优惠码和域名解析教程(附带服务器购买推荐和注意事项)
添加网站
设置HTTPS
给网站加上SSL,https访问(小绿锁):
配置Nginx反向代理
宝塔自带可以反向代理,但是不好用,而且貌似只能设置一个:
这里我建议直接在网站的Nginx配置文件里修改:
选中这部分,把他们变成注释(前面加#号):
然后在这之后加上下面的代码:
location / {
proxy_pass http://127.0.0.1:5212/;
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
大功告成!
现在就可以用域名打开Cloudreve 访问了,我这里是https://cloud.yirenliu.cn:
管理面板:
支持的存储策略:
添加oneindex存储策略时详细的引导:
离线下载:
还有其他很多功能,大家自行尝试摸索~
进阶
首次启动时,Cloudreve 会在同级目录下创建名为“conf.ini”的配置文件,我们可以修改此文件进行一些参数的配置,保存后需要重新启动 Cloudreve 生效。
默认情况下,Cloudreve 会使用内置的 SQLite 数据库,并在同级目录创建数据库文件“cloudreve.db”,如果我们想要使用 MySQL,可以在配置文件中加入以下内容,并重启 Cloudreve。(非必须)
[Database]
#数据库类型,目前支持 sqlite | mysql
Type = mysql
#用户名,以你数据库的为准
User = cloudreve
#密码,以你数据库的为准
Password = root
#数据库地址
Host = 127.0.0.1
#数据库名称,以你数据库的为准
Name = v3
#数据表前缀
TablePrefix = cd
注意:更换数据库配置后,Cloudreve 会重新初始化数据库,原有的数据将会丢失。
记下新的账户和密码。
注意这边因为我们已经启动了一次cloudreve,所以重启的时候会提示端口被占用。
我们可以重启一下服务器,就能用新的账户密码登录了。
登录后,记得改一下默认的账户和密码:
默认用户只有1GB的空间,我们可以根据自己的vps大小更改空间大小。
其实小文件(100M以内)完全可以用蓝奏云来储存,速度快。
点击注册:蓝奏云
修改默认的上传文件大小
我们这边的网盘一般可能会放一些大一点的文件,现在如果传会发现传不上去,原因是Nginx默认最大上传文件是50M,我们需要修改一下Nginx默认的上传文件大小:
可以改成5120(5G)大小,然后记得重载一下配置。
如果是国内的服务器,备案完成之后,可以去白嫖七牛云和又拍云的每月10个G的空间,一般就挺够用了。我之前腾讯云新客户买的服务器88月一年,备案了之后白嫖了他们的空间,还是挺香的。
现在腾讯云也有1核2G的服务器95元一年的活动,有兴趣的可以去撸一年:【腾讯云】十周年感恩回馈,1核2G云服务器首年95元,4核云服务器额外赠送150GB高性能云数据盘,十年筑梦,伴你同行!
因为88块的服务器到期续费比较贵,我到今年11月到期就不打算续费了(当初一下买3年就划算了,可惜),我这边现在用的是24元/月的腾讯香港轻量云服务器,刚出的,电信走的CN2 GIA线路,用了俩个月还不错,可惜现在还在内测阶段,和我另外一个阿里云香港轻量应用服务器相比,少了快照功能,希望TX早点出这个功能,方便折腾。
我的服务器是腾讯云香港轻量服务器,不用备案,所以也嫖不了。
现在可以正常上传了,我这边上传速度在3M左右。
可以正常播放视频:
分享的链接可以带密码保护、设置过期时间、允许预览等等:
如果分享的密码忘了,或者想要修改分享的信息,在后台-我的分享里头也可以查看分享链接的信息:
被分享者打开链接看到的界面:
我这边是移动的网络,下载速度大概在3.5M/s左右:
最后
从使用体验来看,cloudreve效果很不错,功能强大,支持存储种类也多,唯一不足的地方竟然不支持Google Drive 。作者更是说目前不支持,未来也不会支持。
场景使用:可以使用 Cloudreve 搭建个人用网盘、文件分享系统,亦或是针对大小团体的公有云系统。
参考资料
https://www.daniao.org/8544.html
https://www.daniao.org/5094.html
https://www.gitiu.com/reprinted_articles/cloudreve-v3-and-go-install/