2024 年 6 月,Cara 应用走红,一周内用户从 40,000 涨到 650,000,其创始人晒出的 Vercel 账单高达 $96,280 ,仅仅是前一周的费用。这是更大趋势中的极端一例:按用量计费的平台用起来很方便,直到流量、机器人、带宽或函数调用变成一张惊人的账单。
Vercel 现在提供了支出管理功能,包括通知、webhook,以及在达到设定的支出额度时暂停生产环境部署的选项。所以问题不在于开发者完全没有控制手段。问题在于,这些控制手段仍然需要被理解、配置和监控。Heroku 带来的是另一种压力:它简单又成熟,但一旦你超出小应用的范围,开始添加托管数据库、Redis、worker、备份和监控,成本就会迅速攀升。
于是出现了一个日渐成熟的开源自托管 PaaS 工具生态,目标是在你自己掌控的 VPS 上重现 Heroku 式部署体验的一部分:推送代码、绑定域名、获取 SSL、运行数据库、管理应用,而无需搭建一整套 Kubernetes 平台。
本文对比其中六款:Coolify、Dokku、CapRover、Dokploy、Kamal 和 seelf。目标不是给 star 最多的工具加冕,而是把决策空间梳理清楚,好让你把工具匹配到自己的约束条件,或者意识到它们都不合适,托管平台仍然是正解。
简短答案
自托管 PaaS 能在你自己的服务器上自动完成 Docker 构建、反向代理配置、SSL、应用部署和基础的服务管理。它默认不提供的,是托管平台那一整层基础设施:自动多区域故障转移、免操心的数据库可靠性,以及平台托管的事件响应。
- 选 Coolify 如果你想在自己的 VPS 上获得最接近完整 Heroku 式面板的体验。
- 选 Dokku 如果你想要最轻量的 git-push 部署流程,并且习惯使用 CLI。
- 选 CapRover 如果你想要一个简单的可视化应用管理器,并且大多部署单容器应用。
- 选 Dokploy 如果你想要打磨精良的现代面板、Docker Compose 支持,以及比 Coolify 更干净的界面。
- 选 Kamal 如果你想要一个 CLI 优先的部署工具,尤其适合 Rails 或容器化应用。
- 选 seelf 如果你想要一个轻量的 Docker Compose 部署工具,配一个小巧的 web 界面。
如果你的托管账单还不高,又不想维护服务器,那就继续用托管的。如果账单在涨,而你又能接受亲自负责更新、备份、防火墙规则和事件响应,那么自托管 PaaS 就讲得通。
自托管 PaaS 在财务上何时才真正划算
成本交叉点正是最常被简化处理的那部分。
一套小型 Heroku 生产环境的起步成本可以低于 $100 每月,但一旦你添加多个 dyno、更大的托管 Postgres、Redis、备份、监控或更高的可用性要求,账单就会涨到数百乃至数千。类似的应用栈往往能跑在 $15 到 $30 的 VPS 上,但这并不包含 Heroku/Vercel 式平台为你抽象掉的那种托管数据库可靠性、备份、故障转移或支持。
这才是真正的取舍:你不是用更少的钱换来一模一样的托管平台。你是用一台 VPS、一层开源部署工具,以及你自己的维护时间,去置换平台带来的便利。
一个实用的经验法则是:当托管账单痛到省下来的钱值得你为此付出工作量时,自托管才开始划算。对一个小型 SaaS 来说,这往往意味着账单已经超过大约 $50 每月,而运维者每月能现实地拿出几个小时来做更新、备份和基础监控。
我们的《在 VPS 上安装 Docker》指南 是本文所有工具的前置条件。如果你的服务器上还没跑着 Docker,就从那里开始。
省钱是真省,但前提是你愿意维护这台服务器。
六款工具横向对比
逐一介绍工具之前,值得把这六个选项放在一起比一比。合适的工具,是那个你能接受其局限的,而不是社区声量最大的那个。

