SuperAPI AI 工具集

coolify-deploy

部署与运维

查看项目

更新于 10-15 12:11

技能介绍

Coolify 部署技能用于把应用部署到 Coolify 自托管平台,适用于在 Coolify 上部署、配置构建设置、设置环境变量以及管理健康检查等场景。

【输出约定】 默认输出只返回结果、阻塞项与必要证据。省略前言、过程叙述、重复上下文、置信度分数与后续提议。除必需产物或 schema 需要更多内容外,最多使用五条要点。

【项目类型与构建配置】

  1. 静态站点(Astro、Svelte、Hugo、Jekyll):构建命令为 [你的构建工具] build;输出目录为 dist(也可能是 public、_site、build,需按所用框架确认)。
  2. 应用容器(任意运行时):构建命令为 [安装依赖] && [构建];启动命令为 [你的运行时] [入口点];端口为 [你的应用端口]。按语言示例:Node.js 使用 npm run build / node dist/index.js;Python 使用 pip install -r requirements.txt / uvicorn app.main:app;Go 使用 go build -o app / ./app;Rust 使用 cargo build --release / ./target/release/app。
  3. 基于 Docker 的应用:Dockerfile 为 ./Dockerfile;端口为 [你的容器端口]。

【部署检查清单】 部署前:本地所有测试通过;环境变量已在 Coolify 面板配置;健康检查端点已验证(/health);数据库迁移已审查(如适用);回滚方案已记录。 部署中:构建无错误完成;部署后健康检查通过;日志中无错误激增;响应时间处于正常范围。 部署后:对关键路径做冒烟测试;监控错误率 15 分钟;确认数据库迁移已完成;更新部署日志。

【环境变量】 在 Coolify 面板的 Environment Variables 中设置,示例包括 ENVIRONMENT=production、PORT=3000、DATABASE_URL=postgresql://user:pass@host:5432/dbname,以及应用自身的变量。

【健康检查设置】 为应用添加 /health 端点。示例:Python(Flask)使用 @app.route('/health') 返回 jsonify(status='ok', timestamp=datetime.utcnow().isoformat());Go 使用 http.HandleFunc("/health", ...) 返回 {"status": "ok"};Node.js(Express)使用 app.get('/health', ...) 返回 200 与 { status: 'ok' }。在 Coolify 中配置:健康检查 URL 为 /health,健康检查间隔为 30 秒。

【Nixpacks 配置】 如需自动构建检测,可添加 nixpacks.toml。Coolify 会自动检测大多数运行时,也可自定义:在 [phases.setup] 中设置 nixPkgs,在 [phases.install] 中设置 cmds,在 [phases.build] 中设置 cmds,在 [start] 中设置 cmd。具体运行时请查阅 Nixpacks 文档。

【回滚】 若部署失败:在 Coolify 面板进入 Deployments,找到上一个可用部署,点击该版本的 Redeploy,并确认健康检查通过。或通过 CLI:coolify deployments redeploy --applicationUuid "app-uuid" --deploymentUuid "last-good-deployment-uuid"。

【反合理化对照表】 “只是小改动,跳过部署前检查清单”——小改动同样会破坏生产环境,检查清单能发现假设遗漏的问题。“健康检查是可选的”——没有健康检查就无法验证部署是否成功。“部署后再配置环境变量”——缺少环境变量会导致启动失败,应在部署前配置。“回滚太复杂,出问题就向前修复”——在压力下向前修复比干净回滚带来更多风险。“部署后不需要监控”——部署后的前 15 分钟正是问题暴露期,应主动监控。