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

Apr 5, 20207 min read

此文最后修改于 1631 天前,其中部分观点和内容可能已不再适用。

本文迁移自老博客,原始链接为 https://blog.fxit.top/?p=1074

注意,该文章排版可能存在兼容问题,建议配合旧版本博客食用~

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 sudo yum install epel-release sudo yum install nodejs 然后使用 node --version 检查一下是否安装成功。

这个时候我们通过epel安装的node版本比较旧,达不到Cloudreve编译的要求,我们使用: n 10.3.0 stable 来将node升级到10.3.0即可。


Step.2-安装Yarn

我们可以通过 RPM 包仓库安装 Yarn: curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo 然后输入: curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - 之后使用 sudo yum install yarn 即可简单地将yarn安装完成了。

我们使用 yarn --version 来看看yarn是否安装成功。


Step.3-安装Go

首先在 ~ 下创建 go 文件夹,并进入 go 文件夹 mkdir ~/go && cd ~/go 然后在Golang官网下载地址选择适合你系统的Go版本,博主这里选择的是go1.14.1.linux-amd64.tar.gz

下载安装包: wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz 然后解压到/usr/loacl目录下: tar -C /usr/local -zxvf go1.14.1.linux-amd64.tar.gz 然后添加/usr/loacl/go/bin目录到PATH变量中 vim /etc/profile 在最后一行加入: export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin :wq保存后,使用 source /etc/profile 使配置生效。

最后使用 go version 来看看Go是否安装成功。


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

一句命令搞定: go get github.com/rakyll/statik


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

首先安装git工具(已安装请忽视),然后克隆GitHub上的源码: yum install git -y git clone --recurse-submodules https://github.com/cloudreve/Cloudreve.git 然后我们 cd Cloudreve assets里面的就是前端的源码,一般我们只需修改assets文件夹里面的即可。

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

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

TEXT

Step.6-构建&编译

assets目录下,我们使用 yarn run build 来构建修改好的前端的代码。 完成后,所构建的静态资源文件位于assets/build 目录下。

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

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

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

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

TEXT

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

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

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

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

TEXT

Tips-修改教程提示

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

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

TEXT

 

浏览量

最后修改于

Apr 6, 2020
Made withbyMr.Ke