添加独立的 WebUI 服务器支持,重构相关配置和启动逻辑

This commit is contained in:
墨梓柒
2025-11-20 19:01:10 +08:00
parent 5d9bf243d2
commit 4284e0f860
6 changed files with 185 additions and 147 deletions

View File

@@ -36,25 +36,13 @@ class MainSystem:
# 使用消息API替代直接的FastAPI实例
self.app: MessageServer = get_global_api()
self.server: Server = get_global_server()
self.webui_server = None # 独立的 WebUI 服务器
# 注册 WebUI API 路由
self._register_webui_routes()
# 设置独立的 WebUI 服务器
self._setup_webui_server()
# 设置 WebUI开发/生产模式)
self._setup_webui()
def _register_webui_routes(self):
"""注册 WebUI API 路由"""
try:
from src.webui.routes import router as webui_router
self.server.register_router(webui_router)
logger.info("WebUI API 路由已注册")
except Exception as e:
logger.warning(f"注册 WebUI API 路由失败: {e}")
def _setup_webui(self):
"""设置 WebUI根据环境变量决定模式"""
def _setup_webui_server(self):
"""设置独立的 WebUI 服务器"""
import os
webui_enabled = os.getenv("WEBUI_ENABLED", "false").lower() == "true"
@@ -65,11 +53,22 @@ class MainSystem:
webui_mode = os.getenv("WEBUI_MODE", "production").lower()
try:
from src.webui.manager import setup_webui
from src.webui.webui_server import get_webui_server
setup_webui(mode=webui_mode)
self.webui_server = get_webui_server()
if webui_mode == "development":
logger.info("📝 WebUI 开发模式已启用")
logger.info("🌐 后端 API 将运行在 http://0.0.0.0:8001")
logger.info("💡 请手动启动前端开发服务器: cd MaiBot-Dashboard && bun dev")
logger.info("💡 前端将运行在 http://localhost:7999")
else:
logger.info("✅ WebUI 生产模式已启用")
logger.info(f"🌐 WebUI 将运行在 http://0.0.0.0:8001")
logger.info("💡 请确保已构建前端: cd MaiBot-Dashboard && bun run build")
except Exception as e:
logger.error(f"设置 WebUI 失败: {e}")
logger.error(f"❌ 初始化 WebUI 服务器失败: {e}")
async def initialize(self):
"""初始化系统组件"""
@@ -164,6 +163,10 @@ class MainSystem:
self.server.run(),
]
# 如果 WebUI 服务器已初始化,添加到任务列表
if self.webui_server:
tasks.append(self.webui_server.start())
await asyncio.gather(*tasks)
# async def forget_memory_task(self):