SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor

Cloudron、CasaOS 和 Coolify VPS 面板怎么选

对比 Cloudron、CasaOS 和 Coolify 在 Ubuntu 24.04 VPS 上的安装命令、TLS、备份、费用与资源占用,包含 1GB、2GB 内存要求及端口差异,帮助您选对自托管面板。

正在构建的内容

您选择的不只是安装工具,也是在选择管理方式。三个面板都承诺将一台空白 VPS 变成可通过点选操作的应用主机:Cloudron、CasaOS 和 Coolify。本指南会在同一台全新的 Ubuntu 24.04 服务器上分别安装它们,部署第一个应用,然后重点检查通常不会出现在截图中的部分:TLS、备份、更新、内存开销,以及迁移离开的难度。读完后,您将知道哪个工具适合自己,也会知道是否应该诚实地选择“一个都不用,直接使用 Docker Compose”。

这些工具都不是魔法。三者底层使用的都是您可以手动操作的同一个 Docker Engine。面板以费用、RAM 占用或锁定成本换来的,是代为完成以下四项工作:一键安装应用、自动申请 TLS 证书、计划备份和用户管理。 如果这四项功能值得您承担实际的额外开销,使用面板就是值得的。如果您只运行一两个服务,并且希望确切了解服务器上的所有内容,请先阅读“跳过这三个工具”一节,以免增加不必要的麻烦。

共享先决条件与常见陷阱

这三种方案均假设您使用 KVM VPS,而非容器虚拟化。Docker 需要真实的内核,Cloudron 明确不支持 OpenVZ 和 LXC。请使用 systemd-detect-virt 进行检查:输出 kvm 或 qemu 均可,但 openvz 或 lxc 不行。在 KVM 方案中,该命令会输出 kvm,在物理机上则输出 none;无论哪种结果,均表示您可以继续操作。

除此以外,各项指标有所不同,这也是决定选择的首要因素。

  • 内存 (RAM)。 CasaOS 在 1GB 内存下即可流畅运行;它源于 Raspberry Pi 硬件,始终保持轻量。Coolify 的基准要求是 2GB 内存和两个 CPU 核心,其中约 600 MB 被 Coolify 自身占用。Cloudron 至少需要 2GB 内存,且在 4GB 下运行更佳,因为它在您安装任何应用之前就已经运行了邮件服务器和数据库。
  • 您拥有的域名和 DNS。 Cloudron 和 Coolify 都需要一个具备有效 DNS 解析的真实域名。Cloudron 理想情况下需要 DNS 提供商的 API 访问权限,以便自动创建记录和通配符证书。CasaOS 可以在裸 IP 上运行,但这样将无法使用 TLS。
  • 端口。 Cloudron 和 Coolify 需要开放 80 和 443 端口以处理 HTTP 和 HTTPS 流量。CasaOS 通过普通 HTTP 提供仪表板,因此仅需 80 端口。Coolify 额外使用 8000 端口提供仪表板,并使用 6001 端口处理实时通道,使用 6002 端口处理浏览器内终端。请确保所有方案都保持 22 端口开放以供 SSH 使用。

在开始之前,请先将 DNS 指向服务器。如果面板无法解析自身主机名,则无法申请证书,您将不得不花费第一个小时来调试该问题,而不是安装软件。请将一条 A 记录指向服务器 IP,对于 Coolify,请添加一条通配符记录 (*.apps.example.com),以便每个部署的应用都能获得自己的子域名。

Cloudron:精简且固化的应用平台

简介。 Cloudron 是一个商业平台,可将整台服务器转变为受管的专用设备。它运行自带的反向代理、数据库和邮件栈,并提供一个精选的应用商店,包含 Nextcloud、WordPress、Gitea、Mattermost 等封装应用。它面向那些希望应用得到“托管”的用户,提供自动更新、自动证书和自动备份,且用户愿意为此付费。

安装。 它要求使用纯净的服务器,并会完全接管系统。请在全新的 Ubuntu 24.04 (Noble) 服务器上运行此脚本,且不要安装其他任何软件:

