35 lines
847 B
Go
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"
|
|
}
|