Files
qiming/qiming-xagi-frontend-templates/scripts/README.md
2026-06-01 13:43:09 +08:00

211 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
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.
# 模板上传脚本使用说明
## 功能说明
提供四个脚本用于模板部署与重启:
1. **`deploy-templates.sh`** - 完整部署流程(推荐)
- 打包所有模板
- 上传到远程服务器
- 重启 rcoder 容器内 `nuwax-file-server` 进程(不重启整个容器)
2. **`upload-templates.sh`** - 仅上传已有的 zip 文件
- 适用于已经打包好的情况
- 仅上传文件,不执行任何重启
3. **`restart-file-server.sh`** - 仅重启 `nuwax-file-server` 进程
-`rcoder` 容器内先停止旧进程,再拉起新进程
- 内置健康检查
4. **`restart-rcoder.sh`** - 仅重启 `rcoder` 容器
- 与 file-server 进程重启完全解耦
## 前置要求
### 安装 sshpass
macOS 上需要安装 sshpass 工具来实现自动化 SSH 登录:
```bash
brew install hudochenkov/sshpass/sshpass
```
## 配置说明
### 1. 创建 .env 文件
在项目根目录创建 `.env` 文件(已在 .gitignore 中,不会提交到 git
```bash
cp .env.example .env
```
### 2. 配置环境变量
编辑 `.env` 文件,设置远程服务器信息:
```bash
REMOTE_HOST=192.168.1.34
REMOTE_USER=swufe
REMOTE_PASSWORD=Swufe@2024
REMOTE_PATH=/home/swufe/nuwax/docker/config/rcoder/template
```
## 使用方法
### 方式一: 完整部署(推荐)
一键完成打包、上传并重启容器内 file-server
```bash
# 使用 npm script推荐
pnpm deploy:templates
# 或直接运行脚本
./scripts/deploy-templates.sh
```
这个脚本会:
1. 使用 `pnpm pack:all` 打包所有模板
2. 上传 react-vite 和 vue3-vite 到远程服务器
3. 重启 rcoder 容器内 `nuwax-file-server` 进程
### 方式二: 仅上传
如果已经打包好了,只需要上传:
```bash
# 使用 npm script推荐
pnpm upload:templates
# 或直接运行脚本
./scripts/upload-templates.sh
```
### 方式三: 仅重启 file-server
```bash
# 使用 npm script推荐
pnpm restart:file-server
# 或直接运行脚本
./scripts/restart-file-server.sh
```
### 方式四: 仅重启 rcoder 容器
```bash
# 使用 npm script推荐
pnpm restart:rcoder
# 或直接运行脚本
./scripts/restart-rcoder.sh
```
### 脚本执行流程
1. 加载 `.env` 配置
2. 检查必需的环境变量
3. 查找 `zip/` 目录下最新的模板文件:
- `react-vite-template_*.zip`
- `vue3-vite-template_*.zip`
4. 重命名为标准名称:
- `react-vite-template.zip`
- `vue3-vite-template.zip`
5. 上传到远程服务器
### 上传的文件
脚本会自动上传以下两个模板:
- `react-vite-template.zip` - React + Vite 模板
- `vue3-vite-template.zip` - Vue3 + Vite 模板
注意:`react-next-template` 不会被上传(根据需求只上传 vite 模板)
## 远程服务器路径
上传目标路径:`/home/swufe/nuwax/docker/config/rcoder/template`
上传后的文件结构:
```
/home/swufe/nuwax/docker/config/rcoder/template/
├── react-vite-template.zip
├── react-vite-template/ # 自动解压后的目录
├── vue3-vite-template.zip
└── vue3-vite-template/ # 自动解压后的目录
```
## 自动化流程
脚本会自动完成以下操作:
1. **上传模板文件** - 上传最新的 react-vite 和 vue3-vite 模板
2. **重启 file-server 进程** - 在 rcoder 容器内重启 `nuwax-file-server`
3. **容器重启(可选)** - 如有需要,手动执行 `restart-rcoder.sh`
无需手动干预,一键完成整个部署流程。
## 安全说明
- `.env` 文件包含敏感信息(密码),已添加到 `.gitignore`
- 不要将 `.env` 文件提交到 git 仓库
- 可以使用 `.env.example` 作为配置模板分享
## 故障排除
### sshpass 未安装
```
错误: sshpass 未安装
请运行: brew install hudochenkov/sshpass/sshpass
```
解决方法:安装 sshpass
### .env 文件不存在
```
错误: .env 文件不存在,请先创建 .env 文件
```
解决方法:复制 `.env.example` 并修改配置
### 未找到模板文件
```
错误: 未找到 react-vite-template zip 文件
```
解决方法:确保 `zip/` 目录下存在对应的模板 zip 文件
### SSH 连接失败
检查:
1. 远程服务器 IP 是否正确
2. 用户名和密码是否正确
3. 网络连接是否正常
4. 远程服务器是否开启 SSH 服务
## 手动上传方式
如果自动脚本无法使用,可以手动上传:
```bash
# 1. 进入 zip 目录
cd zip
# 2. 使用 scp 上传
scp react-vite-template_*.zip swufe@192.168.1.34:/home/swufe/nuwax/docker/config/rcoder/template/react-vite-template.zip
scp vue3-vite-template_*.zip swufe@192.168.1.34:/home/swufe/nuwax/docker/config/rcoder/template/vue3-vite-template.zip
# 3. SSH 登录到远程服务器
ssh swufe@192.168.1.34
# 4. 解压文件
cd /home/swufe/nuwax/docker/config/rcoder/template
unzip -o react-vite-template.zip -d react-vite-template
unzip -o vue3-vite-template.zip -d vue3-vite-template
```