# 2026-04-14 NAS TongWeb 部署脚本实施记录

## 1. 目标

- 新增一套独立于 Docker 的 NAS 部署脚本
- 部署链路固定使用 `ruoyi-admin.war`
- 远端通过 `TongWeb` 自动部署目录发布应用，并使用 `stopserver.sh` / `startservernohup.sh` 重启服务

## 2. 实施内容

### 2.1 新增 TongWeb NAS 部署入口

涉及文件：

- `deploy/deploy-to-nas-tongweb.sh`

实施内容：

- 提供与现有 NAS 脚本一致的 SSH 连接参数风格
- 默认执行 `mvn -pl ruoyi-admin -am package -DskipTests`
- 本地仅校验并上传 `ruoyi-admin/target/ruoyi-admin.war`
- 支持 `--dry-run` 预览参数

### 2.2 新增 TongWeb 远端执行器

涉及文件：

- `deploy/remote-deploy-tongweb.py`

实施内容：

- 通过 SFTP 将 `war` 上传到 NAS 临时目录 `${remoteRoot}/backend/`
- 远端复制 `war` 到 `${TONGWEB_HOME}/autodeploy/${appName}.war`
- 清理 `${TONGWEB_HOME}/autodeploy/${appName}` 旧解压目录
- 依次执行 `stopserver.sh`、`startservernohup.sh`

### 2.3 新增脚本回归测试

涉及文件：

- `tests/deploy/test_deploy_to_nas_tongweb.py`

实施内容：

- 覆盖默认参数 `dry-run`
- 覆盖自定义参数 `dry-run`
- 校验部署入口已调用 `remote-deploy-tongweb.py`
- 校验远端执行器包含 `autodeploy`、`stopserver.sh`、`startservernohup.sh`

## 3. 验证命令

```bash
python3 -m pytest tests/deploy/test_deploy_to_nas_tongweb.py -q
bash -n deploy/deploy-to-nas-tongweb.sh
bash deploy/deploy-to-nas-tongweb.sh --dry-run
```

## 4. 说明

- 默认 `TongWebHome` 取 `/opt/TongWeb`，可通过第 6 个位置参数或环境变量 `TONGWEB_HOME` 覆盖
- 默认应用名为 `ruoyi-admin`，可通过第 7 个位置参数或环境变量 `APP_NAME` 覆盖
- 本次只新增 `TongWeb` 后端部署链路，不改动现有 Docker NAS 部署脚本
