Skip to content

为 Coolify 做贡献

"首先,感谢你考虑为我的项目做出贡献。这对我来说意义重大!" - @andrasbacsai

你可以随时在我们的 Discord 社区服务器 中的 #contribute 频道寻求指导。

要了解技术栈,请参考 技术栈 文档。

目录

  1. 设置开发环境
  2. 验证安装
  3. 复刻并设置本地仓库
  4. 设置环境变量
  5. 启动 Coolify
  6. 开始开发
  7. 创建拉取请求
  8. 开发注意事项
  9. 重置开发环境
  10. 额外贡献指南

1. 设置开发环境

按照以下步骤为你的操作系统进行设置:

Windows
  1. 安装 docker-ce、Docker Desktop(或类似工具):

    • Docker CE(推荐):
      • 按照本指南安装 Windows Subsystem for Linux v2 (WSL2):安装 WSL
      • 安装 WSL2 后,按照本指南为你的 Linux 发行版安装 Docker CE:安装 Docker Engine
      • 按照 Docker 安装指南时,确保选择合适的 Linux 发行版(例如,Ubuntu)
    • 安装 Docker Desktop(更简单):
  2. 安装 Spin:

    • 按照 Spin 文档中的说明在 Windows 上安装 Spin:Spin 文档
MacOS
  1. 安装 Orbstack、Docker Desktop(或类似工具):

  2. 安装 Spin:

    • 按照 Spin 文档中的说明在 MacOS 上安装 Spin:Spin 文档
Linux
  1. 安装 Docker Engine、Docker Desktop(或类似工具):

  2. 安装 Spin:

    • 按照 Spin 文档中的说明在 Linux 上安装 Spin:Spin 文档

2. 验证安装(可选)

安装 Docker(或 Orbstack)和 Spin 后,验证安装:

  1. 打开终端或命令提示符
  2. 运行以下命令:
    bash

docker --version spin --version

   你应该看到 Docker 和 Spin 的版本信息。


