2025-12-10 12:02:17 +08:00
2025-12-10 12:02:17 +08:00
2025-12-10 12:02:17 +08:00
2025-12-10 12:02:17 +08:00
2025-12-10 12:02:17 +08:00

AWS EC2 Panel (FastAPI + Vue 3)

Minimal multi-tenant EC2 管理面板示例,后端使用 FastAPI/SQLAlchemy前端使用 Vue 3 + Vite + TypeScript + Naive UI + Tailwind。

数据库初始化

  1. 确认 MySQL 8 已安装并创建空库:
    SOURCE db_schema.md;
    
  2. 准备 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&region=ap-northeast-1
  • KeyPair 列表:GET /api/v1/instances/meta/aws/keypairs?credential_id=1&region=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.mdMySQL 表结构(务必保持字段/表名一致)。
Description
aws-开机面板
Readme 35 MiB
Languages
Python 64.2%
Vue 33.8%
TypeScript 1.8%
HTML 0.1%