部署自检与排障
先看这三件事
- 进程活着吗 ——
docker ps/systemctl status gopanel - 端口通吗 ——
curl -i http://127.0.0.1:12395/api/auth/entry - 日志说什么 ——
docker logs -f gopanel/journalctl -u gopanel -f
后端启动日志中有启动自检与逐请求访问日志,关键字段:
listen_port/listen_port_source:最终生效端口与来源- 数据库连接摘要(密码脱敏为
******)与失败原因
一键自检脚本
前后端分离部署时:
bash
# 后端直连 + 前端代理 + 容器状态 + 日志输出
sh scripts/check-deploy.sh
sh scripts/check-deploy.sh --logs前端能打开但接口没数据
bash
# 1. 直连后端(跳过前端代理)
curl -i http://127.0.0.1:12395/api/auth/entry
# 2. 经前端代理(默认 12396)
curl -i http://127.0.0.1:12396/api/auth/entry- 第 1 步通、第 2 步不通 → Nginx 的
/api反代目标不对 - 两步都不通 → 后端没起来或端口 / 数据库配置不对,看后端日志
打不开后台(看到引导页)
说明安全入口已启用。用命令行取回地址:
bash
./GoPanel -se # 容器内:docker exec gopanel /home/gopanel/GoPanel -se忘记管理员密码
bash
./GoPanel -rp # 重置为 16 位随机密码并打印登录一直失败 / 返回 429
触发了登录失败锁定(默认连续 3 次失败锁定 5 分钟)。 到「设置 → IP 黑名单」解锁,或重启进程清空内存中的锁定记录。
宿主机功能(防火墙 / SSH / 端口)看不到宿主机
容器部署需要挂载宿主机根目录并共享 PID 命名空间:
bash
-v /:/host:ro -v /var/log:/var/log:ro --pid=host挂载点可用 GOPANEL_HOST_ROOT 修改(默认 /host)。
容器启动即退出(exec format error)
镜像架构与机器不匹配。dev 标签只有 arm64,amd64 机器请用 latest / <tag>。 amd64 机器确需运行 arm64 镜像时:docker pull --platform linux/arm64 ...(走 QEMU 模拟)。
数据库连不上
- 检查环境变量
GOPANEL_DB_*(或配置文件db.*) - PostgreSQL 需要预先建库(不会自动建库)
- 宿主
127.0.0.1在容器里指向容器自身,连宿主机请用宿主内网 IP 或host.docker.internal
升级检测提示不自动降级
开发版切回稳定通道时,若当前版本高于稳定通道最新版,系统提示不自动降级,需手动下载。
