coolify

1- coolify

coolify 作为一款出色的开源工具,是 vercel/netify 的优质替代品,在功能特性上与 1panel、宝塔面板这类广为人知的面板工具相似,为用户提供了便捷高效的开发与部署环境。

1.1- 功能特点

  1. 强大的功能集合
    • coolify 具备一键部署功能,大大简化了部署流程,无论是简单的应用还是复杂的项目,都能快速完成部署。
    • 支持反向代理域名,能够有效地隐藏后端服务器的真实地址,提高服务器的安全性,并实现负载均衡等功能,优化网络性能。
    • SSL 支持确保了数据传输的安全性,通过加密数据在网络中的传输,保护用户的隐私信息不被窃取或篡改。
    • 它还可以接入 Github Action,从而实现类似 vercel 的 CICD(持续集成/持续部署)功能。这意味着开发人员可以自动化代码的构建、测试和部署过程,提高开发效率,减少人为错误。
  2. 同类产品对比:与 dokploy 属于同类产品,它们在功能上有一定的相似性

1.2- GitHub

coolify 的项目托管在 GitHub 上,其网址为:。在这里,用户可以获取到最新的源代码、查看版本更新日志、参与社区讨论以及向开发者反馈问题。
coolify

1.3- 基本配置

  1. 服务器硬件与端口要求
    • 首先,你需要一台云服务器来运行 coolify。这台服务器需要开放 8000、6001、6002、22、80、443 端口。
      • 其中,8000 端口用于访问 coolify 的管理界面,
      • 22 端口常用于 SSH 连接进行服务器管理,
      • 80 和 443 端口分别用于 HTTP 和 HTTPS 通信,
      • 6001 和 6002 端口(根据具体功能详细说明用途,如果有的话)。
    • 服务器的基本配置建议为 2 核 2G 及 30G 以上硬盘空间。
      • 不过需要注意的是,在安装完成后,coolify 日常运行大约会占用 600M 的内存,因此在实际使用中,2G 内存可能在运行多个复杂服务或处理高流量时略显紧张。
      • 如果条件允许,可以考虑适当增加内存以获得更流畅的体验。
  2. 域名解析操作
    为了方便使用和管理,需要进行域名解析。
  • 具体操作是添加一条通配符 * A record,将其解析到服务器的 IP 地址。这样做的好处是可以灵活地配置子域名,方便后续各种服务的部署和访问。
    • 例如,不同的应用或项目可以使用不同的子域名进行区分,易于管理和维护。

1.4- 一键安装

在准备好服务器后,进入服务器执行以下简单的命令即可完成 coolify 的安装:

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
  • 在安装过程中,服务器会自动从指定的 URL 下载安装脚本并执行安装操作。
  • 安装完成后,你可以通过在浏览器中输入 [服务器 IP]:8000 端口的方式进入 coolify 的管理界面。
  • 首次进入时,需要注册管理员账号,按照界面提示填写相关信息,完成注册后即可进入功能丰富的管理界面。

1.5- 管理界面域名配置

成功进入管理界面后,在 Setting 界面的 Instance Domain 处设置一个子域名。

  • 例如,你可以设置为 coolify.xx.com(其中 xx.com 是你拥有的域名)。通过这样的设置,下次访问 coolify 的管理界面时,就可以直接使用这个自定义的子域名,更加方便和专业,同时也便于记忆和在团队内部分享。

1.6- 支持的服务

coolify 具有强大的服务支持能力,它支持众多开源服务的一键部署,

  • 如 Plausible(一款轻量级的网站分析工具)、
  • Umami(简洁的自托管网络分析工具)、
  • Posthog(产品分析平台)、
  • N8N(工作流自动化工具)、
  • Wordpress(广受欢迎的内容管理系统)等。
  • 此外,它还支持数据库的部署,满足不同项目对于数据存储的需求。详细的服务信息和配置方法可以参考:coolify.io/docs/services。
  • 每个服务的域名配置原理与管理界面域名配置类似,都是通过简单的设置步骤来实现域名与服务的绑定,方便用户通过自定义域名访问相应的服务。