wget https://cloudron.io/cloudron-setup
chmod +x cloudron-setup
sudo ./cloudron-setup

该脚本会安装 Docker、nginx、数据库和邮件栈,随后重启。服务器恢复后,打开 https://<your-ip>,接受临时的自签名证书,并在浏览器中完成设置:指向您的域名,选择 DNS 提供商,它会在 my.example.com 处配置其仪表盘。

添加首个应用。 在仪表盘中打开应用商店,点击(例如)Nextcloud,选择子域名 files.example.com,然后点击安装。Cloudron 会自动创建 DNS 记录、申请 Let's Encrypt 证书、配置数据库、连接单点登录并安排备份,全程无需您手动修改任何配置文件。这就是其核心卖点,且功能确实如此。

TLS 与备份。 这是三者中最强的一项。每个应用子域名都会获得自动续期的 Let's Encrypt 证书。备份功能内置且已排程,支持本地目录、S3 或其他远程存储,支持按应用恢复,甚至支持将应用一键克隆到新的子域名。

成本与许可,在决定前请阅读。 Cloudron 是一个付费产品,且免费层级有限制:免费计划仅允许安装 2 个应用。安装第 3 个应用时会触发付费墙;付费订阅(Pro 或 Max,按月或按年计费,均支持无限应用)可解锁更多功能。这是关于 Cloudron 最重要的一点。它之所以精良,正是因为它是商业产品,其免费层级更像是一个延长的试用期,而非承载不断增长的服务栈的理想之地。

故障模式:纯净环境规则。 若尝试在已运行其他服务的服务器上安装 Cloudron,安装程序会在执行任何更改前中止:

Error: Some packages like nginx/docker/nodejs are already installed. Cloudron requires
specific versions of these packages and will install them as part of its installation.
Please start with a fresh Ubuntu install and run this script again.

这并非因为程序挑剔。Cloudron 锁定了特定版本的 nginx、Docker 和 Node,并进行了深度集成,因此无法与您自行安装的版本共存。解决方法是使用全新的 Ubuntu 24.04 镜像,且不安装其他任何软件:不要安装 Web 服务器、Docker,甚至不要手动配置防火墙。如果您引导了错误的镜像,安装程序也会拒绝任何非受支持的 Ubuntu LTS 版本(22.04、24.04 或 26.04)或非 x86-64 架构;ARM、LXC 和 OpenVZ 均不受支持。自 Cloudron 10(2026 年 9 月)起,Ubuntu 26.04 已成为新安装的默认版本,因此如果您现在从零开始,请选择该镜像。

第二种故障模式:通配符证书需要 DNS API。 如果在设置过程中选择“手动”DNS 选项,而不是提供 API 令牌,Cloudron 将无法为您创建记录或通配符证书。此后,每安装一个新应用,您都必须手动添加 DNS 记录,证书才能签发,仪表盘也会一直等待该记录。为 Cloudron 提供受支持 DNS 提供商(如 Cloudflare、Route 53、DigitalOcean 等)的 API 访问权限,整个流程即可实现一键完成。

CasaOS:免费的家庭实验室仪表板

概述。 IceWhale 推出的 CasaOS 是一个免费开源的仪表板,运行在 Docker 之上,提供主屏幕、应用商店和文件管理器。它源自家庭服务器领域,因此设计侧重家庭实验室:部署快速、界面友好、配置过程简单。它面向希望以更友好的界面管理 Docker、但不想付费购买服务的爱好者。

安装。 执行一行命令即可,不要求使用全新的系统:

curl -fsSL https://get.casaos.io | sudo bash

安装程序会添加一组 systemd 服务(casaos、casaos-gateway、casaos-app-management 等)。打开浏览器前,先确认网关已启动:

systemctl status casaos-gateway

运行后,仪表板位于 http://<your-ip>(普通 HTTP,端口 80)。创建本地账户后即可使用。

