看来你已经关注到了 Dokploy,这确实是一个非常敏锐的选择。在目前的开源社区中,Dokploy 被认为是 Coolify 的最强有力竞争对手,而且它的代码结构对开发者非常友好。
虽然它在功能上对标 Coolify,但它在设计理念上更倾向于“现代、轻量、稳定”。
Dokploy 的核心逻辑和架构非常清晰,它主要基于以下技术栈:
- 后端/核心: TypeScript (Next.js / Node.js)。
- 底层引擎: Docker & Docker Compose。
- 网络层: Traefik(自动处理 SSL 和路由)。
- 数据库: PostgreSQL (通过 Prisma ORM 管理)。
虽然它不是纯 Golang 或 Java 开发的(这是目前大多数现代 PaaS 工具的趋势,因为 Node.js 处理 I/O 和前端集成更丝滑),但它对你提到的 Python、Go、Java 应用的支持度极高。
- 极简的 Nixpacks 支持:
它默认使用
Nixpacks(由 Railway 开发)来构建镜像。这意味着你的 Python、Go 或 Java 代码扔进去,它能自动识别并打包,无需你自己写复杂的 Dockerfile。 - 多节点支持(正在快速演进): 它在管理多服务器节点方面比 Dokku 更直观,比 Coolify 更轻量。
- 资源开销极低: 相比于 Java 开发的类似平台,Dokploy 的运行内存占用非常小,非常适合部署在便宜的 VPS 上。
- 原生支持 Compose:
你可以直接在 UI 里编辑
docker-compose.yml,这对于想要扩展自定义服务的开发者来说非常方便。
由于 Dokploy 是开源的(采用 MIT 协议,非常宽松),你可以从以下几个方向进行“魔改”:
- 自定义部署流水线: 你可以修改其后端逻辑,在代码构建前后加入你自己的 Python 脚本进行安全扫描或性能测试。
- 深度集成 Java/Spring Boot 生态: Dokploy 目前对 Java 的支持主要靠 Nixpacks。你可以扩展它的模板系统,为 Spring Boot 应用提供更细致的 JVM 参数调优界面。
- 添加 Golang 编写的 Agent: 如果你觉得 Node.js 监控性能不够,可以用 Golang 写一个轻量级的监控 Agent 部署在受控节点上,然后将数据回传给 Dokploy 的面板。
- 选 Dokploy 的理由:你追求代码的整洁度和现代感。Dokploy 的代码库相对较新,没有那么多历史包袱,二开门槛低。
- 选 Coolify 的理由:你追求功能堆砌。Coolify 支持的一键安装应用(如各种数据库、中间件)目前比 Dokploy 多。
总结建议: 如果你打算基于一个项目做二次开发,Dokploy 是一个更好的起点,因为它的架构更符合现在的 Web 开发趋势,文档清晰,且核心逻辑没有被过度的业务代码淹没。
你想基于这个工具实现一些特定的业务逻辑吗?比如自动化的多租户管理或者是特定的 CI/CD 流程集成?我可以帮你分析一下 Dokploy 源码中对应的模块。
在 GitHub 上,基于 Python、Golang 或 Java 开发的类 Vercel(PaaS/Serverless 平台)开源工具非常丰富。这些工具通常被称为 开源 PaaS 或 自托管云平台,能够帮助你快速搭建一个从代码提交到自动部署的系统。
根据你对编程语言的需求,我为你筛选了以下几个最值得关注的项目,它们非常适合作为基础进行二次开发或功能扩展:
Golang 是目前 DevOps 领域的主流语言,这类工具通常集成度高,非常适合处理容器编排。
-
Coolify (推荐)
-
GitHub:
coollabsio/coolify -
特点: 目前最火的 Vercel 开源替代方案。它不仅支持静态网站,还支持数据库、API 和各种服务的一键部署。
-
扩展性: 它是用 PHP (Laravel) 做后端,但其核心引擎和各种服务集成逻辑与 Golang 生态结合紧密。如果你熟悉 Golang 容器化开发,可以研究它的部署流程。
-
CapRover
-
GitHub:
caprover/caprover -
特点: 基于 Docker Swarm,非常轻量级。提供了一个非常直观的 UI,可以实现“点击即部署”。
-
开发语言: 主要是 TypeScript,但其底层逻辑是纯粹的 Docker 操作。如果你想找 Golang 原生的,可以看 Dokploy (
Dokploy/dokploy)。 -
Piku
-
GitHub:
piku/piku -
特点: 被称为“最小的 PaaS”。它深受 Dokku 启发,但旨在不仅限于 Linux 容器。
-
开发语言: 虽然它很小,但很多 Golang 开发者会借鉴其 Git-push 触发部署的逻辑来构建自己的工具。
如果你更倾向于快速迭代和利用 Python 强大的生态(如处理 CI/CD 逻辑、AI 集成),这些项目是很好的起点:
-
Dokku
-
GitHub:
dokku/dokku -
特点: 它是 GitHub 上最老牌、最稳定的自托管 PaaS。它使用 Buildpacks 来自动识别代码语言并构建镜像。
-
扩展性: 虽然核心包含很多 Shell 脚本,但它的插件系统支持多种语言,有很多 Python 编写的扩展插件。你可以基于它的架构,用 Python 编写自己的管理后台或调度逻辑。
-
Devpush
-
GitHub:
hunvreus/devpush -
特点: 这是一个相对较新、直接对标 Vercel 的项目。它支持 Python、Node.js 等多种语言的零停机部署。
Java 在开源 PaaS 领域更多出现在大型企业级框架中。
-
Jelastic (现为 Virtuozzo Application Platform)
-
说明: 虽然它的大部分核心不开源,但在 Java 圈内,它是最接近 Vercel/Heroku 体验的。
-
Streampark (原 StreamX)
-
GitHub:
apache/streampark -
方向: 这不是一个通用的 Web PaaS,但它是针对 大数据任务 (Flink/Spark) 的“Vercel”。如果你想做一个针对特定领域(如数据处理、科学计算)的部署平台,它的 Java 架构(Spring Boot 驱动)非常有参考价值。
如果你要基于这些工具进行扩展,建议重点考察它们的架构模型:
| 工具名称 | 核心语言 | 核心技术栈 | 适合扩展的方向 |
|---|---|---|---|
| Coolify | PHP/Go | Docker / Traefik | 适合做全栈应用的自托管云管理平台 |
| Dokku | Shell/Python | Buildpacks / Docker | 适合研究如何把代码自动转化为镜像 (CI/CD) |
| CapRover | TypeScript/Go | Docker Swarm | 适合做轻量级集群管理和一键部署 |
| Porter | Go | Kubernetes | 适合基于 K8s 做企业级的 PaaS 平台 |
- 如果你想要最接近 Vercel 的 UI 和体验:去拉取 Coolify 的源码研究其 API 设计。
- 如果你想从底层逻辑开始扩展(如何处理 git push):研究 Dokku 的 hook 机制。
- 如果你想做高性能容器调度:选择 Porter (
porter-dev/porter),它是完全基于 Golang 和 Kubernetes 的,二次开发空间巨大。