跳转到内容

贡献指南

如果你对参与 Cloudreve 的开发感兴趣,清参考本章节开始上手。要注意的是,Cloudreve 使用双许可证策略发行,社区版在 GPL-3.0 下发行,而 Pro 版则使用私有许可证。我们只接受针对社区版的贡献,且贡献者需要在合并 PR 前签署 CLA

项目结构

Cloudreve 主仓库为 cloudreve/cloudreve,通过 git submodule 在主仓库中加入前端仓库 cloudreve/frontend 的依赖。

开始开发

开发环境

请参考 从源代码编译 章节安装所需工具。

克隆仓库

bash
git clone --recurse-submodules https://github.com/cloudreve/cloudreve.git
cd cloudreve

启动后端

bash
# 首次启动前,安装依赖
go mod download

# 启动后端
go run main.go

如果你需要传入命令行参数

bash
go run main.go -c /path/to/conf.ini

因为没有嵌入前端静态资源,后端启动后,http://localhost:5212 仅能提供 API 服务。在一般开发流程中,你还需要启动前端开发服务器以便能访问本地站点。

启动前端

保持后端服务器运行,在另一个终端中执行以下命令:

bash
cd frontend
yarn install
yarn run dev

前端开发服务器启动后,你可以通过 http://localhost:5173 访问本地站点。默认情况下,所有 API 请求会被转发到 http://localhost:5212,你可以在 vite.config.ts 中修改。

选择一个任务

在 Cloudreve 的 issue 中,过滤出 label 带有 Backlog 的 issue,这些 issue 是待认领的任务。选择一个任务后,在 issue 中留言,表示你将认领该任务,并将此 issue assign 给你自己。

对于入门开发者,我们推荐选择 label 带有 good first issue 的 issue。

提议新的任务

如果你有新的任务想法,请在 issue 中创建一个新 issue,详细描述你的想法和实现计划,并将其 assign 给你自己。请在等待其他开发者确认你的想法后,再开始开发。

提交 PR

在完成任务后,你可以提交 PR 到 cloudreve/cloudrevecloudreve/frontend 仓库。PR 提交后,会有 Bot 引导你签署 CLA。

讨论

你可以在 Discord 社区的 development 频道中与开发者讨论任务细节,或者是获取支持。