feat: 初始化考培练系统项目

- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
This commit is contained in:
111
2026-01-24 19:33:28 +08:00
commit 998211c483
1197 changed files with 228429 additions and 0 deletions

View File

@@ -0,0 +1,115 @@
# 考培练系统 SaaS 超级管理后台 Docker Compose 配置
#
# 启动命令:
# cd /root/aiedu && docker compose -f docker-compose.admin.yml up -d
#
# 重新构建后端:
# docker compose -f docker-compose.admin.yml build --no-cache kaopeilian-admin-backend
#
# 服务说明:
# - kaopeilian-admin-frontend: 管理后台前端 (端口 3030)
# - kaopeilian-admin-backend: 管理后台后端 (端口 8030)
#
# 域名admin.kpl.ireborn.com.cn
#
# 注意:敏感配置从 .env.admin 文件读取
name: kaopeilian-admin
services:
# ============================================
# 管理后台前端
# ============================================
kaopeilian-admin-frontend:
build:
context: ./kaopeilian-admin-frontend
dockerfile: Dockerfile
image: kaopeilian-admin-frontend:1.0.0
container_name: kaopeilian-admin-frontend
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
ports:
- "127.0.0.1:3030:80" # 仅本地访问,通过 Nginx 反向代理
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
- kaopeilian-network
depends_on:
kaopeilian-admin-backend:
condition: service_started
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:80/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
deploy:
resources:
limits:
cpus: '0.5'
memory: 256M
reservations:
cpus: '0.1'
memory: 64M
# ============================================
# 管理后台后端(开发环境 - 热重载)
# ============================================
kaopeilian-admin-backend:
build:
context: ./kaopeilian-backend
dockerfile: Dockerfile.admin
image: kaopeilian-admin-backend:1.0.0
container_name: kaopeilian-admin-backend
restart: unless-stopped
env_file:
- .env.admin
environment:
- TZ=Asia/Shanghai
- PYTHONPATH=/app
ports:
- "127.0.0.1:8030:8000" # 仅本地访问,通过 Nginx 反向代理
volumes:
# 代码热重载 - 挂载整个 app 目录
- ./kaopeilian-backend/app:/app/app:rw
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
# 开发模式命令 - 启用热重载
command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload", "--reload-dir", "/app/app"]
networks:
- kaopeilian-network
- prod-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
deploy:
resources:
limits:
cpus: '1'
memory: 1G
reservations:
cpus: '0.25'
memory: 256M
networks:
kaopeilian-network:
external: true
name: kaopeilian-network
prod-network:
external: true
name: prod-network