# 脑晴测 H5 部署说明（自有服务器 + Node.js）

更新时间：2026-07-28

## 一、项目简介

- 中文、免登录的认知能力测评 H5
- 含四项游戏 + AI 生成报告（DeepSeek）
- 前端 React 19 + Vite，已构建为静态文件
- 服务端是零依赖单文件 Node.js（`server.mjs`）

## 二、仓库结构

```
.
├── brain-h5/
│   ├── dist/client/        # 预构建前端（已含，无需再 build）
│   ├── server.mjs          # Node.js 服务器入口（零依赖）
│   ├── src/                # 前端源码（仅二次开发时需要）
│   ├── worker/index.js     # Cloudflare Worker 版本（本方案不用）
│   └── ...
├── 交接文档.md
└── DEPLOY.md               # 本文件
```

## 三、部署步骤（自有服务器 + Node.js）

### 1. 系统要求

- Node.js v18 或更高（推荐 v20+）
- 任何能跑 Node.js 的操作系统（Linux/Windows/macOS）

不需要 npm install，不需要 pnpm，不需要 React 开发环境。

### 2. 克隆仓库

```bash
git clone <仓库地址>
cd Brain
```

### 3. 配置 API Key

`DEEPSEEK_API_KEY` 通过环境变量传入，**不要写入任何文件**。

Linux/macOS:
```bash
export DEEPSEEK_API_KEY=sk-你的key
```

Windows PowerShell:
```powershell
$env:DEEPSEEK_API_KEY = "sk-你的key"
```

或者用 systemd / pm2 / docker 等进程管理工具注入环境变量。

### 4. 启动服务

```bash
cd brain-h5
node server.mjs
```

默认监听 `0.0.0.0:4173`。可通过环境变量改：

```bash
PORT=8080 HOST=127.0.0.1 node server.mjs
```

### 5. 反向代理（推荐）

如果服务器有 Nginx，建议反代到 Node 服务：

```nginx
server {
    listen 80;
    server_name your.domain.com;

    location / {
        proxy_pass http://127.0.0.1:4173;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
```

### 6. 进程守护（生产环境）

推荐用 pm2:

```bash
npm install -g pm2
cd brain-h5
DEEPSEEK_API_KEY=sk-你的key pm2 start server.mjs --name brain-h5
pm2 save
pm2 startup
```

## 四、健康检查

部署完成后应能通过：

| 检查项 | 期望结果 |
|---|---|
| `GET /` | 返回 HTML（200） |
| `GET /assets/index-*.js` | 返回 JS bundle（200） |
| `POST /api/analyze`（带 JSON body） | 返回 JSON 报告（200） |
| 未配置 Key 时 `POST /api/analyze` | 返回 503 `{"error":"AI service is not configured..."}` |

## 五、关键安全约束

- `DEEPSEEK_API_KEY` **必须**通过环境变量传入，**不要**写入仓库、commit、或前端 bundle。
- `.env` 文件已在 `.gitignore` 中排除，不会进入仓库。
- Key 由项目负责人通过私密渠道单独发送。

## 六、本地开发（可选，技术总监无需操作）

如需修改源码并重新构建：

```bash
cd brain-h5
pnpm install      # 或 npm install
pnpm run dev      # 本地开发服务器
pnpm run build    # 重新构建到 dist/client/
```

## 七、联系人

- 项目负责人：MingNian
- 项目根目录：`D:\GMS project`
