# Cloudflare 云端部署说明

本项目支持部署到 Cloudflare：

- Worker：后端 API
- D1：SQLite 风格云数据库
- R2：Skill 包文件存储
- Pages：前端页面托管

## 你需要准备什么

- 一个 Cloudflare 账号
- 能在浏览器里完成登录或注册
- 本地已经安装 Node.js 22+
- 当前项目能运行 `npm run local`

## 一键部署命令

```bash
npm run cloudflare:deploy
```

部署过程中可能会发生：

1. 终端运行 `wrangler whoami` 检查登录状态。
2. 如果未登录，浏览器会打开 Cloudflare 授权页。
3. 如果没有账号，你可以在授权页注册。
4. 授权完成后，脚本会继续执行。
5. 脚本会创建 D1 数据库、R2 桶、执行数据库迁移、灌入流程架构种子数据、部署 Worker、构建前端、部署 Pages。

## 需要授权哪些能力

Wrangler 会代表你操作 Cloudflare 账户里的这些资源：

- Workers
- D1
- R2
- Pages

这些都是本项目上线所需的 Cloudflare 标准资源。

## 如果脚本要求你粘贴 database_id

脚本通常会自动从 `wrangler d1 create` 输出中读取 `database_id`。

如果自动读取失败，它会提示你手动粘贴。你可以从终端输出里找类似：

```toml
database_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
```

把引号里的内容粘贴回终端即可。

## 如果脚本要求你粘贴 URL

Worker URL 通常长这样：

```text
https://aipros-lite-api.xxx.workers.dev
```

Pages URL 通常长这样：

```text
https://aipros-lite-student.pages.dev
```

脚本会尽量自动解析。如果解析失败，就从终端输出或 Cloudflare 控制台复制。

## 云端部署后的重要配置

Cloudflare Worker 运行在云端，不能执行你电脑上的本地 Codex、Qoder、Claude Code 命令。

所以云端要使用 AI 创建、AI 评测、Skill 运行能力，需要在系统里配置公网运行时，例如 AgentRun：

1. 登录部署好的 Pages 前端。
2. 进入“智能体配置”。
3. 选择 AgentRun 或其他公网运行时。
4. 填写公网集成 URL 和调用凭证。
5. 启用并设为当前运行时。

## 不建议上传的内容

不要把这些内容提交到云端仓库或发给别人：

- `.env`
- Cloudflare API Token
- SQLite 数据库
- `node_modules`
- SSL 私钥和证书
- `.wrangler`
- 上传目录

使用 `npm run package:student` 生成的 release zip 会自动排除这些内容。