## 3. 复刻并设置本地仓库
1. 将 [Coolify](https://github.com/coollabsio/coolify) 仓库复刻到你的 GitHub 账户。

2. 在你的机器上安装代码编辑器(选择一个):

   | 编辑器 | 平台 | 下载链接 |
   |--------|----------|---------------|
   | Visual Studio Code(推荐免费) | Windows/macOS/Linux | [下载](https://code.visualstudio.com/download?ref=coolify) |
   | Cursor(推荐但付费) | Windows/macOS/Linux | [下载](https://www.cursor.com/?ref=coolify) |
   | Zed(非常快) | macOS/Linux | [下载](https://zed.dev/download?ref=coolify) |

3. 从你的复刻将 Coolify 仓库克隆到本地机器
   - 在命令行中使用 `git clone`,或者
   - 使用 GitHub Desktop(推荐):
     - 从 [https://desktop.github.com/](https://desktop.github.com/?ref=coolify) 下载并安装
     - 打开 GitHub Desktop 并使用你的 GitHub 账户登录
     - 点击 `文件` -> `克隆仓库`,选择 `github.com` 作为仓库位置,然后选择你复刻的 Coolify 仓库,选择本地路径,然后点击 `克隆`

4. 在你选择的代码编辑器中打开克隆的 Coolify 仓库。


## 4. 设置环境变量
1. 在代码编辑器中,找到本地 Coolify 仓库根目录中的 `.env.development.example` 文件。
2. 复制 `.env.development.example` 文件并将副本重命名为 `.env`。
3. 打开新的 `.env` 文件并查看其内容。根据你的开发设置调整任何需要的环境变量。
4. 如果你在数据库迁移过程中遇到错误,请更新 `.env` 文件中的数据库连接设置。使用你的 PostgreSQL 数据库容器的 IP 地址或主机名。你可以在执行 `spin up` 后通过运行 `docker ps` 找到此信息。
5. 保存对 `.env` 文件的更改。


## 5. 启动 Coolify
1. 在本地 Coolify 目录中打开终端。
2. 在终端中运行以下命令(保持终端打开):
   ```bash
   spin up

注意:

你可能会看到一些错误,但不用担心,这是正常的。

  1. 如果你遇到权限错误,特别是在 macOS 上,请使用:
    bash
    sudo spin up

注意:

如果你之后更改了环境变量或任何内容看起来有问题,请按 Ctrl + C 停止进程并再次运行 spin up

6. 开始开发

  1. 访问你的 Coolify 实例:

    • URL: http://localhost:8000
    • 登录名: test@example.com
    • 密码: password
  2. 其他开发工具:

工具URL说明
Laravel Horizon(调度器)http://localhost:8000/horizon仅当以 root 用户登录时可访问
Mailpit(电子邮件捕获器)http://localhost:8025
Telescope(调试工具)http://localhost:8000/telescope默认禁用

提示:

要启用 Telescope,请将以下内容添加到你的 .env 文件中:

yaml
TELESCOPE_ENABLED=true

7. 创建拉取请求

  1. 进行更改或添加新服务后:

    • 将更改提交到你复刻的仓库。
    • 将更改推送到你的 GitHub 账户。
  2. 创建拉取请求(PR):

    • 导航到 GitHub 上的主 Coolify 仓库。
    • 点击 "拉取请求" 选项卡。
    • 点击绿色的 "新建拉取请求" 按钮。
    • 选择你的复刻和分支作为比较分支。
    • 点击 "创建拉取请求"。
  3. 填写 PR 详情:

    • 给你的 PR 一个描述性的标题。
    • 使用提供的拉取请求模板并填写详情。

重要

始终将你的 PR 的基准分支设置为 Coolify 仓库的 next 分支,而不是 main 分支。

  1. 提交你的 PR:
    • 最后一次查看你的更改。
    • 点击 "创建拉取请求" 进行提交。

注意:

一旦你的 PR 准备好进行审查,请确保它已脱离草稿模式。长期处于草稿模式的 PR 可能会被维护者关闭。

提交后,维护者将审查你的 PR,并可能要求更改或提供反馈。

开发注意事项

在 Coolify 上工作时,请记住以下几点:

  1. 数据库迁移:切换分支或更改数据库结构后,始终运行迁移:
bash
docker exec -it coolify php artisan migrate
  1. 重置开发设置:要将开发设置重置为具有默认值的干净数据库:
bash
docker exec -it coolify php artisan migrate:fresh --seed
  1. 故障排除:如果你遇到意外行为,请确保你的数据库已更新到最新的迁移,如果可能,重置开发设置以消除任何环境特定的问题。

重要:

忘记迁移数据库可能会导致问题,因此在拉取更改或切换分支后养成运行迁移的习惯。

重置开发环境

如果你遇到问题或破坏了数据库或其他内容,请按照以下步骤从头开始(自 v4.0.0-beta.342 起可用):

  1. 停止所有运行的容器 ctrl + c

  2. 删除所有 Coolify 容器:

bash
docker rm coolify coolify-db coolify-redis coolify-realtime coolify-testing-host coolify-minio coolify-vite-1 coolify-mail
  1. 删除 Coolify 卷(你的机器上的卷可能没有 coolify 前缀,在这种情况下,请从命令中删除前缀):
bash
docker volume rm coolify_dev_backups_data coolify_dev_postgres_data coolify_dev_redis_data coolify_dev_coolify_data coolify_dev_minio_data
  1. 删除未使用的镜像:
bash
docker image prune -a
  1. 再次启动 Coolify:
bash
spin up
  1. 运行数据库迁移和种子:
bash
docker exec -it coolify php artisan migrate:fresh --seed

完成这些步骤后,你将拥有一个全新的开发设置。

重要

切换分支或拉取更新后,始终运行数据库迁移和种子,以确保你的本地数据库结构与当前代码库匹配并包含必要的种子数据。

额外贡献指南

贡献新服务

要向 Coolify 添加新服务,请参考我们的文档:添加新服务

为文档做贡献

要为 Coolify 文档做贡献,请参考本指南:为 Coolify 文档做贡献