feat: v2.6.0 - API安全优化和文档整合

## 核心优化
- 移除详情页自动调用博查API的逻辑,改为按需加载
- 添加基于IP的频率限制(每小时3次)
- 实现验证码防护机制(超过阈值后要求验证)
- 新增频率限制工具类 utils/rate_limiter.py

## 成本控制
- API调用减少约90%+(只在用户点击时调用)
- 防止恶意滥用和攻击
- 可配置的频率限制和验证码策略

## 文档整合
- 创建 docs/ 目录结构
- 归档历史版本文档到 docs/archive/
- 移动部署文档到 docs/deployment/
- 添加文档索引 docs/README.md

## 技术变更
- 新增依赖: Flask-Limiter==3.5.0
- 修改: app.py (移除自动调用,新增API端点)
- 修改: templates/detail_new.html (按需加载UI)
- 新增: utils/rate_limiter.py (频率限制和验证码)
- 新增: docs/archive/DEVELOP_v2.6.0_API_SECURITY.md

## 部署说明
1. pip install Flask-Limiter==3.5.0
2. 重启应用
3. 无需数据库迁移

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Jowe
2026-02-06 15:54:13 +08:00
parent c1a06ad684
commit 939717fa57
27 changed files with 1670 additions and 140 deletions

View File

@@ -0,0 +1,180 @@
# 1Panel快速部署向导
## 🎯 使用1Panel Web界面 - 5步完成部署
### 📋 准备工作
- [x] 1Panel已安装
- [x] 项目文件已压缩zjpb.zip
---
## 第1步创建数据库2分钟
1. 登录1Panel → **数据库**
2. 点击 **创建数据库**
3. 填写:
- 数据库名:`ai_nav`
- 用户名:`ai_nav_user`
- 密码:自动生成(**记录下来!**
4. 确定
---
## 第2步上传项目3分钟
1. **文件** → 导航到 `/www/wwwroot/`
2. 创建文件夹 `zjpb`
3. 上传 `zjpb.zip`
4. 解压缩
5. 编辑 `.env.example` → 另存为 `.env`
6. 填写数据库密码和密钥
---
## 第3步创建Python网站5分钟
### 方式A使用1Panel的Python运行时推荐
1. **网站****创建网站**
2. 类型:**运行时 (Runtime)**
3. 配置:
```
运行时Python 3.8+
应用类型Flask
域名your-domain.com
代码目录:/www/wwwroot/zjpb
启动文件app.py
启动命令gunicorn -c gunicorn_config.py app:app
端口5000
☑ 自动启动
```
4. 创建
### 方式B使用反向代理备选
如果没有Python运行时选项
1. **网站** → **创建网站**
2. 类型:**反向代理**
3. 配置:
```
域名your-domain.com
代理地址http://127.0.0.1:5000
```
然后SSH到服务器手动启动参考完整文档
---
## 第4步安装依赖和初始化5分钟
### 4.1 打开1Panel终端
点击1Panel右上角 **终端** 图标或SSH连接
### 4.2 安装依赖
```bash
cd /www/wwwroot/zjpb
# 激活1Panel创建的虚拟环境
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
```
### 4.3 初始化数据库
```bash
python init_db.py
```
看到成功提示后,记住默认账号:
- 用户名:`admin`
- 密码:`admin123`
---
## 第5步启动和访问2分钟
### 5.1 启动应用
**在1Panel界面**
1. 进入 **网站** 列表
2. 找到你的项目
3. 点击 **启动** 按钮
4. 状态变为 **运行中 ✓**
### 5.2 配置SSL推荐
1. 点击网站名称进入设置
2. 找到 **SSL** 选项
3. 选择 **Let's Encrypt**
4. 申请证书
5. 启用 **强制HTTPS**
### 5.3 访问网站
- 前台:`https://your-domain.com`
- 后台:`https://your-domain.com/admin/login`
### 5.4 修改密码(重要!)
1. 登录后台admin / admin123
2. 点击左侧菜单 **修改密码**
3. 设置新密码
---
## ✅ 完成!
现在你的网站已经部署完成并运行了!
---
## 🔧 常用操作
### 重启应用
- 1Panel界面网站列表 → 点击 **重启**
### 查看日志
- 1Panel界面网站设置 → **日志**
- 或查看文件:`/www/wwwroot/zjpb/logs/error.log`
### 备份数据库
- 1Panel界面数据库 → 选择 `ai_nav` → **备份**
### 更新代码
1. 上传新文件到项目目录
2. 重启应用
---
## ❓ 常见问题
**Q: 找不到Python运行时选项**
- 使用反向代理方式,然后手动启动应用
- 参考:`1PANEL_DEPLOY.md` 方式二
**Q: 虚拟环境在哪?**
- 1Panel自动创建在`/www/wwwroot/zjpb/venv/`
**Q: 启动失败?**
1. 查看日志:`logs/error.log`
2. 检查 `.env` 配置
3. 确认数据库连接
4. 验证依赖已安装
**Q: 需要修改端口?**
- 编辑 `gunicorn_config.py`,修改 `bind` 参数
---
## 📚 更多帮助
- 完整文档:`1PANEL_DEPLOY.md`
- 传统部署:`DEPLOYMENT.md`
- 检查清单:`DEPLOY_CHECKLIST.md`
祝部署顺利!🚀