package main import ( "log" "os" "strings" "opsxshell/server/internal/server" ) func main() { addr := resolveListenAddr() log.Printf("OpsXShell site listening on http://%s ( / /docs /health )", addr) if err := server.NewRouter().Run(addr); err != nil { log.Fatal(err) } } // resolveListenAddr:默认仅本机 127.0.0.1:8789。 // 显式对外:OPSXSHELL_BIND_PUBLIC=1 或 OPSXSHELL_ADDR=:8789 / 0.0.0.0:8789。 // 兼容旧名 OPSXSHELL_SITE_ADDR。 func resolveListenAddr() string { if v := strings.TrimSpace(os.Getenv("OPSXSHELL_ADDR")); v != "" { return v } if v := strings.TrimSpace(os.Getenv("OPSXSHELL_SITE_ADDR")); v != "" { return v } pub := strings.ToLower(strings.TrimSpace(os.Getenv("OPSXSHELL_BIND_PUBLIC"))) if pub == "1" || pub == "true" || pub == "yes" { return ":8789" } return "127.0.0.1:8789" }