# 📦 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`