| 工具 | GitHub Stars(约) | 哲学 | 多服务器支持 | 相对资源占用 | 最适合的使用场景 |
|---|---|---|---|---|---|
| Coolify | 54k+ | Web UI,完整的自托管 PaaS 体验 | 当前的 Swarm 路径正在被弃用;v5 已规划可扩展性 | 更高 | 多个应用,偏好面板 |
| Dokku | 31.9k | git-push,CLI,基于插件 | 仅单服务器 | 极低 | 一两个应用,开销最低 |
| CapRover | 15k+ | GUI 优先的应用管理器 | 支持 Docker Swarm | 温和 | 简单的可视化部署和单容器应用 |
| Dokploy | 33.7k+ | 现代 web UI,Coolify 替代品 | 支持远程服务器 / Docker Swarm | 温和 | 想要打磨精良 UI 的 Docker Compose 用户 |
| Kamal | 14.2k+ | CLI 优先,主机上无面板 | 多台服务器,非集群编排 | 主机开销极低 | Rails 或 Docker 应用,习惯 CLI 的团队 |
| seelf | 343 | 轻量的 Compose 部署 | 单节点 | 低 | 开销极小的 Docker Compose 栈 |
一个不匹配你约束条件的大型项目,照样会耗掉你和一个更小项目同样多的维护时间。
Coolify:完整面板体验
Coolify 是这一类别中最受欢迎的自托管 PaaS 工具之一,也是最接近完整 Heroku 式替代品的那个。它给你一个 web 面板,从一个地方管理应用、服务、环境、域名、SSL、部署和数据库。
Coolify 是这一类别中存在感最强的项目之一,v4.0.0 稳定版在经历漫长的 beta 期后,于 2026 年 4 月 27 日发布。这一点很重要,因为 Coolify 早已被广泛用于生产环境,但稳定版的发布给了新用户一个更清晰的基准。
Coolify 做得好的地方,覆盖了人们想从 Heroku 或 Vercel 替代品里得到的大部分面向开发者的能力。你可以部署多个应用、运行 Docker Compose 栈、添加像 Postgres 和 Redis 这样的服务、通过 Traefik 使用自动 SSL,并连接 GitHub、GitLab、Gitea 或 Bitbucket。
运行 Coolify 的成本,通常是被低估的那部分。在服务器上跑的不只是你的应用;Coolify 本身就是一个实打实的平台层。在一台配置合理的 VPS 上这没问题,但在一台很小的机器上就吃紧了。和 Dokku 相比,Coolify 给你更丰富的面板和更多内置便利,但它也要求更多的服务器资源和更主动的维护。
Coolify 还带来了这份清单里最大的安全教训。2026 年 1 月, Coolify CVE 披露 修补了 11 个严重漏洞,包括命令注入、身份验证绕过和私钥泄露问题。Censys 在当时识别出大约 52,890 个公开暴露的 Coolify 实例,比利时网络安全中心还发布了一份 通告 ,建议立即打补丁。
这并不意味着应该避开 Coolify。它意味着应该把 Coolify 当成一个对你服务器拥有真实权限的管理面板来对待。尽量别让这个面板暴露在公网上。把它绑定到像 Tailscale 或 WireGuard 这样的私有网络,按 IP 限制访问,并尽快应用安全更新。
如果你想要一个完整面板、管理多个应用、偏好可视化工作流,并且接受由你自己负责给平台本身打补丁,那么 Coolify 就是正确选择。
Dokku:能用的最小 PaaS
Dokku 是这次对比中最简单的认真选项。它自 2013 年就存在,采用 Heroku 式的 git-push 工作流,并坚守把一件事做好的理念。
工作流很直接:添加一个 remote,推送应用,Dokku 就会构建并运行它。插件处理常见需求,比如 Postgres、MySQL、MongoDB、Redis、备份、证书和定时任务。它没有 web 面板,这要么是个不便之处,要么是攻击面的缩减,取决于你怎么看。
Dokku 最大的优势是它占用小。对于一个不大的应用加数据库插件,它能舒服地跑在一台小 VPS 上。这让它成为最经得起推敲的选择之一,前提是你的目标是用一套轻量的 VPS 配置去替换一笔不大的托管平台账单。
Dokku 默认仍然使用 buildpacks,同时也提供 Docker 支持。有些开发者觉得 buildpacks 过时了,但对从 Heroku 迁移过来的人来说,这往往恰恰是重点。Procfile 和 Heroku 式的部署习惯能干净地平移过来。
主要的缺点是 Dokku 期望你习惯在 CLI 里操作。它没有面板供那些想点点点的队友使用,没有用来管理多个应用的精致 UI,也比 Coolify 或 Dokploy 少了不少手把手的引导。
当你想要一次 git push、尽可能小的服务器占用,并且没有公开的管理面板需要去守,Dokku 就是正确答案。
CapRover、Dokploy、Kamal 和 seelf:另外四款
Coolify 和 Dokku 是两个显而易见的默认选择,但另外四款工具并非凑数。每一款都为某个特定约束而生。

