Skip to content

命令行参数 ​

当前入口只识别下面这几个参数,值必须用 = 传入(如 -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 重置后台密码 ​

bash
./GoPanel -rp                    # 创始人为 16 位随机密码并打印
./GoPanel -rp=新密码              # 创始人为指定密码
./GoPanel -rp=用户名:新密码        # 重置指定用户(按第一个冒号拆分,密码可含冒号)
  • 密码强度与安装向导同一套规则(8-64 位,至少含字母 / 数字 / 符号两类)
  • 只改密码即退出:不启动服务、不初始化日志、不执行数据库迁移
  • 未安装的库不会被顺手建表;库中无用户时提示先完成安装向导
  • 目标账号被禁用时给出提示

-upgrade 命令行检查更新 / 升级 ​

网页端「检查更新」的命令行等价物(容器 / 脚本 / 无后台权限场景)。不读配置、不连数据库。

bash
./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 值作为站点地址前缀:

bash
./GoPanel -se=https://panel.example.com

也可用 GOPANEL_BASE_URL 提供;未提供时按「主机名 + 管理后台端口」推断。 域名 / 反代部署建议显式传入,或直接使用输出里的「相对路径」拼接。

这两个命令只读写数据库并打印地址,不启动服务,可在任何环境下直接执行。

系统服务管理(-install / -uninstall / -service) ​

基于 glsm v2 实现 systemd 服务注册:

bash
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 —— 本程序是单一监听端口的管理后台,端口由环境变量 / 配置文件提供

取值优先级 ​

text
环境变量 > 命令行参数 > 配置文件 > 内置默认值

配置由 viper 统一解析。

相关 ​

基于 AGPL-3.0 协议发布