引言
Heroku 在 2022 年关闭了免费计划,Vercel 的 Pro 套餐每月 20 美元起步,Render 的付费计划也价格不菲……主流的 PaaS 平台正在变得越来越贵。如果您拥有自己的 VPS,为什么不自己搭建一个 PaaS 呢?
Coolify 就是答案。它是一个开源的自托管 PaaS 平台,可以在您的 VPS 上运行,支持部署静态站点、Node.js、Python、PHP、Docker 容器,甚至数据库和 WordPress。它被誉为"开源的 Heroku",安装简单,功能强大。
本文将手把手教您在 VPS 上部署 Coolify,并完成第一个应用的自动部署。
什么是 Coolify?
Coolify 是一个开源、自托管的 PaaS(Platform as a Service,平台即服务)解决方案。它提供了一套可视化的 Web 界面,让您可以通过 Git 仓库、Docker 镜像或手动上传来部署应用。
核心特性:
- 🆓 完全免费开源 — 无需支付任何平台费用(您只需付 VPS 的钱)
- 🔄 Git 自动部署 — 连接 GitHub/GitLab/Bitbucket,Push 即部署
- 🐳 Docker 原生支持 — 可以部署任意 Docker 镜像
- 📦 内置数据库 — 一键创建 PostgreSQL、MySQL、Redis、MongoDB 等
- 🔐 SSL 自动配置 — 集成 Let’s Encrypt,自动申请和续期 SSL 证书
- 🌐 自定义域名 — 为每个应用绑定独立域名
- 🔄 自动备份 — 支持定期备份数据库和卷数据
- 🎯 资源监控 — 实时查看 CPU、内存、磁盘使用情况
- 🏗️ 构建包支持 — 支持 Node.js、Python、PHP、Ruby、Go、Deno、静态文件
与主流 PaaS 对比
| 特性 | Coolify (自托管) | Heroku | Vercel | Railway |
|---|---|---|---|---|
| 月费 | 💰 VPS 成本 ($4-10) | $5-$25+/月起 | $20+/月起 | $5-$20+/月起 |
| 应用数量 | 无限制 | 受计划限制 | 受计划限制 | 受计划限制 |
| Docker 支持 | ✅ 完整 | ❌ 有限 | ❌ 不支持 | ✅ 完整 |
| 数据库支持 | ✅ 完整 | ✅ 有限 | ❌ 不支持 | ✅ 完整 |
| 部署方式 | Git / Docker / 上传 | Git | Git | Git / Docker |
| 开源 | ✅ 完全开源 | ❌ 闭源 | ❌ 闭源 | ❌ 闭源 |
| 数据主权 | ✅ 完全控制 | ❌ 数据在 Heroku | ❌ 数据在 Vercel | ❌ 数据在 Railway |
前置条件
在开始之前,确保您满足以下条件:
- 一台 VPS — 推荐配置:2 核 CPU / 4GB 内存 / 40GB 磁盘(最低 1 核/2GB 也可以运行)
- Docker 和 Docker Compose — Coolify 依赖 Docker 运行
- 一个域名(可选但强烈推荐)— 用于访问 Coolify 面板和部署的应用
- SSH 访问 — 能够通过 SSH 连接到 VPS
推荐的 VPS 服务商
- Hetzner Cloud — €4.15/月起(性价比之王)
- DigitalOcean — $6/月起(文档丰富)
- Vultr — $6/月起(全球节点多)
- 阿里云轻量服务器 — ¥24/月起(国内访问快)
第一步:安装 Docker
如果您的 VPS 尚未安装 Docker,请先执行以下命令:
# 安装 Docker(Ubuntu/Debian)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
# 退出并重新登录,或者执行
newgrp docker
# 验证安装
docker --version
docker compose version
第二步:安装 Coolify
Coolify 提供了一键安装脚本,非常简单:
# 下载并运行安装脚本
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
安装脚本会自动完成以下工作:
- 拉取 Coolify 的 Docker 镜像
- 创建必要的目录结构
- 配置反向代理(默认使用 Traefik)
- 设置 PostgreSQL 数据库
- 启动所有服务
安装完成后,您会看到类似这样的输出:
✅ Coolify is ready!
URL: http://<your-vps-ip>:8000
Username: admin
Password: <auto-generated-password>
请务必立即登录并修改默认密码!
第三步:初始配置
3.1 登录面板
打开浏览器访问 http://<your-vps-ip>:8000,使用自动生成的密码登录。
3.2 配置域名和 SSL
进入 Settings → General,设置 Coolify 面板的访问域名,例如 coolify.yourdomain.com。然后启用 Let’s Encrypt 自动 SSL。
这样做的好处是:
- 通过 HTTPS 安全访问管理面板
- 子域名也会自动继承 SSL 配置
3.3 配置 DNS
在您的域名 DNS 管理面板中,添加以下 A 记录:
coolify.yourdomain.com → <你的 VPS IP>
3.4 添加服务器
Coolify 支持管理多台服务器。在 Servers 页面添加您的 VPS:
- 点击 Add Server
- 选择 Remote Server
- 输入服务器名称和 IP 地址
- 选择验证方式(推荐使用 SSH 密钥)
- Coolify 会自动在服务器上安装必要的代理
如果 Coolify 和您的应用运行在同一台 VPS 上,也可以使用 Localhost 模式(默认已配置)。
第四步:部署第一个应用
4.1 通过 Git 仓库部署
这是最常用的方式——连接您的 GitHub/GitLab 仓库,每次 Push 自动部署。
- 在 Coolify 面板中进入 Applications → New
- 选择 Private Repository(私有仓库)或 Public Repository(公开仓库)
- 点击 Connect 连接 GitHub/GitLab
- 选择要部署的仓库和分支
- Coolify 会自动检测项目类型:
package.json→ Node.jsrequirements.txt→ Pythoncomposer.json→ PHPDockerfile→ Docker- 无构建配置 → 静态文件
- 配置域名(例如
myapp.yourdomain.com) - 点击 Deploy
4.2 部署一个简单的 Node.js 应用
让我们用一段示例代码来演示。假设您有一个简单的 Express 应用:
// app.js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
app.get('/', (req, res) => {
res.send('Hello from Coolify! 🚀');
});
app.listen(port, () => {
console.log(`App running on port ${port}`);
});
{
"name": "coolify-demo",
"version": "1.0.0",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "^4.18.0"
}
}
将这个仓库连接到 Coolify,它会自动执行 npm install && npm start,并在几秒钟内完成部署。
4.3 部署 Docker Compose 应用
如果您有复杂的多容器应用,可以使用 Docker Compose:
- 在 Applications → New 中选择 Docker Compose
- 上传或粘贴您的
docker-compose.yml - Coolify 会解析并显示所有服务
- 配置每个服务的域名和环境变量
- 点击部署
第五步:数据库管理
Coolify 内置了数据库管理功能,无需手动创建 Docker 容器:
支持的数据库类型:
- PostgreSQL — 关系型数据库
- MySQL / MariaDB — 关系型数据库
- MongoDB — NoSQL 文档数据库
- Redis — 缓存 / 键值存储
- DragonFly — 高性能 Redis 替代品
- CouchDB — NoSQL 数据库
- ClickHouse — 列式分析数据库
创建数据库非常简单:
- 进入 Databases → New
- 选择数据库类型和版本
- 配置资源限制(CPU/内存)
- 设置自动备份策略
- 点击 Create
创建完成后,Coolify 会自动生成连接凭据(主机、端口、用户名、密码),您可以直接在应用的环境变量中使用。
第六步:环境变量与配置
为应用设置环境变量
在应用详情页的 Environment Variables 选项卡中,可以添加:
- Key-Value 对 — 逐个添加
- 批量导入 — 从
.env文件导入 - 引用其他服务 — 自动填入数据库连接 URL
Coolify 还支持 环境变量分组,方便在多个应用之间共享配置。
构建时 vs 运行时
- 构建时变量(Build-time):用于前端构建(如
VITE_API_URL) - 运行时变量(Runtime):应用运行时需要的配置(如
DATABASE_URL)
Coolify 自动区分这两种变量,并在正确的阶段注入。
第七步:SSL 证书和自定义域名
自动 SSL
Coolify 集成了 Let’s Encrypt 的 ACME 客户端,可以为每个应用自动申请 SSL 证书:
- 在应用设置中开启 Auto SSL
- 确保域名的 DNS A 记录指向您的 VPS
- Coolify 会自动处理证书的申请和续期
自定义域名
为应用绑定域名非常简单:
- 在应用详情页的 Domains 区域点击 Add Domain
- 输入您的域名(如
blog.yourdomain.com) - 开启 SSL 自动配置
- 更新 DNS 指向您的 VPS
Coolify 会自动配置反向代理,将流量路由到正确的容器。
第八步:Git 自动部署流水线
Coolify 最强大的功能之一就是 Git 驱动的自动部署流水线。
设置自动部署
- 连接应用与 GitHub/GitLab 仓库
- Coolify 会自动添加 Webhook
- 每次向指定分支 Push 代码,Coolify 都会:
- 拉取最新代码
- 运行构建命令(如
npm run build) - 构建 Docker 镜像
- 部署新版本
- 执行健康检查
- 如果失败,自动回滚到上一个版本
部署回滚
如果新版本出现问题,只需在 Coolify 面板中点击 Rollback 按钮,即可回滚到之前的任意部署版本。这个功能在生产环境中非常实用。
高级技巧
1. 多服务器负载均衡
Coolify 支持管理多台 VPS。您可以将多台服务器组成集群,实现:
- 高可用性
- 负载均衡
- 地理分布部署
2. 自定义构建包
对于特殊需求,可以自定义构建命令:
# 例如:使用 pnpm 替代 npm
npm install -g pnpm
pnpm install
pnpm build
pnpm start
3. Webhook 集成
Coolify 可以作为部署 Webhook 的终点,让外部 CI/CD 管道触发部署:
POST https://coolify.yourdomain.com/api/v1/deploy?force=false
Authorization: Bearer <your-api-token>
4. 资源监控和告警
Coolify 提供内置的资源监控面板,可以查看:
- CPU 使用率曲线
- 内存占用趋势
- 磁盘 I/O
- 网络流量
同时可以设置告警阈值,当资源使用超过设定值时会发送通知。
注意事项
- 安全性:确保 Coolify 面板只通过 HTTPS 访问,并设置强密码
- 资源规划:每个应用都会占用一定的资源,根据 VPS 规格合理规划部署数量
- 备份策略:定期备份 Coolify 的数据库和配置(在 Settings → Backup 中设置)
- 更新维护:Coolify 会提示可用更新,建议及时升级以获得安全补丁
- 防火墙配置:确保 VPS 防火墙开放 80、443 和 8000 端口
总结
Coolify 是自托管领域的明星项目。它让拥有 VPS 的用户能够以极低的成本获得原本需要支付高额费用的 PaaS 体验。
核心优势总结:
- ✅ 完全免费开源,无隐藏费用
- ✅ 一键安装,几分钟即可上线
- ✅ 支持各种语言和框架
- ✅ Git 自动部署,工作流丝滑
- ✅ 内置数据库和 SSL 管理
- ✅ 完全控制您的数据
相比每月支付 $20-$50+ 给 Heroku、Vercel 或 Railway,一台 $4-$10 的 VPS 搭配 Coolify,可以部署几十个应用且不受任何限制。
现在就动手试试吧!用您的 VPS 搭建属于自己的 PaaS 平台,享受自由部署的乐趣。
Happy self-hosting! 🚀