# Cloudflare Pages 发布清单

这个项目已经整理成适合 **Cloudflare Pages Direct Upload** 的结构，并且支持 `_worker.js` Advanced Mode。

## 已生成文件

- 上传 zip：
  - `dist/holy-chicken-cloudflare-pages.zip`
- 上传目录：
  - `dist/cloudflare-pages-upload/`

## 一次性注意事项

- Direct Upload 项目创建后，不能再切换成 Git integration。
- Dashboard 的 drag and drop 支持：
  - 一个 zip 文件
  - 或一个单独目录
- Dashboard 拖拽上传支持 `_worker.js`
- `functions/` 目录不适合用 dashboard 拖拽，但 `_worker.js` 没问题

## 最短发布步骤

1. 登录 Cloudflare
2. 进入 `Workers & Pages`
3. `Create application`
4. 选 `Pages`
5. 选 `Upload assets`
6. 输入项目名
7. 上传 `dist/holy-chicken-cloudflare-pages.zip`
8. 点击部署

## 必填环境变量

部署完成后，进入：

- `Pages project`
- `Settings`
- `Environment variables`

至少填这些：

- `UPSTREAM_BASE_URL`
- `UPSTREAM_API_KEY`
- `UPSTREAM_MODEL`
- `UPSTREAM_API_STYLE`

推荐先填当前最稳方案：

```text
UPSTREAM_BASE_URL=http://api.tsbys.com/v1
UPSTREAM_MODEL=qwen3-max
UPSTREAM_API_STYLE=chat
```

再把你的真实 key 填到：

```text
UPSTREAM_API_KEY=你的真实 key
```

可选：

```text
CORS_ORIGIN=*
APP_TOKEN=
UPSTREAM_TIMEOUT_MS=45000
SYNTHETIC_STREAM_DELAY_MS=10
```

备用上游也可以一起配：

```text
FALLBACK_UPSTREAM_BASE_URL=https://dash.classicriver.cn/v1
FALLBACK_UPSTREAM_API_KEY=你的备用 key
FALLBACK_UPSTREAM_MODEL=gpt-5.4
FALLBACK_UPSTREAM_API_STYLE=chat
```

## 发布后检查

把 `你的-pages-域名` 换成实际地址：

- 首页：
  - `https://你的-pages-域名/`
- 健康检查：
  - `https://你的-pages-域名/health`

如果 `/health` 返回 `configured: true`，说明上游环境变量已经接通。

## 如果 AI 没回

先检查三件事：

1. `UPSTREAM_API_KEY` 是否填错
2. `UPSTREAM_API_STYLE` 是否与上游兼容
3. `UPSTREAM_BASE_URL` 是否真的能从公网访问

## 可选 CLI 方式

项目里也放了一个 `wrangler.jsonc` 模板，可选用 Wrangler 发布，而不是后台拖拽。
