flnxi-Wu/scripts/deploy/README.md
WuYongJie 5f2ba48532
Some checks failed
CI Check / check (push) Has been cancelled
优化模板管理器拖拽交互体验
- 移除高亮卡片效果,避免与虚位卡片视觉重复
- 松开鼠标后立即更新布局,不再等待动画完成
- 优化拖拽动画效果,使用弹性缓动函数
- 更新 CHANGELOG.md 记录本次优化
2025-11-20 11:24:25 +08:00

92 lines
4.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 部署脚本使用说明
## 脚本分层
| 类型 | 文件 | 说明 |
| --- | --- | --- |
| **通用入口** | `安全部署.ps1` / `安全部署.sh` | 推荐使用。封装了巡检 → 构建 → 镜像推送 → 远程 compose → `/api/health` 轮询的整套流程,支持 Windows PowerShell 与 Bash。 |
| **本地打包 + 上传** | `local-build-and-upload.ps1` | 在无法推镜像的场景下,先本地构建/打包,再通过 `scp` 上传到远端解压并 `docker compose up`。 |
| **增量/应急脚本** | `deploy-optimized.ps1`、`execute-remote-deploy.ps1` | 早期“直接上传源码 + 服务器构建”方案仍保留以备回退,但已退出默认流程。调用前请确认服务器网络具备拉取基础镜像的能力。 |
| **辅助排障** | `check-*.ps1`、`fix-*.ps1`、`setup-*.ps1`、`manual-import-image.ps1`、`export-and-upload-image.ps1` 等 | 用于检查 Docker/网络状态、修复私有 Registry、导出/导入镜像、创建客户离线包等。 |
| **安全工具** | `encrypt-password.ps1` / `decrypt-password.ps1` | 需要以明文密码方式部署时,可通过该工具生成/验证加密密钥文件,避免将密码直接写进脚本。 |
> ℹ️ 其余历史脚本(例如 `deploy-simple.ps1`、`deploy-with-ssh-key.ps1` 等)已在 2025-11-19 归档/删除,避免误用老旧流程。
## 快速开始
### 推荐:安全部署脚本
```powershell
# Windows
.\scripts\deploy\安全部署.ps1
# macOS / Linux
bash scripts/deploy/安全部署.sh
```
脚本会依次完成:
1. 本地依赖检测与构建
2. Docker 镜像打包、标记与推送(或覆盖)
3. 远程服务器 SSH/Registry 连接校验
4. `docker compose` 滚动更新
5. 健康检查 & 日志输出
### 备用:本地打包上传
```powershell
.\scripts\deploy\local-build-and-upload.ps1 `
-Server "192.168.1.100" `
-User "root" `
-Password "****" `
-ProjectPath "/root/youyidian-3d"
```
> ⚠️ 此脚本仍会在服务器端执行 `docker compose build`,需要确保远程机器能访问基础镜像或提前导入(可搭配 `export-and-upload-image.ps1` / `manual-import-image.ps1`)。
## 功能特点
1. **阶段化输出**:每个阶段均打印醒目标题,失败时便于快速定位。
2. **健康检查**:完成后自动轮询 `/api/health`,确认服务可用再退出。
3. **容器友好**:统一使用 `docker compose`,兼容 `docker-compose`。
4. **数据保护**:上传前自动备份 `uploads/`,部署完成再恢复。
5. **镜像托管**:配合 `setup-registry*.ps1` 可快速初始化私有 Registry。
## 安全建议
1. **不要将密码提交到 Git**:如果修改了脚本中的默认密码,确保不要提交到 Git 仓库
2. **使用环境变量**:可以考虑使用环境变量存储密码
3. **定期更换密码**:定期更换服务器密码
4. **使用 SSH 密钥**:如果可能,使用 SSH 密钥而不是密码(更安全)
## 故障排除
### 1. 连接失败
- 检查服务器地址和端口是否正确
- 检查网络连接
- 检查防火墙设置
### 2. 密码错误
- 确认密码正确
- 检查用户名是否正确
### 3. 构建失败
- 检查 Docker 是否正常运行
- 检查 Docker Compose 是否安装
- 查看构建日志获取详细错误信息
### 4. 文件上传失败
- 检查文件路径是否正确
- 检查服务器磁盘空间
- 检查文件权限
## 注意事项
1. **BuildKit**:Dockerfile 默认启用 BuildKit,如果本地未开启可通过 `$env:DOCKER_BUILDKIT=1`(PowerShell)或 `export DOCKER_BUILDKIT=1`(Bash)打开。
2. **PuTTY**:仍需 `plink.exe`/`pscp.exe`(Windows 下)。可在 https://www.putty.org/ 下载。
3. **Host Key**:首次连接服务器建议手动将指纹加入 `known_hosts`,避免脚本交互中断。
4. **凭证管理**:优先使用 SSH 密钥或加密密码文件,避免明文写入脚本。
## 更新日志
- **2025-11-19**:清理 legacy 脚本,仅保留安全部署 + 本地打包路径;README 改为按场景列举。
- **v1.0.0**:初始版本,支持 Docker 构建缓存、密码/密钥认证、自动备份。