雁翎(YanLing)是一个集成AI技术的现代化CTF(Capture The Flag)竞赛平台,专为网络安全竞赛和练习而设计。本项目在原有基础上进行了全面重构,引入了AI自动出题、PWN和RE题目专业支持等创新功能。
- 智能出题系统: 基于机器学习的自动题目生成
- 难度自适应: 根据参赛者水平动态调整题目难度
- 智能提示: 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 (推荐)
-
克隆项目
git clone <repository-url> cd YanLing
-
配置环境变量
cp .env.example .env # 编辑 .env 文件,配置数据库密码等 -
构建和启动
# 构建镜像 ./scripts/build.sh # 启动开发环境 ./scripts/deploy.sh start dev # 或启动生产环境 ./scripts/deploy.sh start prod
-
访问应用
- 前端: http://localhost:3000
- 后端API: http://localhost:5000
- 监控面板: http://localhost:3001 (生产环境)
-
准备K8s环境
# 确保kubectl已配置 kubectl cluster-info -
更新配置
# 编辑密钥配置 vim kubernetes/secrets.yaml -
部署应用
cd kubernetes ./deploy.sh
-
后端设置
cd backend python -m venv venv source venv/bin/activate pip install -r requirements.txt flask db upgrade python app.py
-
前端设置
cd frontend npm install npm run dev
- 构建Docker镜像
- 版本标签管理
- 镜像清理
- 环境管理 (dev/prod)
- 服务启停控制
- 日志查看
- 数据备份
- 完整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
- 容器编排管理系统
- 资源管理和监控
- 基础题目容器化支持
- Docker镜像构建和管理
- 用户认证和权限管理
- 基础题目管理系统
- 比赛创建和管理
- 基础排行榜功能
- 比赛实例容器化部署
- 动态资源分配
- 高级安全隔离
- 性能监控和优化
- AI自动出题核心功能
- 智能提示系统
- 基础学习路径推荐
- PWN题目Docker化部署
- RE逆向工程支持
- 高级AI功能集成
- 主版本: 8-12周开发周期
- 次版本: 2-3周功能增量
- 修订版本: 1周内热修复
- Python 3.9+
- Node.js 16+
- Docker & Docker Compose
- Kubernetes (可选,用于生产环境)
- Redis
- PostgreSQL/MySQL
# 克隆项目
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配置
kubectl apply -f k8s/
# 查看部署状态
kubectl get pods -n yanling
# 获取访问地址
kubectl get svc -n yanling- 克隆项目
git clone https://github.com/DarkSword404/YanLing.git
cd YanLing- 后端环境配置
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或 venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件配置数据库等信息- 前端环境配置
cd frontend
npm install
npm run dev- Docker部署
# 使用Docker Compose一键部署
docker-compose up -d# 启动后端服务
python app.py
# 启动前端开发服务器
cd frontend && npm run dev
# 启动Celery任务队列
celery -A app.celery worker --loglevel=infoYanLing/
├── 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 # 生产环境配置
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 项目主页: https://github.com/DarkSword404/YanLing
- 问题反馈: https://github.com/DarkSword404/YanLing/issues
- 邮箱: [your-email@example.com]
感谢所有为雁翎项目做出贡献的开发者和社区成员。
雁翎 - 让CTF竞赛更智能,让网络安全学习更高效!