1.4 KiB
1.4 KiB
AWS EC2 Panel (FastAPI + Vue 3)
Minimal multi-tenant EC2 管理面板示例,后端使用 FastAPI/SQLAlchemy,前端使用 Vue 3 + Vite + TypeScript + Naive UI + Tailwind。
数据库初始化
- 确认 MySQL 8 已安装并创建空库:
SOURCE db_schema.md; - 准备
backend/.env(复制backend/.env.example并修改 DB_URL/JWT_SECRET 等)。
启动后端
cd backend
python -m venv .venv && source .venv/bin/activate
pip install -U pip
pip install fastapi uvicorn[standard] sqlalchemy[asyncio] asyncmy pydantic pydantic-settings python-jose passlib[bcrypt] boto3
uvicorn backend.app:app --reload --host 0.0.0.0 --port 8000
健康检查:GET http://localhost:8000/healthz
元数据接口示例:
- 区域列表:
GET /api/v1/instances/meta/aws/regions - VPC/子网/安全组:
GET /api/v1/instances/meta/aws/network?credential_id=1®ion=ap-northeast-1 - KeyPair 列表:
GET /api/v1/instances/meta/aws/keypairs?credential_id=1®ion=ap-northeast-1
启动前端
cd frontend
npm install
npm run dev
默认前端开发服务器使用 /api 代理到后端(在 vite.config.ts 可调整)。
目录速览
backend/:FastAPI 应用、路由、SQLAlchemy 模型、AWS 封装。frontend/:Vue 3 + Vite + Naive UI 前端。db_schema.md:MySQL 表结构(务必保持字段/表名一致)。