# Cloudflare 部署说明

## 2026-04-15 上线方案

### 目标架构
- 静态页面：Cloudflare Pages
- API：`/functions/api/*` Pages Functions
- 数据库：Cloudflare D1
- AI 分析：通过环境变量注入外部模型 API Key

### 已补齐的上线文件
- 站点入口：[index.html](/Users/alma/Desktop/用户调研系统/index.html)
- 部署配置：[wrangler.toml](/Users/alma/Desktop/用户调研系统/wrangler.toml)
- D1 表结构：[migrations/0001_create_research_records.sql](/Users/alma/Desktop/用户调研系统/migrations/0001_create_research_records.sql)
- 抖音面板云端状态表：[migrations/0002_create_dashboard_state.sql](/Users/alma/Desktop/用户调研系统/migrations/0002_create_dashboard_state.sql)

### 部署步骤
1. 在 Cloudflare 创建一个 Pages 项目，连接当前目录对应的代码仓库，或用 Wrangler 直接发布当前目录。
2. 将构建输出目录设置为仓库根目录 `.`，因为这里是纯静态页面，不需要额外 build。
3. 创建 D1 数据库，并把数据库 ID 写入 [wrangler.toml](/Users/alma/Desktop/用户调研系统/wrangler.toml) 的 `database_id` / `preview_database_id`。
4. 执行 D1 初始化 SQL，创建 `research_records` 和 `dashboard_state` 表。
5. 在 Pages 项目里配置环境变量：
   - `GEMINI_BASE_URL`
   - `GEMINI_MODEL`
6. 在 Pages 项目里配置 secret：
   - `GEMINI_API_KEY`
7. 部署完成后，先访问：
   - `/`
   - `/gongkao_research.html`
   - `/douyin-ops-dashboard.html`
   - `/api/health`
   - `/api/douyin-dashboard-state`

### 建议的 Wrangler 命令
```bash
wrangler d1 create user-research-system
wrangler d1 execute user-research-system --file=./migrations/0001_create_research_records.sql
wrangler d1 execute user-research-system --file=./migrations/0002_create_dashboard_state.sql
wrangler pages secret put GEMINI_API_KEY
wrangler deploy
```

### 关键决策
- 没有引入 Vite/Next 等构建链，保持当前“静态页面 + Functions”结构，避免把原型项目改造成重工程。
- 新增 `index.html` 作为首页，否则 Cloudflare Pages 根路径默认没有入口。
- D1 schema 以当前接口代码的字段为准，保证上线后 `research-records` API 可以直接读写。
- 抖音面板已切换到“云端优先 + 本地兜底”，因此 `dashboard_state` 表也是上线必需项。
- `compatibility_date` 设为 `2026-03-17`，与当前本地 Wrangler 运行时兼容，减少本地预览告警；后续如升级 Wrangler，可再按 Cloudflare 新能力上调。

### 风险与限制
- [douyin-ops-dashboard.html](/Users/alma/Desktop/用户调研系统/douyin-ops-dashboard.html) 依赖 CDN 拉取 React/Babel，离线或 CDN 受限时无法正常运行。
- `ai-analysis-gemini` 依赖外部上游服务，不属于 Cloudflare 免费能力本身，配额和稳定性由上游决定。
- 当前已回填到现有资源：
  - Pages 项目：`gongkao-research`
  - D1 数据库：`gongkao-research-db`
