Skip to content

DarkSword404/YanLing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

雁翎 (YanLing) - 新一代智能CTF平台

项目简介

雁翎(YanLing)是一个集成AI技术的现代化CTF(Capture The Flag)竞赛平台,专为网络安全竞赛和练习而设计。本项目在原有基础上进行了全面重构,引入了AI自动出题、PWN和RE题目专业支持等创新功能。

核心特性

🤖 AI集成功能

  • 智能出题系统: 基于机器学习的自动题目生成
  • 难度自适应: 根据参赛者水平动态调整题目难度
  • 智能提示: AI驱动的渐进式提示系统
  • 自动评分: 智能化的答案验证和评分机制

🔧 专业题目支持

  • PWN题目: 完整的二进制漏洞利用题目支持
    • Docker容器化部署
    • xinetd服务管理
    • 自动化环境配置
  • RE题目: 逆向工程题目专业支持
    • 多架构二进制文件支持
    • 反调试检测
    • 动态分析环境

🏆 竞赛管理

  • 多模式比赛: 支持个人赛、团队赛、训练模式
  • 实时排行榜: 动态积分计算和排名展示
  • 比赛监控: 实时监控参赛状态和系统性能
  • 数据分析: 详细的比赛数据统计和分析

🛡️ 安全与稳定

  • 容器化部署: Docker支持,环境隔离
  • 负载均衡: 高并发场景下的性能保障
  • 安全防护: 防作弊机制和安全审计
  • 备份恢复: 完整的数据备份和恢复方案

🐳 容器化架构

  • 比赛容器化: 每个比赛作为独立容器运行,实现完全隔离
  • 题目容器化: Web题目动态容器化部署,支持自动扩缩容
  • 资源管理: 智能资源分配和监控,防止资源滥用
  • 动态端口: 自动端口分配和管理,支持大规模并发
  • 生命周期管理: 容器自动创建、监控、清理和回收

技术架构

后端技术栈

  • 框架: Flask + SQLAlchemy
  • 任务队列: Celery + Redis
  • 数据库: PostgreSQL / MySQL
  • 容器化: Docker + Docker Compose
  • 编排: Kubernetes
  • 监控: Prometheus + Grafana

前端技术栈

  • 框架: React 18+
  • 状态管理: Redux Toolkit
  • UI组件: Ant Design
  • 构建工具: Vite
  • 路由: React Router

快速开始

环境要求

  • Python 3.9+
  • Node.js 18+
  • PostgreSQL 15+
  • Redis 7+
  • Docker (推荐)

Docker部署 (推荐)

  1. 克隆项目

    git clone <repository-url>
    cd YanLing
  2. 配置环境变量

    cp .env.example .env
    # 编辑 .env 文件,配置数据库密码等
  3. 构建和启动

    # 构建镜像
    ./scripts/build.sh
    
    # 启动开发环境
    ./scripts/deploy.sh start dev
    
    # 或启动生产环境
    ./scripts/deploy.sh start prod
  4. 访问应用

Kubernetes部署

  1. 准备K8s环境

    # 确保kubectl已配置
    kubectl cluster-info
  2. 更新配置

    # 编辑密钥配置
    vim kubernetes/secrets.yaml
  3. 部署应用

    cd kubernetes
    ./deploy.sh

本地开发

  1. 后端设置

    cd backend
    python -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    flask db upgrade
    python app.py
  2. 前端设置

    cd frontend
    npm install
    npm run dev

部署脚本说明

构建脚本 (scripts/build.sh)

  • 构建Docker镜像
  • 版本标签管理
  • 镜像清理

部署脚本 (scripts/deploy.sh)

  • 环境管理 (dev/prod)
  • 服务启停控制
  • 日志查看
  • 数据备份

K8s部署脚本 (kubernetes/deploy.sh)

  • 完整K8s部署
  • 服务状态监控
  • 日志管理
  • 配置更新

项目结构

YanLing/
├── backend/                 # 后端代码
├── frontend/               # 前端代码
├── scripts/               # 部署脚本
├── kubernetes/            # K8s配置文件
├── docker-compose.yml     # 开发环境
├── docker-compose.prod.yml # 生产环境
├── Dockerfile.backend     # 后端镜像
├── Dockerfile.frontend    # 前端镜像
└── .env.example          # 环境变量模板
  • AI集成: OpenAI API / 本地LLM

