← 返回博客列表

Coolify 自建怎么装:面板端口、证书与部署 502

2026-09-19 · 刺猬VPN

Coolify 是装在你自己服务器上的部署面板,用来拉代码、建容器、配域名。它不是一家托管云。国内常见的失败是:安装脚本依赖的地址下不下来、面板端口被安全组挡住、Let's Encrypt 校验失败、以及应用容器起来了但反代给出 502 Bad Gateway。每一层的日志都不在同一个地方。

下面按「机器能从外网访问面板,再签证书,最后才部署第一个应用」来做。版本和安装命令以官方文档为准,不要照着过期博客里的端口硬改。

面板、代理和应用容器

502 表示反代找到了上游,但上游没有给正常响应。面板能打开而网站 502,就不要去重装面板。先看这个应用的容器是不是在反复重启。

对比项Coolify 面板反代与证书你的应用
你访问的是什么管理界面域名上的 HTTPS业务网站
常见端口安装后的面板端口,常见包括 800080 与 443容器自己的端口
打不开时安全组或进程没起来校验失败或域名没指过来容器退出或反代指错
典型现象地址一直转圈浏览器证书报错502 Bad Gateway
日志在哪安装与面板日志代理日志该应用的容器日志
和托管平台的差别机器是你的证书要你自己的域名没有平台替你看守

从空机器到第一次部署:分步操作

  • 第一步:先把线路准备好。安装脚本和镜像仓库若从国内下不动,在你操作的电脑上连上刺猬VPN,再连到服务器执行。自定义用户名和密码即可匿名注册,不需要邮箱和手机号。免费节点永久免费、不限流量、不限速。全程 HTTPS+AES 加密传输。服务器本身若在境外,脚本在服务器上跑,不经过你电脑的节点,下不动时要给服务器准备能访问镜像仓库的网络。
  • 第二步:用一台干净的系统,按官方当前文档执行安装。不要同时装另一套占用 80 和 443 的面板。端口冲突时,Coolify 的代理起不来,现象像安装失败。
  • 第三步:云厂商安全组放行面板端口以及 80、443。只放行 22 时,SSH 能进,浏览器永远打不开面板。
  • 第四步:用服务器的地址加面板端口打开管理页,先创建管理员。这一步不要用域名,避免证书还没签就排查域名。
  • 第五步:把域名的 A 记录指到这台服务器。记录生效前不要点签发。校验方要从公网访问到 80 端口上的校验路径。
  • 第六步:在面板里连接 Git 来源。GitHub 通常要装一个 GitHub App,授权的是仓库,不是把密钥贴进聊天。私有仓库没授权时,部署日志会写拉取失败。
  • 第七步:先部署一个只返回一行文字的最小应用,确认域名打开是 200,再换你的正式项目。第一次就上正式项目,失败时分不清是代码还是面板。
  • 第八步:镜像拉取失败时,先在服务器上单独拉取那一个镜像。拉不动是仓库网络,不是应用配置写错。可对照镜像仓库的访问问题处理。
  • 第九步:改端口或重装前,导出你已经写好的环境变量。重装会让你以为应用丢了,其实是变量没了,容器起不来,反代就 502。

面板打不开、证书失败和 502

三句话对应三个日志,不要同时重启所有容器。

  • 浏览器一直转圈、SSH 正常:安全组没放行面板端口,或面板进程没听在这个端口。先在服务器本机访问该端口,本机能开、外面不能,就是安全组。
  • 本机也打不开面板:安装没完成或端口被占用。看安装日志里谁占用了 80 或面板端口。
  • 证书签发失败:域名还没指到这台机器,或 80 端口从公网访问不到。先用直接的地址确认 80 是通的,再签。
  • 证书签了但浏览器仍警告:你打开的是 IP 或旧域名。用刚签的那个主机名访问。
  • 502 Bad Gateway:反代后面的容器没在听。看该应用日志是崩溃、缺环境变量,还是端口和面板里填的不一致。
  • 部署日志写拉取镜像失败:服务器到镜像仓库的网络问题。不要改应用端口来碰运气。
  • Git 拉取 404 或无权限:GitHub App 没包含这个仓库。在 GitHub 的应用设置里加上仓库,再部署。
  • 只有更新后 502:新版本启动失败,旧容器已被换掉。回滚到上一版构建,再看新日志。

你的电脑和服务器各走各的网

电脑上的刺猬VPN 只影响这台电脑。服务器在境外时,SSH 上去执行的下载不自动走你的节点。免费节点适合先把文档和面板页面打开。实际可用性取决于当前网络环境。

对比项操作电脑上的线路服务器自己的网络托管平台
打开文档和面板线路有帮助不经过你的电脑平台负责
服务器拉镜像你的节点帮不上忙要服务器出得去平台拉镜像
访客访问网站与你的线路无关走服务器和域名走平台
流量时长套餐期间不限流量、不限速按云厂商计按平台计
免费节点永久免费、不限流量、不限速不能装进服务器当公网不涉及
适合从国内操作面板部署和拉镜像不想自己管机器时

和镜像仓库、托管平台的分工

