Files

35 lines
847 B
Go

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"
}