config: sync admin and RTMP port defaults
This commit is contained in:
parent
597b5f265b
commit
c5dc2b7e21
6 changed files with 35 additions and 8 deletions
|
|
@ -22,10 +22,10 @@ TELESRV_ADMIN_UI_PASSWORD=abc123456
|
||||||
TELESRV_ADMIN_SESSION_KEY=change-me-to-a-strong-random-key-at-least-32-chars
|
TELESRV_ADMIN_SESSION_KEY=change-me-to-a-strong-random-key-at-least-32-chars
|
||||||
|
|
||||||
# 主服务 Admin API 默认关闭;Admin UI 写操作需要显式开启该 loopback 监听地址。
|
# 主服务 Admin API 默认关闭;Admin UI 写操作需要显式开启该 loopback 监听地址。
|
||||||
TELESRV_ADMIN_API_ADDR=127.0.0.1:2399
|
TELESRV_ADMIN_API_ADDR=127.0.0.1:2599
|
||||||
|
|
||||||
# Admin UI 监听地址,默认值通常无需修改。
|
# Admin UI 监听地址,默认值通常无需修改;RTMP ingest 保留 2400。
|
||||||
TELESRV_ADMIN_UI_ADDR=127.0.0.1:2400
|
TELESRV_ADMIN_UI_ADDR=127.0.0.1:2600
|
||||||
|
|
||||||
TELESRV_POSTGRES_DSN=postgres://telesrv:telesrv@127.0.0.1:5432/telesrv?sslmode=disable
|
TELESRV_POSTGRES_DSN=postgres://telesrv:telesrv@127.0.0.1:5432/telesrv?sslmode=disable
|
||||||
TELESRV_REDIS_ADDR=127.0.0.1:6399
|
TELESRV_REDIS_ADDR=127.0.0.1:6399
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ import (
|
||||||
"telesrv/internal/config"
|
"telesrv/internal/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const defaultAdminAPIAddr = "127.0.0.1:2599"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
if err := run(); err != nil {
|
if err := run(); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|
@ -81,7 +83,7 @@ func loadConfig() (uiConfig, error) {
|
||||||
|
|
||||||
adminAPIAddr := appCfg.AdminAPIAddr
|
adminAPIAddr := appCfg.AdminAPIAddr
|
||||||
if strings.TrimSpace(adminAPIAddr) == "" {
|
if strings.TrimSpace(adminAPIAddr) == "" {
|
||||||
adminAPIAddr = "127.0.0.1:2399"
|
adminAPIAddr = defaultAdminAPIAddr
|
||||||
}
|
}
|
||||||
|
|
||||||
if appCfg.AdminUIPassword == "" && appCfg.AdminUIToken == "" {
|
if appCfg.AdminUIPassword == "" && appCfg.AdminUIToken == "" {
|
||||||
|
|
@ -109,7 +111,7 @@ func loadConfig() (uiConfig, error) {
|
||||||
func adminAPIURL(addr string) string {
|
func adminAPIURL(addr string) string {
|
||||||
addr = strings.TrimSpace(addr)
|
addr = strings.TrimSpace(addr)
|
||||||
if addr == "" {
|
if addr == "" {
|
||||||
addr = "127.0.0.1:2399"
|
addr = defaultAdminAPIAddr
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(addr, "http://") || strings.HasPrefix(addr, "https://") {
|
if strings.HasPrefix(addr, "http://") || strings.HasPrefix(addr, "https://") {
|
||||||
return strings.TrimRight(addr, "/")
|
return strings.TrimRight(addr, "/")
|
||||||
|
|
|
||||||
|
|
@ -42,3 +42,9 @@ func TestSPAFallbackSmoke(t *testing.T) {
|
||||||
t.Fatalf("spa body missing root: %s", rec.Body.String())
|
t.Fatalf("spa body missing root: %s", rec.Body.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAdminAPIURLDefaultUsesAdminAPIPort(t *testing.T) {
|
||||||
|
if got, want := adminAPIURL(""), "http://127.0.0.1:2599"; got != want {
|
||||||
|
t.Fatalf("adminAPIURL(empty) = %q, want %q", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ export default defineConfig({
|
||||||
server: {
|
server: {
|
||||||
port: 2410,
|
port: 2410,
|
||||||
proxy: {
|
proxy: {
|
||||||
"/api": "http://127.0.0.1:2400"
|
"/api": "http://127.0.0.1:2600"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -300,7 +300,7 @@ func Load() (Config, error) {
|
||||||
AdminAPIToken: envOr("TELESRV_ADMIN_API_TOKEN", ""),
|
AdminAPIToken: envOr("TELESRV_ADMIN_API_TOKEN", ""),
|
||||||
StickerWebAddr: envOr("TELESRV_STICKER_WEB_ADDR", ""),
|
StickerWebAddr: envOr("TELESRV_STICKER_WEB_ADDR", ""),
|
||||||
StickerWebPublicURL: envOr("TELESRV_STICKER_WEB_PUBLIC_URL", "https://telesrv.net"),
|
StickerWebPublicURL: envOr("TELESRV_STICKER_WEB_PUBLIC_URL", "https://telesrv.net"),
|
||||||
AdminUIAddr: envOr("TELESRV_ADMIN_UI_ADDR", "127.0.0.1:2400"),
|
AdminUIAddr: envOr("TELESRV_ADMIN_UI_ADDR", "127.0.0.1:2600"),
|
||||||
AdminUIPassword: envOr("TELESRV_ADMIN_UI_PASSWORD", ""),
|
AdminUIPassword: envOr("TELESRV_ADMIN_UI_PASSWORD", ""),
|
||||||
AdminUIToken: envOr("TELESRV_ADMIN_UI_TOKEN", ""),
|
AdminUIToken: envOr("TELESRV_ADMIN_UI_TOKEN", ""),
|
||||||
AdminSessionKey: envOr("TELESRV_ADMIN_SESSION_KEY", ""),
|
AdminSessionKey: envOr("TELESRV_ADMIN_SESSION_KEY", ""),
|
||||||
|
|
@ -395,7 +395,7 @@ func Load() (Config, error) {
|
||||||
SFUAdvertiseIP: envOr("TELESRV_SFU_ADVERTISE_IP", ""),
|
SFUAdvertiseIP: envOr("TELESRV_SFU_ADVERTISE_IP", ""),
|
||||||
|
|
||||||
LiveStreamEnable: envBoolOr("TELESRV_LIVESTREAM_ENABLE", true),
|
LiveStreamEnable: envBoolOr("TELESRV_LIVESTREAM_ENABLE", true),
|
||||||
LiveStreamRtmpAddr: envOr("TELESRV_LIVESTREAM_RTMP_ADDR", ":2600"),
|
LiveStreamRtmpAddr: envOr("TELESRV_LIVESTREAM_RTMP_ADDR", ":2400"),
|
||||||
LiveStreamRtmpURL: envOr("TELESRV_LIVESTREAM_RTMP_URL", ""),
|
LiveStreamRtmpURL: envOr("TELESRV_LIVESTREAM_RTMP_URL", ""),
|
||||||
LiveStreamFFmpegPath: envOr("TELESRV_LIVESTREAM_FFMPEG_PATH", "ffmpeg"),
|
LiveStreamFFmpegPath: envOr("TELESRV_LIVESTREAM_FFMPEG_PATH", "ffmpeg"),
|
||||||
LiveStreamWorkDir: envOr("TELESRV_LIVESTREAM_WORK_DIR", ""),
|
LiveStreamWorkDir: envOr("TELESRV_LIVESTREAM_WORK_DIR", ""),
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,25 @@ func TestLoadBusinessAIProviderDefaultsToEcho(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestLoadKeepsAdminAndRtmpDefaultPortsSeparate(t *testing.T) {
|
||||||
|
t.Setenv("TELESRV_ADMIN_UI_ADDR", "")
|
||||||
|
t.Setenv("TELESRV_LIVESTREAM_RTMP_ADDR", "")
|
||||||
|
|
||||||
|
cfg, err := Load()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Load: %v", err)
|
||||||
|
}
|
||||||
|
if cfg.AdminUIAddr != "127.0.0.1:2600" {
|
||||||
|
t.Fatalf("AdminUIAddr = %q, want 127.0.0.1:2600", cfg.AdminUIAddr)
|
||||||
|
}
|
||||||
|
if cfg.LiveStreamRtmpAddr != ":2400" {
|
||||||
|
t.Fatalf("LiveStreamRtmpAddr = %q, want :2400", cfg.LiveStreamRtmpAddr)
|
||||||
|
}
|
||||||
|
if cfg.AdminUIAddr == "127.0.0.1"+cfg.LiveStreamRtmpAddr {
|
||||||
|
t.Fatalf("Admin UI and RTMP defaults conflict on %s", cfg.AdminUIAddr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestLoadAIProviders(t *testing.T) {
|
func TestLoadAIProviders(t *testing.T) {
|
||||||
t.Setenv("TELESRV_AI_PROVIDERS", "local,openai,gemini")
|
t.Setenv("TELESRV_AI_PROVIDERS", "local,openai,gemini")
|
||||||
t.Setenv("TELESRV_AI_OPENAI_API_KEY", "openai-key")
|
t.Setenv("TELESRV_AI_OPENAI_API_KEY", "openai-key")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue