> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# 题目管理

入口：「管理后台 → 题目管理」，对应 `/platform/#/admin/challenges`。

## 题库与比赛题目

全局题库保存题目模板、附件、生成器镜像、Compose 和原始 Flag。添加到比赛后，可以单独调整该场比赛中的名称、描述、提示、标签、可见性、提交次数和计分。

附件和运行模板由引用该题目的比赛共用，修改前请确认影响范围。比赛 Flag 需要在比赛内单独检查和维护；修改模板后，应重新测试 Flag 注入和服务访问。

## 创建题目

1. 选择静态题、动态附件题或容器题。题型创建后不能更改。
2. 填写名称、分类和 Markdown 描述。
3. 静态题和动态附件题填写 Flag 模板列表，例如 `static{hello}`、`leet{hello_world}` 或 `uuid{}`。
4. 动态附件题必须填写生成器镜像；容器题必须提供 Compose，Flag 从环境变量、`x-volumes` 或 `x-cloudinit.write_files` 提取。
5. 保存题目后上传附件并测试。

容器编辑器支持表单和 YAML 配置。普通容器题至少开放一个端口；请使用编辑器支持的 Compose 配置项。网络、文件注入和 VM 设置见[动态靶机](/guide/features/container.md)。

## 附件

| 题型        | 上传内容与下载行为                                                                      |
| --------- | ------------------------------------------------------------------------------ |
| 静态题 / 容器题 | 所有队伍共享一个附件，下载时使用上传文件名                                                          |
| 动态附件题     | 可选上传 ZIP 源文件，保存为 `generator.zip`，由 worker 解压到 `/root`；每队下载按 Flag 和源文件版本生成的 ZIP |

静态附件可按题目需要选择文件格式，动态生成器源文件需打包为有效 ZIP。上传大小由「系统管理」中的题目附件限制控制（`gin.upload.challenge`）。上传完成即保存，取消编辑不会撤销附件上传。

## 测试

在题目列表/详情进入测试操作：

- 静态题：检查附件下载和内容。
- 动态附件题：先在全局「生成器」页为该题启动测试生成器，再测试下载生成结果。测试使用 `team_id=0` 和题库原始 Flag 模板，与比赛队伍的最终 Flag 不同。
- 容器题：启动测试实例，等待 Running，核对端点、服务、环境变量/文件和资源限制，测试后停止。

测试实例使用独立的测试 Flag，通常为 `flag{...}`，不影响正式队伍。VM 需要可启动的 containerDisk 镜像、VPC、内存、静态 IP 与 MAC，访问入口需按题目设计配置。

查看测试状态和下载附件需要 `admin:challenge:read`；启动或停止测试需要 `admin:challenge:test`。动态测试还需要可用的全局生成器。

## 加入比赛与发布

在「比赛 → 题目」选择并添加题目。新添加的题目默认隐藏，先检查 Flag 和分数，再取消隐藏。可调整：

| 设置    | 说明                    |
| ----- | --------------------- |
| 名称与描述 | 比赛内展示内容，描述支持 Markdown |
| 标签与提示 | 题目分类标签及解题提示           |
| 隐藏题目  | 准备完成后取消隐藏             |
| 提交次数  | 每队提交次数上限，`0` 不限制      |

每个 Flag 可独立选择计分方式，并设置初始分值、最低分值和衰减参数。使用分数曲线预览检查效果，详见[计分系统](/guide/features/scoring.md)。

## 网络策略

在网络策略编辑器中填写 Kubernetes NetworkPolicy **spec** 列表（JSON）。以下示例允许发往指定私网网段的出站流量：

```json
[{"policyTypes":["Egress"],"egress":[{"to":[{"ipBlock":{"cidr":"10.0.0.0/8"}}]}]}]
```

请按题目需要补充 DNS、服务依赖等目标地址，并确认集群 CNI 支持网络策略。保存题目后会开始镜像预热，进度查看方法见[工作负载调度](/deploy/workloads.md)。
