feat: DevTools调试工具 + 前端样式修复 + 管理员登录系统

DevTools (新增):
- 进程管理器: 启动/停止/重启/编译 + 端口自动释放
- 服务接管 (tryAdopt): 检测已运行服务,健康检查通过则直接接管
- 一键启动 (startAllSequential): 按 ai-core→gateway→frontend 顺序启动
- 日志布局切换: 标签页模式 ↔ 三栏并列模式
- 性能监控: CPU/内存采样 + SVG 折线图
- Web UI + WebSocket 实时推送

前端修复:
- tailwind.config.ts: 修复空配置导致 CSS 不加载 (增加 content/colors/fontFamily)
- postcss.config.js: 新建缺失的 PostCSS 配置
- App.tsx: 移除注册功能,仅保留管理员登录 (admin / cyrene-dev-admin)

后端新增:
- config.go: AdminUsername/AdminPassword/RegistrationEnabled 环境变量
- auth_handler.go: 管理员登录 + 注册邮箱验证码 + 注册开关控制
- 管理员凭据: admin / cyrene-dev-admin (默认)

其他:
- .gitignore: 新增 devtools/node_modules/ devtools/logs/ devtools/package-lock.json
- devtools.sh: DevTools 一键启动脚本
This commit is contained in:
2026-05-16 10:49:43 +08:00
parent 86b70b1613
commit cd60b01cf3
32 changed files with 4569 additions and 2845 deletions
+66
View File
@@ -0,0 +1,66 @@
#!/bin/bash
# ========================================
# Cyrene DevTools 启动脚本
# 自动处理端口冲突、依赖安装和服务管理
# ========================================
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
DEVTOOLS_DIR="$SCRIPT_DIR/devtools"
PORT="${DEVTOOLS_PORT:-9090}"
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${CYAN} 🛠️ Cyrene DevTools${NC}"
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
# 切换到 devtools 目录
cd "$DEVTOOLS_DIR"
# 确保 Node.js 可用
if ! command -v node &> /dev/null; then
if [ -x /usr/local/node/bin/node ]; then
export PATH="/usr/local/node/bin:$PATH"
else
echo -e "${RED}❌ 未找到 Node.js,请先安装 Node.js${NC}"
exit 1
fi
fi
echo -e "${YELLOW}Node.js:${NC} $(node --version)"
echo -e "${YELLOW}npm:${NC} $(npm --version)"
# 检查并释放端口
if ss -tlnp 2>/dev/null | grep -q ":$PORT "; then
echo -e "${YELLOW}⚠ 端口 $PORT 已被占用,正在释放...${NC}"
fuser -k "$PORT/tcp" 2>/dev/null || true
sleep 1
echo -e "${GREEN}✅ 端口 $PORT 已释放${NC}"
fi
# 安装依赖 (如有需要)
if [ ! -d "node_modules" ] || [ ! -f "node_modules/.package-lock.json" ]; then
echo -e "${YELLOW}📦 安装依赖...${NC}"
npm install --silent
fi
# 确保日志目录存在
mkdir -p logs
echo ""
echo -e "${GREEN}🚀 启动 DevTools 服务器 (端口: $PORT)...${NC}"
echo -e "${CYAN} Web 控制台: http://localhost:$PORT${NC}"
echo -e "${CYAN} API: http://localhost:$PORT/api/health${NC}"
echo -e "${CYAN} WebSocket: ws://localhost:$PORT/ws${NC}"
echo ""
echo -e "${YELLOW} 按 Ctrl+C 退出 (将自动停止所有托管服务)${NC}"
echo ""
# 启动 DevTools
exec node src/index.js