Files
opsxapi/server/cmd/opsxapi/main.go
T
logan 68a933e6fb 端口规划落地:Mock 默认挪 8798,8788 让给 OpsxDB;/home 落地页别名
- 本机端口约定: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 已就位)
2026-10-16 03:11:50 +08:00

43 lines
1.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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"
}