添加第一个应用。 打开应用商店,选择应用,然后点击 Install。CasaOS 会在后台创建 Docker Compose 项目,并通过主机端口暴露应用,例如 http://<your-ip>:8080。应用商店包含常见的家庭服务器应用,因此部署 VPS 上的 Jellyfin 媒体服务器 或 自行托管的 Immich 照片库 只需几次点击。如果还没有确定使用哪个照片服务器,建议先阅读 区分 PhotoPrism 与 Immich 的内存下限和手机应用,因为在 1GB 的 CasaOS 主机上,这一选择可能决定应用能否运行。您还可以导入任意 docker-compose.yaml,这正是它的优势:这些应用都是普通容器,而不是专有格式。

TLS 和备份:薄弱环节。 这正是“免费”的限制所在。CasaOS 默认通过普通 HTTP 提供所有服务,包括自身的仪表板。它没有内置 Let's Encrypt,也没有内置的定时备份。您的数据位于 /DATA 下的 Docker 卷中,备份需要由您自行负责(通过 cron 执行的 restic 或 tar)。

故障模式:没有 TLS,但不会明确提示。 系统不会报错。您安装应用,打开 http://<your-ip>:8080,应用即可运行,但连接未加密,浏览器会标记为 “不安全”。密码和会话 Cookie 会以明文形式通过网络传输。更严重的是,CasaOS 的仪表板曾存在实际的远程代码执行漏洞(CVE-2023-37265 和 CVE-2023-37266;其中一个身份验证绕过漏洞可进一步导致整个主机被攻陷),因此直接将该 HTTP 端口暴露到互联网会带来真实风险,而不只是界面偏好问题。解决方法是不要直接暴露 CasaOS。在前面配置反向代理来终止 TLS,例如使用 通过 Certbot 配置 Let's Encrypt 证书的 nginx、Caddy 或 Cloudflare Tunnel,并且仅通过本地网络将请求转发到 CasaOS。请注意,CasaOS 已经绑定端口 80;如果不先将 CasaOS 修改为其他端口,代理和 CasaOS 会争用该端口。

成本。 真正免费,永久免费,且不限制应用数量。您需要自行负责 TLS、备份和加固。

Coolify:自托管 PaaS

简介。 Coolify 是一个开源的自托管平台即服务(PaaS),类似于在你自己的服务器上运行 Heroku 或 Vercel。它的核心逻辑不是“安装打包好的应用”,而是“部署 Git 仓库”:连接仓库后,Coolify 会通过 Nixpacks 或你提供的 Dockerfile 构建并发布应用,并在每次推送代码时自动重新部署。它还支持一键部署数据库和服务。该工具面向那些希望实现“推送即部署”且不想租用商业 PaaS 的开发者。

安装。

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash

该脚本会安装 Docker 并启动 Coolify 的容器栈。继续操作前,请先检查容器状态是否正常:

docker ps --format 'table {{.Names}}\t{{.Status}}'

你应该看到 coolify、coolify-db、coolify-redis、coolify-realtime 和 coolify-proxy 的状态均为 Up。仪表板位于 http://<your-ip>:8000。请立即创建管理员账户,因为注册页面在首个账户创建前是开放的,任何访问该页面的人都可以控制服务器。随后设置实例域名,并将一条泛域名 DNS 记录(*.example.com 或 *.apps.example.com)指向该服务器,以便 Coolify 能为每个部署的应用分配子域名。

添加第一个应用。 连接 Git 源(GitHub、GitLab 或普通仓库 URL),选择分支,设置域名,然后部署。Coolify 内置的 Traefik 代理会自动路由子域名并申请证书。对于现成的软件,服务目录支持一键部署:n8n 工作流自动化栈 和 用于状态页监控的 Uptime Kuma 均可直接通过该目录部署。

TLS 与备份。 通过内置的 Traefik 实现每个应用自动获取 Let's Encrypt 证书,因此每个部署的子域名都会获得证书。备份以数据库为核心:你可以将 Postgres 和 MySQL 的转储文件定时备份到兼容 S3 的存储中。整个实例的备份(即位于 /data/coolify 下的 Coolify 配置本身)需要手动操作,请自行导出并妥善保存。

成本与许可。 自托管版本完全开源且免费,没有应用数量限制。此外提供可选的 Coolify Cloud(付费服务),它负责托管控制平面,而你的应用仍运行在自己的服务器上,这很方便但并非必需。

