跳转至

Coolify 自托管 PaaS 完全指南

为什么要学 Coolify

  1. 开源的 Heroku/Vercel 替代品:Coolify 让你在自己的服务器上获得与 Heroku、Vercel、Netlify 相同的一键部署体验。推送代码 → 自动构建 → 自动部署 → 自动 SSL,全程无需手动 SSH。

  2. 完全控制数据和基础设施:所有数据都在你自己的服务器上。没有供应商锁定,没有月账单惊喜,没有冷启动。适合对数据主权有要求的企业和个人开发者。

  3. 不只是应用部署:Coolify 同时管理数据库(PostgreSQL、MySQL、Redis、MongoDB)、服务(MinIO、Plausible Analytics 等),支持一键安装 100+ 预配置服务。

  4. 自动 SSL 和反向代理:内置 Traefik 反向代理,自动为每个部署的应用配置 Let's Encrypt SSL 证书。不需要手动配置 Nginx 或 Caddy。

  5. 多服务器管理:可以从一个 Coolify 实例管理多台服务器。开发、测试、生产环境可以分布在不同服务器上,统一在一个面板管理。


核心概念详解

Coolify 是什么(白话解释)

你租了一台云服务器(VPS),想部署几个网站和 API。传统方式是 SSH 进去、装 Docker、配 Nginx、申请 SSL 证书、写 docker-compose、配置 CI/CD。每次更新都要手动操作。

Coolify 就是帮你把这些全自动化了。装好 Coolify 后,你在 Web 界面上: - 连接 GitHub 仓库 → 自动构建部署 - 点击"新建数据库" → PostgreSQL 立刻就绪 - 域名绑定 → SSL 自动配置 - 代码推送 → 自动重新部署

架构组件

组件作用
Coolify Server管理面板,运行在主服务器上
Traefik反向代理 + SSL 终止
Docker容器运行时
SSH与远程服务器通信
Git Webhooks监听代码推送触发部署
Let's Encrypt自动 SSL 证书

支持的部署方式

方式说明
Git 仓库从 GitHub/GitLab/Bitbucket/Gitea 自动部署
Docker Compose上传 docker-compose.yml
Docker Image从任意 Registry 拉取镜像
Dockerfile使用项目中的 Dockerfile 构建
Buildpack自动检测语言和框架(Nixpacks)
静态站点HTML/JS/CSS 直接部署

Coolify vs Dokploy vs CapRover 对比