镜像拉取超时,先看 Docker Hub 怎么访问,确认是仓库问题再回到 Coolify 的部署日志。不想自己管机器和证书时,托管平台的取舍见 Render、Railway 与 Fly.io。Coolify 解决的是机器已经在你手里、你要一个面板。

不要把托管平台的环境变量名原样套进自建容器,端口和启动命令都以你这个镜像的文档为准。

常见报错速查表

现象原因解决办法
SSH 行、网页转圈安全组未放行放行面板端口、80、443
本机也打不开面板进程或端口冲突看安装日志里的占用
证书签发失败域名或 80 端口不通先确认解析和 80
502 Bad Gateway上游容器无响应看该应用日志和端口
拉取镜像失败服务器到仓库不通在服务器上单独拉取
Git 仓库 404应用未授权该仓库在 GitHub App 里加上
更新后才 502新版本启动失败回滚后再看日志

第一次成功之后把这几项记下来

记下面板的地址和端口、管理员是在哪一台机器上、域名指到的地址、以及最小应用的端口。以后 502 时,先对比端口是不是还和当时一样。云厂商重置安全组后,22 还在、80 没了,现象就是证书昨天还好、今天校验失败。

环境变量不要只存在面板里却没有备份。重装系统前把变量导出。数据库口令写进仓库就会进历史记录,面板里的变量和仓库里的文件要分开。自动部署若每次推送都失败,先看是构建失败还是健康检查失败。构建失败看编译日志,健康检查失败是容器起来了但检查路径没有返回成功,把检查路径改成应用真实存在的地址。

给面板本身也套上你的域名之后,旧的 IP 加端口仍可能能打开。对外只留域名,安全组里不要把面板端口对全世界长期敞开,改成你的地址或通过跳板。怎么限制以你使用的云厂商控制台为准。应用域名和面板域名不要用同一个主机名,否则证书和反代会抢同一条规则。

面板能打开之后,把第一次部署写成一张清单,贴在仓库说明的最上面。清单只留六行:服务器地址、面板端口、域名、应用端口、健康检查路径、环境变量备份放在哪。少一行,下次故障就会在错误的一层里找。云厂商如果重做了防火墙模板,先看网页端口和校验端口是否还在,不要先怀疑代码。构建失败和健康检查失败要分开读。构建失败时容器还没换上,线上仍是旧版本。健康检查失败时新容器已经接过流量,用户看到的就是坏页。把检查路径改成应用真实会返回成功的地址,不要用只在登录后才存在的页面。数据库口令轮换时,先在面板更新变量,再重启该应用,最后才作废旧口令。顺序反了,应用会用旧口令连不上,日志看起来像网络中断。自动部署连续失败时,先在本地用同一套命令构建一次。本地也失败就是代码问题,本地成功才回到服务器看镜像和端口。给面板单独一个主机名,和应用网站分开,避免证书规则互相覆盖。备份不只要变量,还要记下使用的镜像标签。只写最新标签,回滚时找不到上一版。把能用的标签和日期写在同一行。磁盘空间不够时构建会在一半失败,日志像网络中断。部署前先看磁盘剩余,清掉不用的旧镜像再构建。第一次对外打开网站时,用手机流量访问,不要用服务器自己访问自己。自己访问自己成功,不代表安全组已经放行。手机打不开而服务器本机打开,就是防火墙。证书续期失败时,同样用手机看校验端口是否还能从外面进来。面板登录若开启了额外验证,把恢复码和变量备份放在一起,只留在面板里等于重装后两边都没了。

高频问答

  • 问:安装脚本必须在服务器上跑吗?答:要。在你电脑上跑只会装到电脑。电脑上的线路不自动带进服务器。
  • 问:502 要不要重装 Coolify?答:先看坏的那个应用的日志。面板还能开,就不是面板没装上。
  • 问:证书每天都要签吗?答:不需要。签发失败才查域名和 80 端口。成功后按文档自动续期,以官方文档为准。
  • 问:能和别的网站共用 443 吗?答:可以,但要由这一套代理来分配主机名。另一套程序也占 443,就会冲突。
  • 问:私有镜像怎么登录?答:在服务器或面板的仓库凭据里登录,不要把口令写进公开的构建脚本。
  • 问:刺猬VPN 能装在服务器上代替安全组吗?答:不能。安全组是云厂商的防火墙。线路只解决你这台电脑或你另行配置的访问。

先面板,再证书,再应用

面板用 IP 能开,再签域名,再部署最小应用。顺序反了,502 和证书错误会叠在一起。日志只看当前失败的那一层。

Coolify 自建打不开或应用 502,分别查安全组、证书校验和容器日志。刺猬VPN 采用 HTTPS+AES 加密传输,免费节点永久免费、不限流量、不限速,时长套餐期间不限流量、不限速,用来在你的电脑上打开文档和面板。服务器拉镜像要服务器自己的网络。安装步骤以官方文档为准,实际可用性取决于当前网络环境。

开发者的稳定通道:用刺猬VPN流畅访问 GitHub 与全球开发资源

刺猬VPN提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。