Coolify 自建怎么装:面板端口、证书与部署 502
Coolify 是装在你自己服务器上的部署面板,用来拉代码、建容器、配域名。它不是一家托管云。国内常见的失败是:安装脚本依赖的地址下不下来、面板端口被安全组挡住、Let's Encrypt 校验失败、以及应用容器起来了但反代给出 502 Bad Gateway。每一层的日志都不在同一个地方。
下面按「机器能从外网访问面板,再签证书,最后才部署第一个应用」来做。版本和安装命令以官方文档为准,不要照着过期博客里的端口硬改。
面板、代理和应用容器
502 表示反代找到了上游,但上游没有给正常响应。面板能打开而网站 502,就不要去重装面板。先看这个应用的容器是不是在反复重启。
| 对比项 | Coolify 面板 | 反代与证书 | 你的应用 |
|---|---|---|---|
| 你访问的是什么 | 管理界面 | 域名上的 HTTPS | 业务网站 |
| 常见端口 | 安装后的面板端口,常见包括 8000 | 80 与 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提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。