饮墨

子安饮墨馀三斗,留与卿儿作赋来

Coolify:自托管 PaaS 平替 Heroku,5 分钟部署你的应用平台

痛点

Heroku 免费层取消后,小团队和个人开发者的部署选择变得尴尬:要么付费用 Render/Railway,要么手搓 Docker Compose + Nginx + Let's Encrypt。前者按量计费容易超预算,后者维护成本高、配置分散。

更大的问题在企业内部:开发团队想要"Git Push 即部署"的体验,但 Kubernetes 太重、CI/CD 管道配置复杂,运维被迫在便利性和可控性之间反复权衡。

Coolify 正是为解决这个痛点而生——一个开源自托管 PaaS,提供类 Heroku/Vercel 的部署体验,同时数据和基础设施完全在你自己手里。

方案概览

Coolify 是基于 Docker 的自托管应用平台,核心特性:

能力 说明
Git 集成 支持 GitHub/GitLab/Bitbucket,Push 自动触发构建部署
多语言支持 Nixpacks 自动检测(Node.js、Python、Go、Rust、PHP 等)或自定义 Dockerfile
一键数据库 PostgreSQL、MySQL、Redis、MongoDB 等一键部署,自动备份
自动 HTTPS 集成 Traefik,自动申请 Let's Encrypt 证书
多服务器管理 单面板管理多台远程服务器,通过 SSH 远程部署
资源监控 内置 CPU/内存/磁盘监控,支持告警通知

对比其他方案:

方案 优势 劣势
Heroku/Render 零运维 贵、数据不在手、供应商锁定
纯 Docker Compose 灵活 无 UI、无自动 HTTPS、无 Git 集成
Kubernetes 生产级编排 复杂、学习曲线陡
Coolify 类 PaaS 体验 + 完全自控 需自己维护服务器

实操步骤

Step 1:安装 Coolify(单机模式)

最低要求:2C4G VPS(推荐 Ubuntu 22.04+)。

# 一键安装脚本(官方提供)
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

安装完成后访问 http://<你的IP>:8000,完成初始化设置(创建管理员账号)。

安装脚本做了什么: - 安装 Docker Engine - 拉取 Coolify 相关容器(coolify, coolify-db, coolify-redis, coolify-realtime) - 配置 Traefik 反向代理 - 设置 systemd 服务实现开机自启

Step 2:配置域名与 HTTPS

# DNS 解析:将 coolify.yourdomain.com 指向服务器 IP
# 在 Coolify 设置页面填入域名

# 验证 Traefik 自动签发证书
curl -I https://coolify.yourdomain.com
# 应返回有效的 Let's Encrypt 证书

在 Settings → General 中设置: - Instance's Domain: https://coolify.yourdomain.com - Coolify 会自动通过 Traefik 申请 SSL 证书

Step 3:部署第一个应用(Git 仓库)

  1. 进入 Projects → 创建新项目 → 添加资源 → Public Repository
  2. 填入 Git 仓库地址,如:https://github.com/yourname/fastapi-app.git
  3. Coolify 使用 Nixpacks 自动检测语言和构建步骤
  4. 配置环境变量(如 DATABASE_URL
  5. 设置域名(如 app.yourdomain.com
  6. 点击 Deploy

也支持 Docker Compose 部署:

# docker-compose.yaml(放在仓库根目录)
services:
  web:
    build: .
    ports:
      - "8080:8080"
    environment:
      - DATABASE_URL=${DATABASE_URL}
  db:
    image: postgres:16
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:

Coolify 会自动识别 docker-compose.yaml 并按此编排部署。

Step 4:配置自动部署 Webhook

# 在 GitHub 仓库 Settings → Webhooks 添加:
# Payload URL: https://coolify.yourdomain.com/webhooks/source/github/events
# Content type: application/json
# Secret: 从 Coolify 面板获取

# 验证:push 一次代码,观察 Coolify 是否自动触发构建
git add . && git commit -m "trigger deploy" && git push

Coolify 也支持在 UI 中直接关联 GitHub App,免去手动配置 Webhook。

避坑指南

1. 内存不足导致构建失败

Coolify + Traefik + 应用构建同时运行时,2GB 内存可能不够。

# 检查内存使用
free -h
docker stats --no-stream

# 解决:添加 swap
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

建议最低 4GB 内存用于生产环境。

2. Traefik 证书申请失败

常见原因:DNS 未生效、端口 80/443 被占用。

# 确认 DNS 解析
dig +short coolify.yourdomain.com

# 确认端口未被占用
sudo ss -tulnp | grep -E ':80|:443'

# 查看 Traefik 日志
docker logs coolify-proxy 2>&1 | grep -i "acme\|certificate"

3. 数据备份策略

Coolify 数据存储在 /data/coolify/,务必定期备份:

# 备份 Coolify 数据库和配置
tar -czf /backup/coolify-$(date +%Y%m%d).tar.gz /data/coolify/

# 或使用 Coolify 内置的 S3 备份功能
# Settings → Backup → 配置 S3 兼容存储(MinIO/AWS S3)

进阶:多服务器管理

Coolify 最强大的能力之一是从单面板管理多台服务器:

# 在远程服务器上准备 SSH 密钥访问
# Coolify 通过 SSH 连接远程服务器执行 Docker 命令

# 在 Coolify UI: Servers → Add Server
# 填入 IP、SSH 端口、私钥
# Coolify 会自动在远程服务器安装 Docker

部署应用时可选择目标服务器,实现简单的多节点分布式部署。

总结

维度 评价
适合场景 小团队内部平台、个人项目、替代 Heroku/Render
不适合场景 大规模微服务集群(此时该用 K8s)
学习成本 极低,有 Docker 基础即可上手
维护成本 低,自动更新 + 内置监控
社区活跃度 GitHub 35k+ Star,更新频繁

核心建议:

  1. 4C8G 起步用于生产,预留构建资源
  2. 必须配置备份——S3 备份或 cron + tar 定期归档
  3. 善用环境变量管理配置,不要硬编码
  4. 流量大时,Coolify 前面再加一层 CDN(Cloudflare)降低源站压力

Coolify 填补了"Docker Compose 太原始、Kubernetes 太复杂"之间的空白。对于日常管理 5-20 个服务的运维团队,它是当前性价比最高的自托管 PaaS 方案。

您还没有登录,请登录后发表评论。