This commit is contained in:
SengokuCola
2025-12-20 20:13:19 +08:00
9 changed files with 110 additions and 113 deletions

View File

@@ -599,7 +599,10 @@ class TelemetryConfig(ConfigBase):
@dataclass
class WebUIConfig(ConfigBase):
"""WebUI配置类"""
"""WebUI配置类
注意: host 和 port 配置已移至环境变量 WEBUI_HOST 和 WEBUI_PORT
"""
enabled: bool = True
"""是否启用WebUI"""
@@ -607,12 +610,6 @@ class WebUIConfig(ConfigBase):
mode: Literal["development", "production"] = "production"
"""运行模式development(开发) 或 production(生产)"""
host: str = "0.0.0.0"
"""WebUI服务器监听地址"""
port: int = 8001
"""WebUI服务器端口"""
anti_crawler_mode: Literal["false", "strict", "loose", "basic"] = "basic"
"""防爬虫模式false(禁用) / strict(严格) / loose(宽松) / basic(基础-只记录不阻止)"""

View File

@@ -186,7 +186,7 @@ class WebUIServer:
error_msg = f"❌ WebUI 服务器启动失败: 端口 {self.port} 已被占用"
logger.error(error_msg)
logger.error(f"💡 请检查是否有其他程序正在使用端口 {self.port}")
logger.error("💡 可以在配置文件中修改 webui.port 来更改 WebUI 端口")
logger.error("💡 可以在 .env 文件中修改 WEBUI_PORT 来更改 WebUI 端口")
logger.error(f"💡 Windows 用户可以运行: netstat -ano | findstr :{self.port}")
logger.error(f"💡 Linux/Mac 用户可以运行: lsof -i :{self.port}")
raise OSError(f"端口 {self.port} 已被占用,无法启动 WebUI 服务器")
@@ -224,7 +224,7 @@ class WebUIServer:
if "address already in use" in str(e).lower() or e.errno in (98, 10048): # 98: Linux, 10048: Windows
logger.error(f"❌ WebUI 服务器启动失败: 端口 {self.port} 已被占用")
logger.error(f"💡 请检查是否有其他程序正在使用端口 {self.port}")
logger.error("💡 可以在配置文件中修改 webui.port 来更改 WebUI 端口")
logger.error("💡 可以在 .env 文件中修改 WEBUI_PORT 来更改 WebUI 端口")
else:
logger.error(f"❌ WebUI 服务器启动失败 (网络错误): {e}")
raise
@@ -279,9 +279,9 @@ def get_webui_server() -> WebUIServer:
"""获取全局 WebUI 服务器实例"""
global _webui_server
if _webui_server is None:
# 从配置读取
from src.config.config import global_config
host = global_config.webui.host
port = global_config.webui.port
# 从环境变量读取
import os
host = os.getenv("WEBUI_HOST", "127.0.0.1")
port = int(os.getenv("WEBUI_PORT", "8001"))
_webui_server = WebUIServer(host=host, port=port)
return _webui_server