# 1Panel 安装向导验收报告（待服务器执行）

| 项 | 内容 |
|----|------|
| 日期 | 2026-06-06 |
| 目标 | 完成 `https://api.synaglobal.vip/app/install.html` 五步安装 |
| 代码基线 | `main` @ `b25d079`（1Panel 容器名 sync） |
| DNS | `api.synaglobal.vip` → `20.24.218.235`（新 VPS） |

## Agent 侧探测（本机）

| 检查 | 结果 | 说明 |
|------|------|------|
| SSH `Host nexus` | 失败 | 本机无 `~/.ssh/id_rsa_nexus`，无法代登服务器 |
| `https://api.synaglobal.vip/health` | 连接重置 | 外网 HTTPS 未通或 OpenResty 未反代 |
| `20.24.218.235:8600` | 不可达 | 预期：仅 `127.0.0.1:8600` 监听 |

**结论**：安装向导必须在 **1Panel 终端** 本机验证；外网访问依赖 OpenResty 反代配置。

## 服务器执行清单（复制到 1Panel 终端）

### 1. 更新到 b25d079+ 并 sync 1Panel 主机名

```bash
cd /opt/nexus
git fetch && git log -1 --oneline
nx update --no-cache
```

### 2. 一键验收

```bash
bash deploy/verify-1panel-install-wizard.sh
```

关键 `[PASS]`：

- 已包含 b25d079
- `NEXUS_1PANEL_DB_HOST=1Panel-mysql-*`
- `NEXUS_1PANEL_REDIS_HOST=1Panel-redis-*`
- Nexus 已接入 `1panel-network`
- 容器内 TCP → MySQL/Redis
- `/app/.env` 不存在
- 步骤 3 预填 `db_host=1Panel-mysql-*`（非 `host.docker.internal`）

### 3. 配置 OpenResty（外网访问）

1. 1Panel → 应用商店 → **OpenResty**
2. 网站 → 域名 `api.synaglobal.vip` → 反代 `http://127.0.0.1:8600`
3. HTTPS → Let's Encrypt
4. 参考 `deploy/1panel/openresty-nexus.conf.example`（`/ws/` 超时 ≥ 3600s）

验证：

```bash
curl -sk https://api.synaglobal.vip/health   # → ok
```

### 4. 1Panel 数据库准备

- 库名：`nexus`
- 用户：`nexus`（仅授权 `nexus` 库）
- 记下密码（步骤 3 填写）

### 5. 浏览器完成安装向导

打开：`https://api.synaglobal.vip/app/install.html`

| 步骤 | 要点 |
|------|------|
| 2 环境检测 | MySQL/Redis 显示 `✓ 已安装（1Panel-mysql-xxxx:3306）` |
| 3 数据库 | `db_host` / `redis_host` 为容器名；填 MySQL 密码；Redis 有密码则填 `redis_pass` |
| 4 连接 | MySQL + Redis 全绿 |
| 4 管理员 | 创建 admin 账号 |
| 5 锁定 | 完成安装 |

### 6. 安装后 L5 抽测

```bash
curl -sk https://api.synaglobal.vip/health
curl -sk -o /dev/null -w '%{http_code}\n' https://api.synaglobal.vip/app/
# 未登录 API → 401
curl -sk -o /dev/null -w '%{http_code}\n' https://api.synaglobal.vip/api/servers/
```

## 常见故障

| 现象 | 处理 |
|------|------|
| 步骤 3 仍是 `host.docker.internal` | `nx update --no-cache`；确认 `git log -1` ≥ b25d079 |
| MySQL `Can't connect on host.docker.internal` | `bash deploy/detect-1panel-services.sh` → `nx update` |
| `/app/install.html` 404 | `bash deploy/sync-install-wizard-to-container.sh` |
| `/app/.env` 已存在但向导未完成 | 删 `nexus-state` 卷内 `.env`，设 `NEXUS_INSTALL_WIZARD_PENDING=1`，`nx update` |
| 外网 HTTPS 失败、本机 8600 正常 | 配置 OpenResty 反代 + SSL |

## DoD（待填）

- [ ] `verify-1panel-install-wizard.sh` 全 PASS
- [ ] `https://api.synaglobal.vip/health` → `ok`
- [ ] 安装向导步骤 5 锁定完成
- [ ] `/app/` 可登录
