某酱の博客
为逐梦努力~
© 繁星(FXIT)博客
粤ICP备15059744号
All Rights Reserved.
Powered by FXIT!

Cloudreve-v3版本修改源码&构建编译教程

Cloudreve是一个支持多种存储方案的云盘系统,可以很方便地搭建一个属于自己的云盘。

最近Cloudreve有一次大更新,将v2版本升级到了v3版本,由原来的ThinkPHP ,更换成了Go版本,将前后端整合为一个可执行文件,直接运行就可以,十分方便。

但有利也有弊,这对于一些需要修改源码的人不太友好,尤其是不太熟悉Go的(例如博主)。

认真研究的话,其实还好,需要熟悉Cloudreve v3前后端的基本组成,以及对material-ui有基本的认识。


博主使用系统:Centos7 amd64

博主在本地虚拟机使用Centos7编译好之后上传到服务器上(Ubuntu)就可以使用了。

必备环境:Go+Node.js+Yarn+statik 命令行工具

Cloudreve 项目主要由两部分组成:后端主仓库 cloudreve/Cloudreve,以及前端仓库 cloudreve/frontend 。编译 Cloudreve 后端前,需要先构建assets 目录下的前端子模块,并使用statik嵌入到后端仓库。


Step.1-安装Node.js

我们可以使用epel-release安装Node

然后使用

检查一下是否安装成功。

这个时候我们通过epel安装的node版本比较旧,达不到Cloudreve编译的要求,我们使用:

来将node升级到10.3.0即可。


Step.2-安装Yarn

我们可以通过 RPM 包仓库安装 Yarn:

然后输入:

之后使用

即可简单地将yarn安装完成了。

我们使用

来看看yarn是否安装成功。


Step.3-安装Go

首先在 ~ 下创建 go 文件夹,并进入 go 文件夹

然后在Golang官网下载地址选择适合你系统的Go版本,博主这里选择的是go1.14.1.linux-amd64.tar.gz

下载安装包:

然后解压到/usr/loacl目录下:

然后添加/usr/loacl/go/bin目录到PATH变量中

在最后一行加入:

:wq保存后,使用

使配置生效。

最后使用

来看看Go是否安装成功。


Step.4-安装statik 命令行工具

一句命令搞定:


Step.5-下载&修改Cloudreve源码

首先安装git工具(已安装请忽视),然后克隆GitHub上的源码:

然后我们

assets里面的就是前端的源码,一般我们只需修改assets文件夹里面的即可。

由于Cloudreve前端是使用material-ui的,大家可以自行去material-ui官网,里面有比较详细的例子和教程,相信花时间琢磨一下是不难的。

修改好前端源码之后我们安装一下依赖。


Step.6-构建&编译

assets目录下,我们使用

来构建修改好的前端的代码。

完成后,所构建的静态资源文件位于assets/build 目录下。

你可以将此目录改名为statics 目录,放置在 Cloudreve 主程序同级目录下并重启 Cloudreve,Cloudreve 将会使用此目录下的静态资源文件,而非内置的。

然后我们开始嵌入静态资源:

如果在嵌入时找不到statik 命令,请尝试执行:export PATH=$PATH:$(go env GOPATH)/bin

之后,我们就可以编译可执行文件了:

首次编译时,Go 会下载相关依赖库,如果您的网络环境不佳,可能会导致这一步速度过慢或者失败。你可以使用 GOPROXY.IO 加快模块下载速度。

编译完成后,会在项目根目录下生成最终的可执行文件cloudreve

然后我们将cloudreve 这个可执行文件上传到服务端或者生产环境中,就可以使用了。(注意系统架构要相同)


Step.7-修改和一键编译篇

当我们需要再次修改源码时,我们又要重新执行上面的一大串步骤重新编译可执行文件。

为此,博主整理了一下更方便的方法(其实也就是将前面的命令整合在一起,不用一条一条输入而已2333):

在Cloudreve目录下(也就是存在可执行文件的那个目录下),输入以下代码即可快速重新构建新的可执行文件并自动测试执行:


Tips-修改教程提示

如需修改边栏代码(增加按钮项),可修改assets/src/component/Navbar/Navbar.js文件

在对应位置仿照格式增添/修改即可,如:

 

©版权声明:本文为【繁星(FXIT)博客】(blog.fxit.top)原创文章,转载时请注明出自“繁星博客”,并加上链接,谢谢!
•本文作者:某酱 FXIT


•邮箱:[email protected]


•共为繁星博客贡献了:92篇博文


•个人简介:QQ:1229488344


2020-04-05
3,803 浏览量