特性CoolifyDokployCapRover
开源完全开源完全开源完全开源
UI现代化(最好)现代化功能性
部署方式Git/Docker/ComposeGit/Docker/ComposeGit/Docker
数据库管理内置(一键部署)内置需手动
SSL自动(Let's Encrypt)自动自动
多服务器支持支持集群模式
一键应用100+ 预配置有限有限
监控内置基础需额外配置
构建方式Nixpacks/DockerDockerDocker
Webhook 部署支持支持支持
社区最活跃增长中成熟
维护状态非常活跃活跃稳定
最低配置2GB RAM1GB RAM1GB RAM

安装与配置

系统要求

  • Linux 服务器(Ubuntu 22.04+ 推荐)
  • 最少 2 CPU + 2GB RAM(推荐 4GB+)
  • SSH 访问
  • 域名(可选但推荐)

一键安装

# SSH 到你的服务器
ssh root@your-server-ip

# 一键安装脚本
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

# 安装完成后
# 打开 http://your-server-ip:8000
# 注册管理员账号

Docker Compose 安装(高级)

# 创建目录
mkdir -p /data/coolify/{source,ssh,applications,databases,backups,services,proxy,webhooks-during-maintenance}

# 下载 docker-compose
curl -fsSL https://cdn.coollabs.io/coolify/docker-compose.yml -o /data/coolify/source/docker-compose.yml
curl -fsSL https://cdn.coollabs.io/coolify/.env.production -o /data/coolify/source/.env

# 生成密钥
sed -i "s|APP_ID=.*|APP_ID=$(openssl rand -hex 16)|g" /data/coolify/source/.env
sed -i "s|APP_KEY=.*|APP_KEY=base64:$(openssl rand -base64 32)|g" /data/coolify/source/.env
sed -i "s|DB_PASSWORD=.*|DB_PASSWORD=$(openssl rand -base64 32)|g" /data/coolify/source/.env

# 启动
cd /data/coolify/source
docker compose up -d

域名配置

  1. 在 DNS 中添加 A 记录:coolify.yourdomain.com → 服务器 IP
  2. 在 Coolify Settings 中配置域名
  3. SSL 证书自动签发

添加远程服务器

  1. 在 Coolify UI 中点击 "Servers" → "Add New"
  2. 输入远程服务器 IP 和 SSH 端口
  3. 将 Coolify 的公钥添加到远程服务器的 ~/.ssh/authorized_keys
  4. 验证连接

快速上手:5 分钟最小示例

部署一个 Next.js 应用

  1. 新建项目:点击 "New Resource" → "Application"
  2. 连接 Git:选择 GitHub → 授权 → 选择仓库
  3. 配置
  4. Build Pack: Nixpacks(自动检测)
  5. Branch: main
  6. Port: 3000
  7. Domain: app.yourdomain.com
  8. 部署:点击 "Deploy"
  9. 等待构建完成,访问 https://app.yourdomain.com

部署一个 Python FastAPI

项目中有 requirements.txt

fastapi
uvicorn[standard]

main.py

from fastapi import FastAPI
app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello from Coolify!"}

Coolify 自动检测 Python 项目并使用 Nixpacks 构建。设置启动命令为:

uvicorn main:app --host 0.0.0.0 --port 8000


进阶用法

场景一:一键部署数据库

Coolify UI → New Resource → Database → 选择类型:

PostgreSQL 16 ✓
MySQL 8 ✓
MariaDB ✓
MongoDB ✓
Redis ✓
ClickHouse ✓
DragonFly ✓
KeyDB ✓

配置选项: - 数据库名称 - 用户名/密码(自动生成) - 端口映射 - 数据持久化目录 - 备份计划

连接字符串自动生成,可直接在应用环境变量中引用。

场景二:Docker Compose 部署

# docker-compose.yml
version: '3.8'
services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgresql://user:pass@db:5432/mydb
    depends_on:
      - db

  db:
    image: postgres:16
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: secretpass

  redis:
    image: redis:7-alpine

volumes:
  pgdata:

在 Coolify 中选择 "Docker Compose" 类型,上传或链接 Git 仓库中的 compose 文件。

场景三:环境变量和密钥管理

Coolify UI → Application → Environment Variables

# 支持:
- 构建时变量 (Build)
- 运行时变量 (Runtime)
- Preview 环境变量 (PR Preview)

# 共享变量:
可以在 Team 级别设置共享环境变量,多个应用引用

场景四:自动部署(CI/CD)

1. Git Push 触发:
   - 在 Coolify 中启用 "Auto Deploy"
   - Coolify 自动在 GitHub 上设置 Webhook
   - 每次 push 到指定分支自动部署

2. API 触发:
   curl -X POST https://coolify.yourdomain.com/api/v1/deploy \
     -H "Authorization: Bearer $COOLIFY_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"uuid": "app-uuid"}'

3. PR Preview:
   - 每个 PR 自动创建预览环境
   - PR 合并后自动清理

场景五:一键安装流行服务

Coolify 预配置了 100+ 开源服务:

类别服务
分析Plausible, Umami, Matomo
CMSWordPress, Ghost, Strapi
存储MinIO, Nextcloud
监控Grafana, Uptime Kuma
CI/CDGitea, Drone
数据库pgAdmin, Adminer, phpMyAdmin
通讯Mattermost, Rocket.Chat
其他Vaultwarden, Listmonk, n8n

场景六:备份策略

Coolify UI → Database → Backups

- 计划备份:Cron 表达式(如每天凌晨3点)
- 备份保留:保留最近 N 份
- 备份存储:本地 / S3 / MinIO
- 手动备份:一键触发
- 恢复:从备份一键恢复

场景七:监控与日志

Coolify UI → Application → Logs
- 实时日志流
- 历史日志查看
- 容器资源使用(CPU/内存)

Coolify UI → Servers → 资源监控
- 服务器 CPU 使用率
- 内存使用
- 磁盘使用
- 网络流量

场景八:自定义 Nixpacks 构建

# nixpacks.toml(放在项目根目录)
[phases.setup]
nixPkgs = ["...", "ffmpeg"]  # 额外系统包

[phases.install]
cmds = ["npm ci"]

[phases.build]
cmds = ["npm run build"]

[start]
cmd = "npm start"

[variables]
NODE_ENV = "production"

常见问题与排错

问题一:构建失败

# 查看构建日志
Coolify UI  Application  Deployments  点击失败的部署

# 常见原因:
# 1. Dockerfile 错误
# 2. 依赖安装失败(网络问题)
# 3. 端口配置不匹配
# 4. 内存不足(增加 swap)

问题二:SSL 证书未签发

# 确保:
1. 域名 DNS 已正确指向服务器 IP
2. 端口 80 和 443 未被防火墙阻止
3. Traefik 正在运行
4. 等待 DNS 传播(可能需要几分钟)

问题三:应用无法连接数据库

# 在 Coolify 中,同一服务器的应用和数据库通过 Docker 网络通信
# 使用 Docker 内部主机名,不要用 localhost

# 正确:
DATABASE_URL=postgresql://user:pass@db-container-name:5432/dbname

# 在 Coolify UI 中查看数据库的内部连接地址

问题四:磁盘空间不足

# Docker 镜像和构建缓存会占用大量空间
# 在服务器上清理
docker system prune -a --volumes

# 在 Coolify 中设置清理策略
# Settings → Cleanup 配置

问题五:如何更新 Coolify

# Coolify 支持自动更新
# Settings → 启用 Auto Update

# 或手动更新
cd /data/coolify/source
docker compose pull
docker compose up -d

参考资源

  • 官方网站:https://coolify.io
  • 官方文档:https://coolify.io/docs
  • GitHub:https://github.com/coollabsio/coolify
  • Discord 社区:https://coolify.io/discord
  • Coolify Cloud(托管版):https://app.coolify.io
  • 一键服务列表:https://coolify.io/docs/services
  • YouTube 频道:https://www.youtube.com/@coollabsio