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

View File

@@ -1,5 +1,5 @@
[inner]
version = "7.2.4"
version = "7.2.5"
#----以下是给开发人员阅读的,如果你只是部署了麦麦,不需要阅读----
# 如果你想要修改配置文件请递增version的值
@@ -267,13 +267,9 @@ api_server_allowed_api_keys = [] # 新版API Server允许的API Key列表
enable = true
[webui] # WebUI 独立服务器配置
# 注意: WebUI 的监听地址(host)和端口(port)已移至 .env 文件中的 WEBUI_HOST 和 WEBUI_PORT
enabled = true # 是否启用WebUI
mode = "production" # 模式: development(开发) 或 production(生产)
host = "127.0.0.1" # WebUI 服务器监听地址
# IPv4: 0.0.0.0 (所有IPv4接口) / 127.0.0.1 (仅本地)
# IPv6: :: (所有接口支持IPv4+IPv6双栈) / ::1 (仅本地IPv6)
# 推荐使用 :: 实现双栈支持
port = 8001 # WebUI 服务器端口
# 防爬虫配置
anti_crawler_mode = "basic" # 防爬虫模式: false(禁用) / strict(严格) / loose(宽松) / basic(基础-只记录不阻止)

View File

@@ -1,3 +1,7 @@
# 麦麦主程序配置
HOST=127.0.0.1
PORT=8000
PORT=8000
# WebUI 服务器配置
WEBUI_HOST=127.0.0.1
WEBUI_PORT=8001

File diff suppressed because one or more lines are too long

1
webui/dist/assets/index-Din59EIC.css vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

90
webui/dist/assets/index-ppcjeAmG.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -11,7 +11,7 @@
<link rel="icon" type="image/x-icon" href="/maimai.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MaiBot Dashboard</title>
<script type="module" crossorigin src="/assets/index-ClRLbZoU.js"></script>
<script type="module" crossorigin src="/assets/index-ppcjeAmG.js"></script>
<link rel="modulepreload" crossorigin href="/assets/react-vendor-BmxF9s7Q.js">
<link rel="modulepreload" crossorigin href="/assets/router-9vIXuQkh.js">
<link rel="modulepreload" crossorigin href="/assets/utils-BqoaXoQ1.js">
@@ -25,7 +25,7 @@
<link rel="modulepreload" crossorigin href="/assets/reactflow-DtsZHOR4.js">
<link rel="modulepreload" crossorigin href="/assets/uppy-x-2TBvZ1.js">
<link rel="modulepreload" crossorigin href="/assets/markdown-CKA5gBQ9.js">
<link rel="stylesheet" crossorigin href="/assets/index-Vd1XbDiA.css">
<link rel="stylesheet" crossorigin href="/assets/index-Din59EIC.css">
</head>
<body>
<div id="root" class="notranslate"></div>