You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

254 lines
4.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 代码漏洞检测系统部署指南
## 系统要求
### 后端要求
- Python 3.8+
- pip 包管理器
- 至少 2GB 可用内存
### 前端要求
- Node.js 16+
- npm 或 yarn 包管理器
## 快速启动
### 方式一使用批处理脚本Windows
1. 双击运行 `start_all.bat` 自动启动前后端服务
2. 等待服务启动完成
3. 访问 http://localhost:3000
### 方式二:手动启动
#### 启动后端服务
```bash
# 进入后端目录
cd backend
# 安装依赖
pip install -r requirements.txt
# 启动服务
python main.py
```
后端服务将在 http://localhost:8000 启动
#### 启动前端服务
```bash
# 进入前端目录
cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm start
```
前端服务将在 http://localhost:3000 启动
## 配置说明
### 环境变量配置
创建 `.env` 文件在 `backend` 目录下:
```env
# 数据库配置
DATABASE_URL=sqlite:///./code_scanner.db
# AI服务配置
DEEPSEEK_API_KEY=your_deepseek_api_key_here
DEEPSEEK_API_URL=https://api.deepseek.com/v1/chat/completions
# 文件上传配置
UPLOAD_FOLDER=uploads
MAX_CONTENT_LENGTH=16777216
# 扫描配置
MAX_SCAN_FILES=1000
SCAN_TIMEOUT=300
# 报告配置
REPORTS_FOLDER=reports
# 日志配置
LOG_LEVEL=INFO
LOG_FILE=app.log
```
### 数据库配置
系统默认使用 SQLite 数据库,数据库文件位于 `backend/code_scanner.db`
如需使用其他数据库,修改 `DATABASE_URL` 环境变量:
```env
# PostgreSQL
DATABASE_URL=postgresql://user:password@localhost/code_scanner
# MySQL
DATABASE_URL=mysql://user:password@localhost/code_scanner
```
## 功能使用指南
### 1. 项目管理
1. 访问前端页面,点击"项目管理"
2. 点击"新建项目"按钮
3. 填写项目信息:
- 项目名称
- 项目描述
- 编程语言Python/C++/JavaScript等
- 项目路径(本地文件系统路径)
### 2. 代码扫描
1. 在项目列表中选择要扫描的项目
2. 点击"扫描"按钮
3. 选择扫描类型:
- 全量扫描:扫描所有文件
- 增量扫描:只扫描修改的文件
- 自定义扫描:根据配置扫描
4. 等待扫描完成
### 3. 查看报告
1. 扫描完成后,可在"报告中心"查看漏洞详情
2. 支持多种筛选条件:
- 按严重程度筛选
- 按漏洞分类筛选
- 按状态筛选
3. 支持导出多种格式:
- HTML报告
- PDF报告
- Excel报告
- JSON数据
### 4. 仪表板
仪表板提供系统概览:
- 项目统计
- 扫描统计
- 漏洞统计
- 趋势分析
- 分类分布
## API文档
后端API文档在服务启动后可通过以下地址访问
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
## 故障排除
### 常见问题
1. **后端启动失败**
- 检查Python版本是否满足要求
- 检查依赖包是否正确安装
- 检查端口8000是否被占用
2. **前端启动失败**
- 检查Node.js版本是否满足要求
- 检查npm依赖是否正确安装
- 检查端口3000是否被占用
3. **扫描失败**
- 检查项目路径是否正确
- 检查文件权限
- 查看后端日志获取详细错误信息
4. **AI增强功能不工作**
- 检查DeepSeek API密钥是否正确配置
- 检查网络连接
- 查看API调用日志
### 日志查看
- 后端日志:`backend/app.log`
- 前端日志:浏览器开发者工具控制台
## 生产环境部署
### Docker部署推荐
1. 创建 `docker-compose.yml`
```yaml
version: '3.8'
services:
backend:
build: ./backend
ports:
- "8000:8000"
environment:
- DATABASE_URL=sqlite:///./code_scanner.db
volumes:
- ./data:/app/data
frontend:
build: ./frontend
ports:
- "3000:3000"
depends_on:
- backend
```
2. 启动服务:
```bash
docker-compose up -d
```
### 传统部署
1. 后端部署:
- 使用 gunicorn 或 uvicorn 作为WSGI服务器
- 配置反向代理Nginx
- 设置进程管理systemd/supervisor
2. 前端部署:
- 构建生产版本:`npm run build`
- 将构建文件部署到Web服务器
- 配置反向代理指向后端API
## 性能优化
1. **数据库优化**
- 为常用查询字段添加索引
- 定期清理历史数据
- 考虑使用连接池
2. **扫描性能优化**
- 调整扫描并发数
- 使用增量扫描减少重复工作
- 缓存扫描结果
3. **前端优化**
- 启用代码分割
- 使用CDN加速静态资源
- 启用Gzip压缩
## 安全注意事项
1. **API安全**
- 配置CORS策略
- 实施API限流
- 使用HTTPS
2. **数据安全**
- 定期备份数据库
- 加密敏感配置信息
- 限制文件上传类型和大小
3. **访问控制**
- 实施用户认证
- 配置角色权限
- 记录操作日志