🎉 Phase 1 完整交付: ## Infrastructure Core - ✅ 配置管理(ConfigLoader) - ✅ 模块加载器(ModuleLoader) - ✅ 依赖注入(DIContainer) - ✅ 数据库连接池(PostgreSQL + asyncpg) - ✅ Redis 缓存(连接池 + JSON 支持) ## Auth Module - Backend - ✅ 用户数据模型(User, Session, OAuthAccount) - ✅ JWT 认证(双令牌机制) - ✅ 密码安全(bcrypt) - ✅ API 路由(8个端点) - ✅ 数据库迁移(auth_schema) - ✅ 会话管理(数据库 + Redis) ## Auth Module - Frontend - ✅ HTTP 客户端(自动刷新令牌) - ✅ Auth Store(Pinia) - ✅ 登录/注册页面 - ✅ Dashboard 页面 - ✅ 路由守卫 ## Development Tools - ✅ 快速启动脚本(quick_start.sh) - ✅ 停止服务脚本(stop_services.sh) - ✅ 数据库迁移脚本 - ✅ Docker Compose 配置 ## Documentation - ✅ CLAUDE.md(开发蓝图,46KB) - ✅ ARCHITECTURE.md(架构设计,32KB) - ✅ PROGRESS.md(进度报告) - ✅ README.md(项目说明) ## Statistics - 代码总量: ~7,500 行 - 后端: ~2,500 行(Python) - 前端: ~1,200 行(TypeScript + Vue) - 配置: ~800 行 - 文档: ~3,000 行 ## Ready to Use - 运行 ./quick_start.sh 即可启动 - 默认管理员: admin / Admin@123456 - 前端: http://localhost:3000 - 后端: http://localhost:8080/docs 下一步: Phase 2 - Data Center 实现 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
109 lines
2.9 KiB
Bash
Executable File
109 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
###############################################################################
|
||
# AI Project Platform - 快速启动脚本
|
||
# 用途:一键启动开发环境(数据库 + Redis + 后端 + 前端)
|
||
###############################################################################
|
||
|
||
set -e
|
||
|
||
# 颜色定义
|
||
GREEN='\033[0;32m'
|
||
BLUE='\033[0;34m'
|
||
YELLOW='\033[1;33m'
|
||
RED='\033[0;31m'
|
||
NC='\033[0m' # No Color
|
||
|
||
echo -e "${BLUE}======================================"
|
||
echo " AI Project Platform - 快速启动"
|
||
echo "======================================${NC}"
|
||
echo ""
|
||
|
||
# 检查 Docker 是否运行
|
||
if ! docker info > /dev/null 2>&1; then
|
||
echo -e "${RED}错误: Docker 未运行,请先启动 Docker${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
# 1. 启动基础设施(PostgreSQL + Redis)
|
||
echo -e "${BLUE}📦 启动基础设施(PostgreSQL + Redis)...${NC}"
|
||
docker-compose up -d postgres redis
|
||
|
||
# 等待数据库就绪
|
||
echo -e "${YELLOW}⏳ 等待数据库就绪...${NC}"
|
||
sleep 5
|
||
|
||
# 2. 运行数据库迁移
|
||
echo -e "${BLUE}🗄️ 运行数据库迁移...${NC}"
|
||
cd backend
|
||
python3 ../scripts/db/run_migration.py || echo -e "${YELLOW}迁移可能已执行过${NC}"
|
||
cd ..
|
||
|
||
# 3. 安装后端依赖
|
||
if [ ! -d "backend/venv" ]; then
|
||
echo -e "${BLUE}📦 创建 Python 虚拟环境...${NC}"
|
||
cd backend
|
||
python3 -m venv venv
|
||
source venv/bin/activate
|
||
pip install -r requirements.txt
|
||
cd ..
|
||
else
|
||
echo -e "${GREEN}✓ Python 虚拟环境已存在${NC}"
|
||
fi
|
||
|
||
# 4. 安装前端依赖
|
||
if [ ! -d "frontend/node_modules" ]; then
|
||
echo -e "${BLUE}📦 安装前端依赖...${NC}"
|
||
cd frontend
|
||
npm install
|
||
cd ..
|
||
else
|
||
echo -e "${GREEN}✓ 前端依赖已安装${NC}"
|
||
fi
|
||
|
||
# 5. 启动后端
|
||
echo -e "${BLUE}🚀 启动后端服务...${NC}"
|
||
cd backend
|
||
source venv/bin/activate
|
||
nohup uvicorn main:app --host 0.0.0.0 --port 8080 --reload > ../logs/backend.log 2>&1 &
|
||
BACKEND_PID=$!
|
||
echo $BACKEND_PID > ../logs/backend.pid
|
||
cd ..
|
||
|
||
echo -e "${GREEN}✓ 后端启动成功 (PID: $BACKEND_PID)${NC}"
|
||
|
||
# 等待后端启动
|
||
sleep 3
|
||
|
||
# 6. 启动前端
|
||
echo -e "${BLUE}🚀 启动前端服务...${NC}"
|
||
cd frontend
|
||
nohup npm run dev > ../logs/frontend.log 2>&1 &
|
||
FRONTEND_PID=$!
|
||
echo $FRONTEND_PID > ../logs/frontend.pid
|
||
cd ..
|
||
|
||
echo -e "${GREEN}✓ 前端启动成功 (PID: $FRONTEND_PID)${NC}"
|
||
|
||
echo ""
|
||
echo -e "${GREEN}======================================"
|
||
echo " ✓ 所有服务启动成功!"
|
||
echo "======================================${NC}"
|
||
echo ""
|
||
echo -e "${BLUE}访问地址:${NC}"
|
||
echo " • 前端:http://localhost:3000"
|
||
echo " • 后端:http://localhost:8080"
|
||
echo " • API 文档:http://localhost:8080/docs"
|
||
echo ""
|
||
echo -e "${BLUE}默认管理员账号:${NC}"
|
||
echo " • 用户名:admin"
|
||
echo " • 密码:Admin@123456"
|
||
echo ""
|
||
echo -e "${YELLOW}日志文件:${NC}"
|
||
echo " • 后端:logs/backend.log"
|
||
echo " • 前端:logs/frontend.log"
|
||
echo ""
|
||
echo -e "${YELLOW}停止服务:${NC}"
|
||
echo " ./stop_services.sh"
|
||
echo ""
|