1.7- 部署的具体步骤

1.7.1- 准备工作

  1. 确保服务器已经完成 coolify 的安装并且可以正常访问管理界面([服务器 IP]:8000)。
  2. 准备好要部署的项目代码,可以是本地代码或者已经托管在代码仓库(如 Github)中的代码。
    1. 如果是使用 Github 仓库,确保已经在 coolify 中完成 Github 账号绑定,具体绑定步骤可参考前面的内容。

1.7.2- 选择部署方式

  • 在 coolify 管理界面中,根据项目类型选择合适的部署方式。如果是基于 Docker 的项目,可以选择 Docker 部署选项;如果是基于代码仓库(如 Github)的项目,则选择相应的仓库选项。
  • 对于一些开源项目,可能已经提供了 Dockerfile,这种情况下可以直接使用 Docker 部署方式实现快速部署。

1.7.3- 配置项目信息(以 Github 仓库项目为例)

  • 在选择 Github 仓库部署后,coolify 会列出你绑定的 Github 账号下的所有仓库。从中选择要部署的项目仓库。
  • 设置项目的名称,这个名称将在 coolify 管理界面中用于标识该项目,建议使用有意义的名称以便于识别。
  • 选择项目的运行环境,比如 Node.js、Python 等,根据项目实际使用的技术栈进行选择。

1.7.4- 端口配置

  • 根据项目的需要,配置项目运行所需要暴露的端口。如果项目是一个 Web 应用,通常需要配置 HTTP(80)和/或 HTTPS(443)端口,或者根据项目文档指定的端口进行配置。
  • 检查端口是否被其他服务占用,如果被占用,需要先解决端口冲突问题,可以选择其他未被使用的端口或者停止占用该端口的服务。

1.7.5- 构建和启动配置

  • Build Pack 选择 Nixpacks(如果适用)。Nixpacks 会根据项目中的包管理文件(如 package.json 对于 Node.js 项目)自动确定构建和启动命令。
  • 如果项目使用了特殊的构建工具或者自定义的构建和启动脚本,需要在相应的配置字段中手动输入正确的命令。

1.7.6- 域名配置

  • 可以为项目设置自定义域名。如果已经完成了域名解析(如前面提到的添加通配符 * A record 解析到服务器 IP),可以在这里输入要绑定的域名,如 projectname.xx.com(projectname 是项目名称,xx.com 是你的域名)。
  • 如果不想设置自定义域名,也可以使用 coolify 提供的默认域名来访问项目。

1.7.7- 环境变量设置

  • 根据项目的需求,设置相应的环境变量。例如,对于一个数据库连接的项目,需要设置数据库的连接字符串、用户名、密码等环境变量。
  • 确保环境变量的值准确无误,错误的环境变量可能导致项目无法正常启动。

1.7.8- 部署操作

  • 在完成以上所有配置后,点击 “Deploy” 按钮。coolify 会开始自动部署项目,这个过程可能需要一些时间,具体时间取决于项目的大小和复杂度。
  • 在部署过程中,可以在 coolify 的部署日志界面查看部署的进度和相关信息。如果出现问题,可以根据日志信息进行排查和解决。

部署完成后,你就可以通过设置的域名(或默认域名)访问你的项目了。

image

安装完成后可以直接输入 [ip]:8000 端口 进入 coolify 的管理界面,注册管理员账号后进入如下界面

image

来到 Setting 界面,在 Instance Domain 这里设置一个你的字域名,这样下次可以直接通过
coolify.xx.com 来到这个管理界面
image

在 Source 界面添加 Github,点击 Register Now,会弹出 Github 的授权界面,按照指引进行授权,一切都会自动填好
image

因为之前绑定了 Github,coolify 是可以直接拉取到所有仓库的
image

选择你的仓库,设置暴露的端口,Build Pack 选择 Nixpacks
无论你使用的是 npm, pnpm 还是 bun,Nixpacks 都会帮你决定出 build 和 start 命令,无脑继续就好
接下来可以设置你的域名,或者就使用它提供的域名
设置环境变量,然后点击 Deploy,完成
image