命令行参数
当前入口只识别下面这几个参数,值必须用 = 传入(如 -c=config/config.toml)。
| 参数 | 说明 | 等价环境变量 |
|---|---|---|
-c= / -config= | 配置文件路径 | GOPANEL_CONFIG |
-version | 输出版本号后退出;首行为纯版本号,其后附加构建信息(提交 / 构建时间 / 发行包,未注入时省略) | GOPANEL_VERSION=1/true/yes/on |
-se / -entry[=URL] | 打印当前安全访问入口 URL(未启用安全入口时打印普通登录地址) | GOPANEL_ENTRY=1 |
-sr / -reset-entry[=URL] | 重置安全入口随机路径并打印新入口 URL(旧地址立即失效) | GOPANEL_ENTRY_RESET=1 |
-rp / -reset-password[=<值>] | 重置后台登录密码(见下) | GOPANEL_RESET_PASSWORD |
-upgrade[=check|cancel] | 检查更新并下载升级包(缺省动作),重启后自动替换生效(见下) | GOPANEL_UPGRADE |
-install | 注册 systemd 服务 gopanel.service 并启动(开机自启),基于 glsm v2;仅 Linux root + systemd | — |
-uninstall | 卸载 systemd 服务(停止 + 禁用 + 删除 unit,不删程序与数据) | — |
-service <action> | 服务操作:status / start / stop / restart(-service 取下一个参数) | — |
-h / --help | 显示帮助 | — |
空格分隔写法(如
-c config/config.toml)除-service <action>外一律忽略并打一条 warn 日志,不会因为flag provided but not defined: -c直接退出。
-rp 重置后台密码
./GoPanel -rp # 创始人为 16 位随机密码并打印
./GoPanel -rp=新密码 # 创始人为指定密码
./GoPanel -rp=用户名:新密码 # 重置指定用户(按第一个冒号拆分,密码可含冒号)- 密码强度与安装向导同一套规则(8-64 位,至少含字母 / 数字 / 符号两类)
- 只改密码即退出:不启动服务、不初始化日志、不执行数据库迁移
- 未安装的库不会被顺手建表;库中无用户时提示先完成安装向导
- 目标账号被禁用时给出提示
-upgrade 命令行检查更新 / 升级
网页端「检查更新」的命令行等价物(容器 / 脚本 / 无后台权限场景)。不读配置、不连数据库。
./GoPanel -upgrade # 检查 + 下载升级包,重启面板后自动替换生效
./GoPanel -upgrade=check # 只检查、不下载(=off / =dry-run 同义)
./GoPanel -upgrade=cancel # 删除待生效的升级包,放弃本次升级
gopanel -service restart # 升级包就绪后重启即生效动作取值:
| 取值 | 动作 |
|---|---|
留空 / on / 1 / yes / install | 检查更新,发现新版本即下载升级包到待替换位置 |
check / off / 0 / no / dry-run | 只检查并打印结果,不下载 |
cancel / abort | 删除 GoPanel.update(待生效升级包),回到当前版本 |
输出为固定顺序的 键=值 明细(当前版本 / 最新版本 / 有新版本 / 更新通道 / 下载地址 / 提示 等),便于脚本 grep / eval;退出码区分四种结局:
| 退出码 | 含义 |
|---|---|
0 | 已是最新版本(或已取消升级) |
10 | 升级包已下载就绪,重启面板后生效 |
20 | 发现新版本但未下载(只检查 / 版本被忽略 / 无可用发布附件) |
1 | 检查失败或下载失败(原因见 stderr) |
说明:
- 检查口径与网页端完全一致(更新通道
stable/dev、忽略版本、镜像 / 代理配置同一套环境变量) - 下载的升级包落在程序同目录的
GoPanel.update,由下次启动的ApplyPendingAndRestart完成替换(旧程序保留为GoPanel.bak),因此一次重启即生效 - 当前部署方式不支持在线升级(非 Linux 二进制形态)时只提示,不下载
- 检查失败不影响当前版本运行,退出码
1供脚本判定
-se / -sr 与地址前缀
-se / -sr 支持可选 URL 值作为站点地址前缀:
./GoPanel -se=https://panel.example.com也可用 GOPANEL_BASE_URL 提供;未提供时按「主机名 + 管理后台端口」推断。 域名 / 反代部署建议显式传入,或直接使用输出里的「相对路径」拼接。
这两个命令只读写数据库并打印地址,不启动服务,可在任何环境下直接执行。
系统服务管理(-install / -uninstall / -service)
基于 glsm v2 实现 systemd 服务注册:
sudo ./GoPanel -install # 注册 gopanel.service(写 unit + daemon-reload + enable + start)
sudo ./GoPanel -service status # 查看服务状态(systemctl status 全文)
sudo ./GoPanel -service restart # 重启服务
sudo ./GoPanel -service stop # 停止服务
sudo ./GoPanel -uninstall # 卸载服务(停止 + 禁用 + 删除 unit)- ExecStart 指向当前二进制(符号链接解析为真实路径),WorkingDirectory=二进制所在目录 (配置与 sqlite 数据均相对该目录),LimitNOFILE=65535,开机自启
- 仅 Linux root + systemd 环境可用;其他环境明确报错退出(不会静默降级为前台运行)
- 服务已存在时
-install报错(可先-uninstall再装);服务未安装时-service明确提示
安装脚本参数(不在主程序中)
以下参数不是主程序参数,由安装脚本 scripts/install.sh 解析处理: --check / --purge / --no-start / --dry-run / -d <dir> / -v <tag> / --source <cnb|gitee> —— 脚本负责下载、校验、解压、生成配置,并把 -install / -uninstall / -service 转发给主程序(见 一键脚本安装); 主程序收到这些脚本专属参数会打印 warn(忽略无法识别的启动参数)并照常启动。
另有两个主程序不存在的参数,传入会被忽略并打印 warn 日志:
-sudo-pass/-service-user—— 历史 webcore 参数,已移除-ul(解锁 IP 黑名单)—— 重启进程即可清空内存中的锁定记录-port/-host/-http-port/-https-port/-root/-http2/-quic/-grace—— 本程序是单一监听端口的管理后台,端口由环境变量 / 配置文件提供
取值优先级
环境变量 > 命令行参数 > 配置文件 > 内置默认值配置由 viper 统一解析。