故障排查:应用已部署但域名无法访问。 仪表板在 http://<ip>:8000 上运行正常,构建状态显示为绿色,但应用 URL 返回连接错误或 Traefik 404 page not found。这说明问题出在代理或 DNS,而非应用本身。常见原因有两个。首先,代理启动时 80 或 443 端口已被占用,导致其容器因 Docker 错误而停止:

Error response from daemon: driver failed programming external connectivity on endpoint coolify-proxy: Bind for 0.0.0.0:443 failed: port is already allocated

其次,主机名未解析到服务器:要么是应用使用了自动生成的子域名但缺少泛域名 DNS 记录,要么是使用了自定义域名但没有指向该服务器的 DNS 记录,导致 Traefik 未收到该主机名的请求。如果 Coolify 中的整个服务器卡片显示 "Server is not reachable",则是另一种故障:Coolify 无法连接到服务器的 Docker 套接字,通常是因为 Docker 守护进程已停止或 SSH 密钥损坏。在猜测原因前,请先查看日志:

docker logs coolify-proxy --tail 100

在“代理”(Proxy)页面修复该问题:点击 Restart Proxy,或将代理配置重置为默认值并重新启动,然后等待约两分钟使其生效。仅允许你自己的 IP 访问 8000 端口(或在代理异常时临时开放),不要将其暴露给公网。该端口通过明文 HTTP 提供仪表板服务,根据 Coolify 官方文档,一旦通过域名访问仪表板,即可关闭 8000、6001 和 6002 端口。

同一 VPS 上的资源开销

在同一台 4GB 服务器上、部署任何实际工作负载之前测得的空闲状态数据。请使用 free -m 和 docker stats --no-stream 检查您自己的环境,不要只相信某一个数值,因为总开销会随应用组合变化。

  • CasaOS 的开销最低。其面板由少量 Go 服务组成;除您运行的容器外,预计额外占用约 150 到 300 MB。
  • Coolify 会运行多个自身的支持容器,包括应用、Postgres、Redis、实时服务和 Traefik。因此,在部署任何应用之前,其空闲占用约为 600 MB 到 1 GB。
  • Cloudron 在空闲时的开销最高,因为无论您是否使用,它都会运行自己的 nginx、数据库、邮件系统和监控服务;请为其预留 1 到 1.5 GB 的空闲内存。这也是它要求至少 2GB,并且在 4GB 环境下运行更宽裕的原因。

在较小的 2GB VPS 上,CasaOS 能为实际应用留下最多空间,而 Cloudron 留下的空间最少。如果您的方案是 2GB,并且希望运行带邮件服务器的 Cloudron,请计划升级服务器配置。

更新、备份和锁定程度对比

更新。 Cloudron 会按照经过测试的计划,为您更新平台和所有应用:所需操作最少,托管引导也最完善。Coolify 可在自身控制面板中通过一个按钮完成更新。CasaOS 通过安装脚本或 apt 更新面板,但您安装的应用需要自行拉取更新并重启。

锁定程度:第二年最容易暴露影响。 CasaOS 的锁定程度最低:其应用是普通的 Compose 项目,因此您可以将 docker-compose.yaml 以及 /DATA 下的卷复制到其他主机并继续使用。Coolify 处于中间位置:部署使用您自己的 Dockerfile 和代码仓库,但配置存储在 Coolify 的数据库中,因此迁移主机时,需要在另一端重新创建项目。Cloudron 的锁定程度最高:应用由 Cloudron 打包;虽然借助其出色的备份功能,您的数据可以顺利迁出,但应用打包方式无法迁移,因此需要在目标平台上重新部署。数据可移植,应用配置不可移植。

应选择哪一个

先给出简短结论,再说明不适用的情况。如果您希望三者中服务器维护工作最少,需要运行多个打包应用,并且愿意按年付费以获得托管 TLS、备份和更新,请选择 Cloudron。如果这是位于您自己的网络或反向代理之后的家庭实验室,您希望以友好的界面管理 Docker,并且不愿支付任何费用,请选择 CasaOS。如果您通过 Git 部署自己的代码,希望实现推送即部署和自动 TLS,同时不想承担托管 PaaS 的费用,请选择 Coolify。如果这三种情况都不符合您,下一节会给出直接的答案。

