# 模板上传脚本使用说明 ## 功能说明 提供四个脚本用于模板部署与重启: 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 ```