Skip to content

向 Coolify 添加新服务模板

Coolify 中的服务是从普通的 docker-compose 文件创建的模板,并添加了一些 Coolify 魔法。

INFO

请参阅 Coolify 的 docker-compose 规范 了解更多关于 Coolify 的魔法以及如何受益于生成的变量和存储处理。提交 PR 时,请使用这种魔法,以使合并过程更顺畅。

  1. 添加元数据

    在你的 docker-compose 文件顶部,添加以下元数据:

    yaml
    # documentation: https://docs.example.com/
    # slogan: 你的服务的简短描述。
    # tags: tag1,tag2,tag3
    # logo: svgs/your-service.svg
    # port: 1234
    • documentation:服务官方文档的链接
    • slogan:服务的简短描述
    • tags:逗号分隔的列表,用于更好的可搜索性
    • logo:服务 logo 的路径(见步骤 3)
    • port:服务的主入口点端口

注意

始终指定一个端口,因为 Caddy Proxy 无法自动确定服务的端口。

  1. 创建 docker-compose 文件

    在元数据下方,添加你的 docker-compose 配置。在此处使用 Coolify 的环境变量魔法 链接

    示例:

    yaml
    services:
      app:
        image: your-service-image:tag
        environment:
          - DATABASE_URL=${COOLIFY_DATABASE_URL}
        volumes:
          - ${COOLIFY_VOLUME_APP}:/data

    使用必需的环境变量: 创建服务模板时,将关键配置标记为必需,以改善用户体验:

    yaml
    services:
      app:
        image: your-service:latest
        environment:
          # 必需 - 必须由用户设置的关键配置
          - DATABASE_URL=${DATABASE_URL:?}
          - API_KEY=${API_KEY:?}
    
          # 必需且有合理默认值 - 提高可用性
          - PORT=${PORT:?8080}
          - LOG_LEVEL=${LOG_LEVEL:?info}
    
          # 可选 - 可以留空的功能
          - DEBUG=${DEBUG:-false}
          - CACHE_TTL=${CACHE_TTL:-3600}

    这可以帮助用户了解哪些配置是必不可少的,并防止部署失败。

  2. 添加 logo

    • 为你的服务创建或获取 SVG logo(强烈推荐的格式)
    • 如果 SVG 不可用,请使用高质量的.webp 或 JPG 作为最后的选择
    • 将 logo 文件添加到 Coolify 仓库的 svgs 文件夹中
    • logo 文件名应与 docker-compose 服务名称完全匹配
      • 例如,如果你的服务名称是 wordpress,你的 logo 应该是 wordpress.svg,最终路径是 svgs/wordpress.svg,在此处的 logo 元数据中使用此路径。
  3. 测试你的模板

    使用 Coolify 中的 Docker Compose 部署选项来测试你的模板。这个过程模拟了一键式服务部署。

  4. 提交拉取请求

    一旦你的模板正常工作:

    • 打开一个 PR
    • /templates/compose 下添加你的新 <service>.yaml 组合文件
    • svgs 文件夹中包含 logo 文件

INFO

Coolify 使用模板的 解析版本 进行部署。

请求新服务

如果你希望在 Coolify 中看到某个服务模板:

  1. 搜索 GitHub discussions 查看是否有现有请求。
  2. 如果该服务已被请求,请为其投票。如果没有,请创建一个新请求。