6.0 KiB
6.0 KiB
前端 App 部署功能使用说明
📦 功能概述
新增的部署功能可以将已构建好的 dist_core 目录部署到服务器 /var/www/app/,并提供完整的版本历史管理和回滚功能。
🚀 使用流程
1. 准备工作
1.1 安装依赖
cd AdminTool
pip install -r requirements.txt
确保已安装:
PyQt5- GUI 界面paramiko- SSH 连接pymysql- MySQL 数据库requests- API 请求
1.2 配置服务器信息
编辑 AdminTool/deploy_config.json:
{
"host": "103.97.201.136",
"port": "22",
"username": "root",
"password": "你的密码",
"remote_path": "/var/www/app",
"mysql": {
"host": "localhost",
"port": "3306",
"username": "designer_user",
"password": "DesignerPass123!",
"database": "designer_db"
}
}
1.3 构建前端
在部署前,请先手动构建前端:
cd Designer
npm run build:core
构建完成后会生成 Designer/dist_core/ 目录。
2. 启动管理工具
cd AdminTool
python admin_gui.py
打开后切换到 "自动化部署" 标签页。
3. 部署新版本
步骤:
-
选择 dist_core 目录
- 点击 "浏览..." 按钮
- 选择
Designer/dist_core目录
-
添加备注(可选)
- 例如:
修复主题同步bug、新增管理后台功能
- 例如:
-
点击 "🚀 部署到服务器"
- 系统会:
- 自动生成时间戳版本号(如
20231220_153045) - 备份当前运行版本到
/var/www/app_versions/backup_XXXXXX/ - 清空
/var/www/app/ - 上传新版本
- 保存版本到
/var/www/app_versions/20231220_153045/ - 记录到 MySQL 数据库
- 自动生成时间戳版本号(如
- 系统会:
-
查看部署日志
- 底部日志区域会实时显示进度
- 部署成功后会弹出提示
4. 查看版本历史
部署成功后,版本会自动显示在 "版本历史管理" 表格中:
| 版本号 | 部署时间 | 大小(MB) | 备注 | 状态 |
|---|---|---|---|---|
| 20231220_153045 | 2023-12-20 15:30:45 | 12.5 | 修复主题同步bug | ✅ 当前 |
| 20231220_102030 | 2023-12-20 10:20:30 | 12.3 | 初始版本 |
- 绿色 "✅ 当前" 表示正在服务器上运行的版本
- 点击 "🔄 刷新列表" 可手动刷新
5. 回滚到历史版本
如果新版本有问题,可以快速回滚:
-
选择要回滚的版本
- 在表格中点击某个历史版本
-
点击 "⏪ 回滚到选中版本"
- 确认对话框会显示版本信息
-
确认回滚
- 系统会:
- 备份当前版本
- 从
/var/www/app_versions/复制选中版本到/var/www/app/ - 更新数据库
- 系统会:
-
刷新页面
- 访问
https://app.aidg168.uk/查看回滚结果
- 访问
6. 删除历史版本
如果某个版本不再需要:
- 选择要删除的版本
- 点击 "🗑️ 删除选中版本"
- 确认删除
- 会同时删除:
- 数据库记录
- 服务器文件
/var/www/app_versions/XXXXXX/
- 会同时删除:
注意:
- ❌ 无法删除当前正在使用的版本
- ⚠️ 删除操作不可恢复
📁 服务器目录结构
/var/www/
├── app/ ← 当前运行版本(Caddy 直接访问)
│ ├── index.html
│ ├── assets/
│ └── ...
│
└── app_versions/ ← 版本历史存档
├── 20231220_153045/ ← 版本 1
├── 20231220_164522/ ← 版本 2
├── backup_20231221_092301/ ← 自动备份
└── ...
🗄️ 数据库表结构
表名:app_deployments
CREATE TABLE app_deployments (
id INT PRIMARY KEY AUTO_INCREMENT,
version VARCHAR(50) UNIQUE NOT NULL, -- 版本号(时间戳)
deployed_at DATETIME NOT NULL, -- 部署时间
is_current BOOLEAN DEFAULT FALSE, -- 是否当前版本
file_size_mb DECIMAL(10, 2), -- 文件大小(MB)
comment VARCHAR(500), -- 备注
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
❓ 常见问题
Q1: 部署后需要重启 Caddy 吗?
A: 通常不需要。Caddy 会自动读取 /var/www/app/ 中的新文件。但如果页面没更新,可以尝试:
ssh root@your-server
systemctl restart caddy
Q2: 如果数据库连接失败怎么办?
A: 检查 deploy_config.json 中的 MySQL 配置:
- 主机地址(
host) - 端口(
port) - 用户名和密码
- 数据库名(
database)
Q3: 如何查看服务器上的实际文件?
A: 使用 SSH 登录:
ssh root@103.97.201.136
cd /var/www/app
ls -lh
Q4: 部署失败后如何恢复?
A: 如果部署中断:
- 进入 GUI 的"版本历史管理"
- 选择上一个稳定版本
- 点击"回滚"
Q5: 可以同时部署到多个服务器吗?
A: 当前版本不支持。如需要,可以:
- 修改服务器配置
- 重新部署
🛠️ 技术细节
版本号生成规则
- 格式:
YYYYMMDD_HHMMSS - 示例:
20231220_153045= 2023年12月20日 15:30:45 - 自动生成,无需手动输入
备份机制
- 部署新版本时:自动备份当前版本为
backup_{timestamp} - 回滚时:自动备份当前版本
- 备份存储在
/var/www/app_versions/
上传方式
- 使用 SFTP(基于 SSH)
- 递归上传整个目录
- 实时显示上传进度
⚠️ 注意事项
-
部署前务必构建
- 必须先运行
npm run build:core - 确保
dist_core/目录存在且完整
- 必须先运行
-
生产环境谨慎操作
- 部署会直接替换线上版本
- 建议先在测试环境验证
-
保留足够历史版本
- 建议至少保留 3-5 个历史版本
- 便于快速回滚
-
定期清理旧版本
- 旧版本会占用服务器空间
- 定期删除不再需要的版本
📞 支持
如有问题,请联系开发者或查看: