## 核心优化 - 移除详情页自动调用博查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>
133 lines
3.1 KiB
Markdown
133 lines
3.1 KiB
Markdown
# 📦 1Panel部署打包清单
|
||
|
||
部署前请确保以下文件都已准备好:
|
||
|
||
## ✅ 必需文件
|
||
|
||
### 应用文件
|
||
- [x] app.py - 主应用文件
|
||
- [x] wsgi.py - WSGI入口(生产环境)
|
||
- [x] config.py - 配置文件
|
||
- [x] models.py - 数据模型
|
||
- [x] init_db.py - 数据库初始化脚本
|
||
- [x] requirements.txt - Python依赖列表
|
||
|
||
### 配置文件
|
||
- [x] gunicorn_config.py - Gunicorn配置
|
||
- [x] .env.example - 环境变量模板
|
||
- [ ] .env - 生产环境变量(需在服务器上创建)
|
||
|
||
### 部署脚本
|
||
- [x] deploy.sh - 一键部署脚本
|
||
- [x] manage.sh - 应用管理脚本
|
||
|
||
### 文档
|
||
- [x] DEPLOYMENT.md - 完整部署文档
|
||
- [x] QUICK_DEPLOY.md - 快速部署指南
|
||
- [x] README.md - 项目说明
|
||
|
||
### 目录结构
|
||
```
|
||
zjpb/
|
||
├── static/ # 静态文件
|
||
│ ├── css/
|
||
│ ├── js/
|
||
│ └── uploads/ # 上传文件目录
|
||
├── templates/ # 模板文件
|
||
│ ├── admin/
|
||
│ └── *.html
|
||
├── utils/ # 工具类
|
||
│ ├── website_fetcher.py
|
||
│ ├── tag_generator.py
|
||
│ └── bookmark_parser.py
|
||
├── migrations/ # 数据库迁移脚本
|
||
├── logs/ # 日志目录(自动创建)
|
||
└── venv/ # 虚拟环境(服务器上创建)
|
||
```
|
||
|
||
## 🚫 排除文件(不要上传到服务器)
|
||
|
||
- `__pycache__/` - Python缓存
|
||
- `*.pyc` - 编译的Python文件
|
||
- `.git/` - Git仓库
|
||
- `.env` - 本地环境变量
|
||
- `venv/` `env/` - 虚拟环境
|
||
- `test_*.py` - 测试文件
|
||
- `*.log` - 日志文件
|
||
- `logs/` - 日志目录
|
||
- `static/uploads/*` - 上传的文件
|
||
|
||
## 📋 部署前检查清单
|
||
|
||
### 本地准备
|
||
- [ ] 更新 requirements.txt
|
||
- [ ] 测试应用运行正常
|
||
- [ ] 准备 .env.example 模板
|
||
- [ ] 压缩项目文件
|
||
|
||
### 服务器准备
|
||
- [ ] 1Panel已安装
|
||
- [ ] MySQL数据库已创建
|
||
- [ ] 域名已解析(可选)
|
||
- [ ] SSH访问权限
|
||
|
||
### 部署步骤
|
||
- [ ] 上传项目文件到服务器
|
||
- [ ] 解压并设置目录权限
|
||
- [ ] 执行 deploy.sh 脚本
|
||
- [ ] 配置 .env 文件
|
||
- [ ] 初始化数据库
|
||
- [ ] 在1Panel中创建网站(反向代理)
|
||
- [ ] 启动应用
|
||
- [ ] 配置SSL证书(可选)
|
||
|
||
### 部署后验证
|
||
- [ ] 前台页面访问正常
|
||
- [ ] 后台登录成功
|
||
- [ ] 修改默认管理员密码
|
||
- [ ] 测试网站添加功能
|
||
- [ ] 测试标签创建功能
|
||
- [ ] 测试图片上传功能
|
||
|
||
## 🔐 安全检查
|
||
|
||
- [ ] 修改默认管理员密码
|
||
- [ ] 设置强密码的 SECRET_KEY
|
||
- [ ] 配置 .env 权限(chmod 600)
|
||
- [ ] 启用 SSL/HTTPS
|
||
- [ ] 配置防火墙规则
|
||
- [ ] 定期备份数据库
|
||
|
||
## 📝 压缩命令
|
||
|
||
Windows PowerShell:
|
||
```powershell
|
||
Compress-Archive -Path * -DestinationPath zjpb.zip -Force
|
||
```
|
||
|
||
Linux/Mac:
|
||
```bash
|
||
zip -r zjpb.zip . -x "*.pyc" "*__pycache__*" "*.git*" ".env" "venv/*" "test_*.py" "logs/*"
|
||
```
|
||
|
||
## 🎯 快速部署(服务器上)
|
||
|
||
```bash
|
||
# 1. 上传并解压
|
||
cd /www/wwwroot/zjpb
|
||
unzip zjpb.zip
|
||
|
||
# 2. 一键部署
|
||
chmod +x deploy.sh
|
||
./deploy.sh
|
||
|
||
# 3. 配置环境变量
|
||
nano .env
|
||
|
||
# 4. 启动应用
|
||
chmod +x manage.sh
|
||
./manage.sh start
|
||
```
|
||
|
||
详细步骤请参考:`DEPLOYMENT.md`
|