CapRover
CapRover 是一个 GUI 优先的应用与数据库部署管理器,围绕 Docker、nginx、Let's Encrypt 和 NetData 构建。它容易理解、容易安装,如果你的应用契合直白的单容器部署模型,用起来尤其舒服。
CapRover 支持 Docker Swarm。它仍在维护,v1.14.1 于 2025 年 11 月发布,但它感觉不像 Coolify 和 Dokploy 这些更新的面板优先替代品那样推进得快。对一次全新的部署来说,这一点很重要。你不只是在选今天的功能集;你是在选那个你将不得不长期相处的工具的维护节奏。
如果你已经在用 CapRover、喜欢它的简单、或者想要一个不带 Coolify 那种沉重感的可视化界面,那它仍然合理。对新项目来说,除非 CapRover 的简单是决定性因素,否则通常更容易推荐 Dokploy 或 Coolify。
Dokploy
Dokploy 是最接近现代 Coolify 替代品的那个。它有一个打磨精良的面板,支持 Docker Compose,自带模板,并给开发者一个更干净的 UI 来管理应用、数据库、域名和部署。
重要的更正是:Dokploy 在设计上不再只是单节点了。它默认在同一节点上运行应用,但现在已支持远程服务器、集群设置和基于 Docker Swarm 的部署。这仍然没让它变成一个托管的自动伸缩平台,但确实让 Dokploy 比一个基础的单服务器面板更灵活。
Dokploy 的优势在于易用性。它感觉更新、更干净,推进得也比一些更老的工具快。代价是比 Coolify 更小的社区,以及不如 Dokku 经过长期实战检验。
如果你想要一个现代 web UI、使用 Docker Compose,喜欢 Coolify 的理念但不喜欢它的体量或近期的安全包袱,那就选 Dokploy。
Kamal
Kamal 和清单里其余工具不一样。它不是 web 面板,而是一个由 37signals 打造、最初围绕 Rails 设计的 CLI 部署工具,不过它能部署任何可以用 Docker 容器化的 web 应用。
Kamal 采用基于 Docker registry 的工作流,并通过 SSH 把容器部署到服务器上。它不在主机上跑一个常驻的管理面板,这让部署面更小。它能跨多台服务器部署,但不会像 Kubernetes 或托管集群那样去编排它们。
这让 Kamal 非常适合那些偏好代码驱动运维而非面板的团队。如果你的团队本来就在终端里工作、理解 Docker 镜像,并且想要可重复的部署而不需要一个 PaaS 面板,那么 Kamal 是个干净的选项。
如果是 Rails 应用、容器化应用,以及那些想要一个尽可能小的部署工具而非一套平台 UI 的团队,就选 Kamal。
seelf
seelf 是这里最小、也最小众的工具。它是一个轻量的部署平台,围绕 Docker Compose 栈和一个小巧的 web 面板构建。
它的主要吸引力在于简单。如果你已经有一个能用的 Docker Compose 文件,并想要一种干净的方式把它部署到自己的基础设施上,seelf 可能就够了。它不试图变成一个完整的 Heroku 替代品,而这份克制正是它价值的一部分。
代价是社区规模。只有几百个 GitHub star,如果你想要大量教程、社区解答和第三方集成,seelf 不是该选的工具。当某些行为出乎意料时,你可能得仔细读文档,或者去翻源码。
如果你的工作流是 Compose 优先,而 Coolify 或 Dokploy 让你觉得过重了,那就选 seelf。
那些真正要紧的诚实局限
自托管 PaaS 工具有用,是因为它们把重复的部署工作藏了起来。它们有风险,是当用户忘了底层那台服务器仍然是自己的责任时。