如果……

请如实评估自己的规模。如果您只运行一两个应用,或者希望准确了解并控制服务器上的所有内容,请跳过这些面板。 对于规模较小且稳定的服务栈,面板的额外开销和厂商锁定并不值得。DIY 方案是在您自己的 Compose 文件前部署反向代理:在多个 Docker Compose 应用前使用 Traefik 自动配置 TLS,无需承担面板的额外负担,即可获得相当于一键配置的 HTTPS;备份则使用您真正理解的、由 cron 定时执行的 restic 作业。

一个用于对比的最小 Traefik 标签服务
services:
  whoami:
    image: traefik/whoami
    labels:
      - traefik.enable=true
      - traefik.http.routers.whoami.rule=Host(`whoami.example.com`)
      - traefik.http.routers.whoami.tls.certresolver=le
    networks: [web]
networks:
  web:
    external: true

Traefik 会读取这些标签,路由主机名并获取证书:这与面板执行的任务相同,但只需几行您可以直接读懂的配置。

对于单个核心应用,结论更加明确:在 Docker 上安装带 TLS 的 Nextcloud,并配置独立的备份流程,只需一个 Compose 文件和一个证书。为了运行它而部署完整的集成设备,只会增加成本,不会带来收益。如果您还在决定运行什么,尚未决定采用什么方式,那么2026 年值得自行托管的服务指南是更好的起点。

FAQ

我真的需要自托管面板吗?

仅当你需要面板在多个应用间自动完成以下四项工作时才需要:一键安装、自动 TLS、定时备份和用户管理。如果只有一两个服务,在 Traefik 后端使用基础的 Docker Compose 也能完成同样的 TLS 任务,且开销更小,不存在厂商锁定。当你运行大量应用,且你的时间成本高于面板占用的内存资源时,使用面板才更有价值。

哪款面板最适合初学者?

对于不向公网暴露任何服务的家庭实验室,CasaOS 是最平滑的起点:一条命令即可安装,界面友好,且无需付费。但如果需要暴露服务,必须先在前端部署一个负责 TLS 终止的反向代理,因为该软件默认仅提供明文 HTTP。如果你希望由他人代管 TLS 和备份,且愿意为此付费,Cloudron 是最省心的选择,其免费版支持安装两个应用。

Cloudron 是免费的吗?

部分免费。免费层级允许安装 两个应用,这对于试用或极小规模的部署已经足够。超出此限制后,Cloudron 需要按月或按年订阅,付费层级支持无限应用。它是一款带有免费额度限制的商业产品,而非自由软件,如果你的应用栈会持续增长,请提前做好预算。

我可以在现有应用旁边运行这些面板吗?

Cloudron 不可以。它 要求一台纯净的 Ubuntu 服务器,如果系统中已安装 nginx、Docker 或 Node,它会中止安装,因为它需要接管整台机器。CasaOS 和 Coolify 更友好一些,它们安装自己的 Docker 栈,原则上可以共用一台机器。但 CasaOS 需要占用 80 端口作为仪表盘,Coolify 的代理则需要占用 80 和 443 端口,因此它们会与任何已占用这些端口的 Web 服务器或代理发生冲突。在已经部署了服务的机器上,面板通常不是合适的工具;此时应选择 Traefik 和 Compose。

以后如何从面板迁移出来?

在需要迁移之前就规划好退出路径。对于 CasaOS,将应用的 docker-compose.yaml 和 /DATA 卷复制到新主机并重新启动即可。对于 Coolify,导出每个项目的配置,并将其指向目标主机上的相同仓库。对于 Cloudron,需将备份数据恢复到新平台中新安装的应用里,因为 Cloudron 的封装格式无法直接迁移,只有数据可以。无论哪种情况,在拆除旧环境前,务必先在测试机上验证恢复过程。