## 核心优化 - 移除详情页自动调用博查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>
233 lines
4.9 KiB
Markdown
233 lines
4.9 KiB
Markdown
# ZJPB v2.1 Git Patch 部署指南(最简单)
|
||
|
||
## ✨ 优势
|
||
|
||
- ✅ **最干净** - 使用Git patch,保持版本历史完整
|
||
- ✅ **最安全** - 自动备份未提交的修改
|
||
- ✅ **最快速** - 只需上传2个文件(89KB)
|
||
- ✅ **可追溯** - 所有更改都有Git记录
|
||
|
||
---
|
||
|
||
## 📦 需要上传的文件(仅2个)
|
||
|
||
1. `v2.1.0.patch` (89KB) - 代码补丁文件
|
||
2. `git_patch_deploy.sh` - 自动化部署脚本
|
||
|
||
---
|
||
|
||
## 🚀 部署步骤
|
||
|
||
### 第一步:备份生产数据库(在1Panel中操作)
|
||
|
||
1. 登录1Panel管理面板
|
||
2. 进入 **数据库** → 找到 `ai_nav` 数据库
|
||
3. 点击 **备份** 按钮
|
||
4. 下载备份文件保存
|
||
|
||
### 第二步:上传文件到服务器
|
||
|
||
**方法1:使用1Panel文件管理器**
|
||
|
||
1. 登录1Panel
|
||
2. 进入 **文件** → 导航到 `/opt/1panel/apps/zjpb/`
|
||
3. 上传文件:
|
||
- `v2.1.0.patch`
|
||
- `git_patch_deploy.sh`
|
||
|
||
**方法2:使用命令行(如果你用SSH)**
|
||
|
||
```bash
|
||
# 在本地(Windows)使用SCP上传
|
||
scp v2.1.0.patch root@your-server-ip:/opt/1panel/apps/zjpb/
|
||
scp git_patch_deploy.sh root@your-server-ip:/opt/1panel/apps/zjpb/
|
||
```
|
||
|
||
### 第三步:执行部署脚本
|
||
|
||
在1Panel终端或SSH中执行:
|
||
|
||
```bash
|
||
# 进入项目目录
|
||
cd /opt/1panel/apps/zjpb
|
||
|
||
# 赋予执行权限
|
||
chmod +x git_patch_deploy.sh
|
||
|
||
# 执行部署
|
||
./git_patch_deploy.sh
|
||
```
|
||
|
||
**脚本会自动完成:**
|
||
1. ✅ 停止应用
|
||
2. ✅ 检查Git状态
|
||
3. ✅ 备份未提交的修改(如有)
|
||
4. ✅ 应用v2.1.0补丁
|
||
5. ✅ 提交到Git
|
||
6. ✅ 安装依赖
|
||
7. ✅ 运行数据库迁移(创建prompt_templates表)
|
||
8. ✅ 重启应用
|
||
9. ✅ 检查状态
|
||
|
||
**预期输出:**
|
||
```
|
||
================================
|
||
ZJPB v2.1 Git Patch 部署
|
||
================================
|
||
|
||
当前目录: /opt/1panel/apps/zjpb
|
||
|
||
1. 停止应用...
|
||
2. 检查Git状态...
|
||
3. 备份当前修改(如有)...
|
||
4. 应用v2.1.0补丁...
|
||
✅ 补丁应用成功
|
||
5. 提交更改到Git...
|
||
6. 激活虚拟环境...
|
||
7. 检查依赖...
|
||
8. 运行数据库迁移...
|
||
正在创建 prompt_templates 表...
|
||
[OK] 表创建成功
|
||
[OK] 默认prompt模板初始化成功
|
||
9. 重启应用...
|
||
10. 检查应用状态...
|
||
zjpb 正在运行 (PID: xxxx)
|
||
|
||
================================
|
||
✅ 部署完成!
|
||
================================
|
||
```
|
||
|
||
### 第四步:验证部署
|
||
|
||
**前台验证:**
|
||
1. 访问首页,检查页脚:
|
||
- `© 2025 ZJPB - 焦提示词 | AI工具导航`
|
||
- `浙ICP备2025154782号-1`
|
||
- 打开F12检查Network,确认Clarity统计已加载
|
||
|
||
2. 访问任意网站详情页,检查图标:
|
||
- 返回首页:`←` 而不是 `arrow_back`
|
||
- 访问网站:`↗` 而不是 `north_east`
|
||
- 浏览次数:`👁` 而不是 `visibility`
|
||
|
||
**后台验证:**
|
||
1. 登录 `/admin/login`
|
||
2. 左侧菜单应该有 **Prompt管理**
|
||
3. 点击进入,查看3条默认模板:
|
||
- 标签生成
|
||
- 主要功能生成
|
||
- 详细介绍生成
|
||
|
||
4. 进入 **网站管理** → 编辑任意网站
|
||
5. 标签区域应该正常显示标签名称(蓝色标签,有文字)
|
||
|
||
**AI功能验证:**
|
||
1. 编辑或创建网站
|
||
2. 测试 **AI生成标签** 按钮
|
||
3. 测试 **AI生成详细介绍** 按钮
|
||
4. 测试 **AI生成主要功能** 按钮
|
||
|
||
---
|
||
|
||
## 🔍 部署后检查
|
||
|
||
查看Git提交历史:
|
||
```bash
|
||
cd /opt/1panel/apps/zjpb
|
||
git log --oneline -5
|
||
```
|
||
|
||
应该看到最新的提交:
|
||
```
|
||
xxxxxxx release: v2.1.0 - Prompt管理系统、页脚优化、图标修复
|
||
```
|
||
|
||
查看应用状态:
|
||
```bash
|
||
./manage.sh status
|
||
```
|
||
|
||
查看应用日志(如有问题):
|
||
```bash
|
||
./manage.sh logs
|
||
```
|
||
|
||
---
|
||
|
||
## 🔄 回滚方案(如出现问题)
|
||
|
||
```bash
|
||
cd /opt/1panel/apps/zjpb
|
||
|
||
# 停止应用
|
||
./manage.sh stop
|
||
|
||
# 回滚到上一个提交
|
||
git reset --hard HEAD~1
|
||
|
||
# 如果有stash的备份,恢复它
|
||
git stash list
|
||
git stash pop
|
||
|
||
# 重启应用
|
||
./manage.sh start
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 注意事项
|
||
|
||
1. ✅ 服务器路径是 `/opt/1panel/apps/zjpb` 不是 `/www/wwwroot/zjpb`
|
||
2. ✅ 已确认服务器有Git仓库
|
||
3. ✅ patch文件会自动保存现有未提交的修改
|
||
4. ✅ 部署过程中会自动运行数据库迁移
|
||
5. ✅ 所有更改都会提交到Git,可随时回滚
|
||
|
||
---
|
||
|
||
## 🎯 完整部署命令(复制粘贴)
|
||
|
||
```bash
|
||
# 1. 进入项目目录
|
||
cd /opt/1panel/apps/zjpb
|
||
|
||
# 2. 检查文件是否上传成功
|
||
ls -lh v2.1.0.patch git_patch_deploy.sh
|
||
|
||
# 3. 赋予执行权限
|
||
chmod +x git_patch_deploy.sh
|
||
|
||
# 4. 执行部署
|
||
./git_patch_deploy.sh
|
||
|
||
# 5. 部署完成后验证
|
||
./manage.sh status
|
||
git log --oneline -3
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ 部署检查清单
|
||
|
||
- [ ] 生产数据库已备份
|
||
- [ ] v2.1.0.patch 已上传到服务器
|
||
- [ ] git_patch_deploy.sh 已上传到服务器
|
||
- [ ] 部署脚本执行成功
|
||
- [ ] 前台页脚显示正确(ICP+统计)
|
||
- [ ] 详情页图标显示正确(Emoji)
|
||
- [ ] 后台Prompt管理菜单存在
|
||
- [ ] 标签显示正常(有文字)
|
||
- [ ] AI生成功能测试通过
|
||
|
||
---
|
||
|
||
## 💡 优势说明
|
||
|
||
相比手动上传11个文件,Git patch方式:
|
||
- 只需上传2个文件(89KB)
|
||
- 自动处理文件合并
|
||
- 保留完整Git历史
|
||
- 可以一键回滚
|
||
- 更安全可靠
|