前端技术栈

  • 框架: Vue.js 3 + TypeScript
  • UI组件: Element Plus
  • 状态管理: Pinia
  • 构建工具: Vite

基础设施

  • 反向代理: Nginx
  • 容器编排: Docker + Kubernetes
  • 容器管理: 自研容器编排系统
  • 监控: Prometheus + Grafana
  • 日志: ELK Stack
  • CI/CD: GitHub Actions

版本规划

大版本里程碑

v1.0 - 容器化基础设施 (2024 Q1)

  • 容器编排管理系统
  • 资源管理和监控
  • 基础题目容器化支持
  • Docker镜像构建和管理

v2.0 - 核心CTF功能 (2024 Q2)

  • 用户认证和权限管理
  • 基础题目管理系统
  • 比赛创建和管理
  • 基础排行榜功能

v3.0 - 比赛容器化 (2024 Q3)

  • 比赛实例容器化部署
  • 动态资源分配
  • 高级安全隔离
  • 性能监控和优化

v4.0 - AI集成平台 (2024 Q4)

  • AI自动出题核心功能
  • 智能提示系统
  • 基础学习路径推荐

v5.0 - 专业题目支持 (2025 Q1)

  • PWN题目Docker化部署
  • RE逆向工程支持
  • 高级AI功能集成

小版本迭代

  • 主版本: 8-12周开发周期
  • 次版本: 2-3周功能增量
  • 修订版本: 1周内热修复

快速开始

环境要求

  • Python 3.9+
  • Node.js 16+
  • Docker & Docker Compose
  • Kubernetes (可选,用于生产环境)
  • Redis
  • PostgreSQL/MySQL

容器化快速部署

使用Docker Compose(推荐)

# 克隆项目
git clone https://github.com/DarkSword404/YanLing.git
cd YanLing

# 一键启动所有服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 访问平台
# 前端: http://localhost:3000
# 后端API: http://localhost:5000
# 管理面板: http://localhost:8080

使用Kubernetes部署

# 应用Kubernetes配置
kubectl apply -f k8s/

# 查看部署状态
kubectl get pods -n yanling

# 获取访问地址
kubectl get svc -n yanling

开发环境部署

安装步骤

  1. 克隆项目
git clone https://github.com/DarkSword404/YanLing.git
cd YanLing
  1. 后端环境配置
# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或 venv\Scripts\activate  # Windows

# 安装依赖
pip install -r requirements.txt

# 配置环境变量
cp .env.example .env
# 编辑 .env 文件配置数据库等信息
  1. 前端环境配置
cd frontend
npm install
npm run dev
  1. Docker部署
# 使用Docker Compose一键部署
docker-compose up -d

开发环境启动

# 启动后端服务
python app.py

# 启动前端开发服务器
cd frontend && npm run dev

# 启动Celery任务队列
celery -A app.celery worker --loglevel=info

开发指南

项目结构

YanLing/
├── backend/                 # 后端代码
│   ├── app/                # Flask应用
│   │   ├── container/      # 容器管理模块
│   │   ├── models/         # 数据模型
│   │   ├── api/            # API接口
│   │   ├── services/       # 业务逻辑
│   │   └── utils/          # 工具函数
│   └── requirements.txt    # Python依赖
├── frontend/               # 前端代码
│   ├── src/                # Vue.js源码
│   ├── components/         # 组件
│   └── views/              # 页面
├── docker/                 # Docker配置
│   ├── Dockerfile.*        # 各服务Dockerfile
│   └── templates/          # 容器模板
├── k8s/                    # Kubernetes配置
├── docs/                   # 文档
│   ├── CONTAINER_ARCHITECTURE.md  # 容器化架构文档
│   ├── DEPLOYMENT_GUIDE.md        # 部署指南
│   └── API_DOCUMENTATION.md       # API文档
├── tests/                  # 测试代码
├── scripts/                # 部署脚本
├── docker-compose.yml      # Docker Compose配置
└── docker-compose.prod.yml # 生产环境配置

贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

联系方式

致谢

感谢所有为雁翎项目做出贡献的开发者和社区成员。


雁翎 - 让CTF竞赛更智能,让网络安全学习更高效!

About

YanLing CTF Platform - A comprehensive Capture The Flag platform built with Flask

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors