fix(node): 默认自动加载本目录 node.ini——裸跑 ./zonat-node 不再缺密钥报错

改了什么: -config 默认值改为 node.ini; 未显式指定且文件不存在时按无配置启动(纯 flag/老部署兼容); 缺密钥报错文案补 node.ini 途径
为什么: 部署目录裸跑二进制(不经 start.sh)时不会主动带 -config, 直接报缺少 jwt-secret; 自动加载同目录配置后包内开箱即跑
This commit is contained in:
2026-09-21 19:14:27 +08:00
parent 4dad7fbbbe
commit c174a2ed3a
+9 -2
View File
@@ -20,7 +20,7 @@ import (
func main() {
var (
config = flag.String("config", "", "配置文件路径(node.ini); 显式 flag 可覆盖配置项")
config = flag.String("config", "node.ini", "配置文件路径; 默认自动加载本目录 node.ini, 文件不存在且未显式 -config 时按无配置启动")
addr = flag.String("addr", ":5212", "桥接监听地址")
tunnelBind = flag.String("tunnel-bind", "0.0.0.0", "隧道监听绑定地址")
jwtSecret = flag.String("jwt-secret", "", "agent 登录 JWT 校验密钥(HS256)")
@@ -51,6 +51,13 @@ func main() {
explicit := map[string]bool{}
flag.Visit(func(f *flag.Flag) { explicit[f.Name] = true })
// 自动加载: -config 未显式指定且默认路径不存在 → 按无配置启动(兼容纯 flag/老部署)
if !explicit["config"] {
if _, err := os.Stat(*config); err != nil {
*config = ""
}
}
var (
finalAddr = *addr
finalTunnelBind = *tunnelBind
@@ -107,7 +114,7 @@ func main() {
}
if finalSecret == "" {
slog.Error("缺少 jwt-secret(agent 登录 JWT 校验密钥; -jwt-secret 或配置文件 server.jwt-secret)")
slog.Error("缺少 jwt-secret(agent 登录 JWT 校验密钥; -jwt-secret、-config 指定文件或本目录 node.ini 的 server.jwt-secret)")
os.Exit(1)
}