- 本机端口约定:8787=OpsxAPI / 8788=OpsxDB / 8789=OpsXShell;mock 独立监听默认改 0.0.0.0:8798(run.sh、main.go、api.go 三处同步,README 4 处引用更新) - mountHomepage 增加 /home、/index.html → / 别名:静态站导航里的 /home 链接不再 404 - 三站资产扫描零断链(含 opsxshell 下载 dmg 已就位)
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package main
|
||
|
||
import (
|
||
"log"
|
||
"os"
|
||
"strings"
|
||
|
||
"opsxapi/server/internal/server"
|
||
)
|
||
|
||
func main() {
|
||
addr := resolveListenAddr()
|
||
mockAddr := strings.TrimSpace(os.Getenv("OPSXAPI_MOCK_ADDR"))
|
||
if mockAddr == "" {
|
||
// 8788 让给 OpsxDB 主服务(本机端口约定:8787=OpsxAPI / 8788=OpsxDB / 8789=OpsXShell)
|
||
mockAddr = "0.0.0.0:8798"
|
||
}
|
||
mockRouter := server.NewMockRouter()
|
||
go func() {
|
||
log.Printf("OpsxAPI private-network Mock listening on %s", mockAddr)
|
||
if err := mockRouter.Run(mockAddr); err != nil {
|
||
log.Fatalf("Mock listener failed: %v", err)
|
||
}
|
||
}()
|
||
log.Printf("OpsxAPI server listening on %s", addr)
|
||
if err := server.NewRouter().Run(addr); err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
}
|
||
|
||
// resolveListenAddr:默认仅本机 127.0.0.1:8787(Mock 本机优先)。
|
||
// 显式对外:OPSXAPI_BIND_PUBLIC=1 或 OPSXAPI_ADDR=0.0.0.0:8787 / :8787。
|
||
func resolveListenAddr() string {
|
||
if v := strings.TrimSpace(os.Getenv("OPSXAPI_ADDR")); v != "" {
|
||
return v
|
||
}
|
||
pub := strings.ToLower(strings.TrimSpace(os.Getenv("OPSXAPI_BIND_PUBLIC")))
|
||
if pub == "1" || pub == "true" || pub == "yes" {
|
||
return ":8787"
|
||
}
|
||
return "127.0.0.1:8787"
|
||
}
|