单节点天花板
当一台 VPS 就够用时,这些工具最容易让人想得明白。有些支持多服务器部署,但没有一个能在不额外设计的情况下,给你托管平台式的自动伸缩或多区域故障转移。
这不会自动成为致命缺陷。许多小应用能舒服地跑在一台尺寸合适的 VPS 上。但「一台服务器就够了」是一个你应该有意识地接受的约束,而不是在一次故障中才发现的事。
运维责任
自托管意味着更新、备份、防火墙规则、监控和事件响应都归你管。Coolify 在 2026 年的 CVE 事件,是这份责任在现实中长什么样的最清楚的例子,但同样的原则适用于这份清单里的每一款工具。
托管平台替你吸收了其中大部分工作。自托管 PaaS 给你更多的掌控和更低的基础设施成本,但它也把你拉上了打补丁的时间表。
Docker 防火墙的意外
Docker 的端口发布,可能会让那些只依赖 UFW 或基础主机防火墙假设的人措手不及。Docker 会为端口发布和网络隔离创建它自己的防火墙规则,所以「UFW 已启用」本身并不够。
更安全的缓解办法是:当容器位于反向代理之后时,把它们绑定到 localhost;有意识地使用 Docker 网络;并通过 DOCKER-USER 链来管理过滤。设置 iptables=false 是一个高级选项,对大多数用户并不合适,因为它可能会破坏容器网络。
反向代理冲突
许多自托管 PaaS 工具会安装或预期使用它们自己的反向代理。Coolify 用 Traefik。CapRover 用 nginx。你 VPS 上的其他服务可能已经在用 Caddy、nginx 或别的代理。
如果两个服务都想占用 80 和 443 端口,它们就会冲突。修复办法通常是统一到一个反向代理上,或者有意识地把 PaaS 放到你现有代理之后。别在一台繁忙的服务器上装一个面板式 PaaS,还指望它会自动和你当前的 web 栈共存。
时间成本
对相当一部分团队来说,Hacker News 上的那个质疑很到位:如果你要自己管理这个 PaaS,那你还在享受 PaaS 带来的好处吗?
有时答案是肯定的。如果你的托管账单够高、应用又够简单,自托管 PaaS 能省下可观的钱。有时答案是否定的。如果自托管每月省下 $30,却要花掉你四个小时去维护、排障和操心,那这笔账多半算不过来。
自托管 PaaS 是一种权衡,不是一次免费升级。
快速结论
选择 Coolify 如果你需要一个面板、想在一台服务器上跑多个应用,并且接受把主动打补丁当成这笔交易的一部分。
选择 Dokku 如果你想要一次 git push、尽可能小的服务器占用,并且没有公开面板需要去守。
选择 Dokploy 如果你想要一个更干净的现代 UI、Docker Compose 支持,以及比基础单节点面板更高的灵活性。
选择 CapRover 如果你想要一个简单的可视化应用管理器,而你的部署也契合它的模型。
选择 Kamal 如果你的团队习惯在 CLI 里操作,并想要可重复的 Docker 部署而不需要一个平台面板。
选择 seelf 如果你想要轻量的 Docker Compose 部署,并且不需要一个庞大的生态。
如果你的托管账单还不高,又不想做维护工作,那就继续用托管的。
一种更简单的方式开始自托管
自托管 PaaS 最难的部分,并不总是工具本身。而是它周围那一圈准备工作:准备 VPS、安装 Docker、配置网络、开放正确的端口、处理 SSL,以及确保面板没有被随随便便地暴露出去。
这正是一个一键应用市场能让第一步变得更轻松的地方。你不必从一台空白的 VPS 起步,而是可以用为 Coolify、Dokku 或 seelf 等工具预建好的部署,然后把精力放在判断这个平台是否适合你的应用上。
Cloudzy 的应用市场 提供了 Coolify、Dokku 和 seelf 的一键安装。这并不免除你维护服务器的责任,但它确实免去了大量的搭建摩擦——正是这些摩擦,最初拦住了开发者去试用自托管 PaaS。
常见问题
Heroku 的最佳自托管替代方案是什么?
Coolify 和 Dokku 是最稳妥的默认选择。如果你想要一个面板和更完整的平台体验,选 Coolify。如果你想要最轻量的 Heroku 式 git-push 工作流,并且习惯使用 CLI,选 Dokku。
Coolify 在生产环境里用安全吗?
Coolify 可以用于生产环境,但前提是你把它当成一个权限很大的服务器管理面板来对待。让面板保持私有、限制访问、尽快应用更新。把面板公开暴露却没有打补丁的计划,才是有风险的那部分。
Coolify 对比 Dokku:我该选哪个?
如果你要跑多个应用并想要一个 web 面板,选 Coolify。如果你跑一两个应用、偏好 CLI、并想要最低的开销,选 Dokku。
自托管 PaaS 能替代 Vercel 来跑 Next.js 吗?
对许多小应用来说,可以。Coolify 和 Dokploy 都能托管 Next.js 应用,但你要放弃 Vercel 托管的边缘/CDN 层,并且必须自己配置缓存、ISR 行为、图片优化的伸缩,以及多实例一致性。
我需要 Kubernetes,还是自托管 PaaS 就够了?
如果一台 VPS 就够用,而你又不需要自动伸缩或多区域故障转移,那么自托管 PaaS 就够了。如果你需要协调的多节点调度、自动化伸缩,以及更深的基础设施控制,那你就在朝着 Docker Swarm、Nomad 或 Kubernetes 靠拢。
Dokku 还在维护吗?
在维护。Dokku 仍然保持稳定的发布节奏,但与更新的面板优先工具相比,它推进得慢。对基础设施软件来说,这或许是一种优点,而非缺点。