For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /guide/start/quick-start.md.

快速上手

CBCTF 需要部署在 Kubernetes 集群内,包括只使用静态题的场景。推荐通过 Helm 安装平台及其数据库、缓存和共享存储配置。

1. 准备集群和存储

  • 准备 Kubernetes、kubectl、Helm,以及可拉取平台、worker 和题目镜像的节点。
  • 为平台数据选择支持 ReadWriteMany 的 StorageClass。动态附件输入与抓包文件需要与运行时 Pod 共享数据。
  • 使用 VPC 题目时安装 Kube-OVN 和 Multus;使用虚拟机题目时再安装 KubeVirt。
  • Chart 不会替你安装 CNI、KubeVirt、Ingress Controller 或存储 provisioner。具体步骤见集群准备。

2. 安装平台

helm repo add cbctf https://cbctf.0rays.club
helm repo update
helm show values cbctf/cbctf > values.yaml

修改 values.yaml:至少设置公开地址 cbctf.host、cbctf.gin.origins、Ingress 域名、StorageClass、JWT 密钥和数据库密码。完整示例、外部数据库及持久化说明见 Helm 部署。

helm upgrade --install cbctf cbctf/cbctf \
  -n cbctf --create-namespace -f values.yaml --wait --timeout 10m
kubectl get pods,pvc,svc,ingress -n cbctf
kubectl logs -n cbctf deployment/cbctf

如使用自行打包的 Chart 和镜像,请确认二者版本匹配,并在 values 中指定镜像地址与版本。

3. 首次登录

首次初始化数据库且 admin 分组没有用户时,日志会输出初始凭据:

kubectl logs -n cbctf deployment/cbctf | grep "Init Admin"

访问 https://你的域名/platform/#/login,使用 admin 和日志中的随机密码登录。在个人设置中修改密码,然后进入 /platform/#/admin/dashboard。

若通过端口转发临时检查页面:

kubectl port-forward -n cbctf svc/cbctf 8000:8000

直接打开 http://localhost:8000/platform/。根路径跳转、邮件链接和 OAuth 仍使用 host 设置的公开地址;端口转发不会自动修改它。

4. 完成第一场比赛

  1. 在「系统管理」核对公开地址、注册开关和默认注册分组;将默认分组设置为 RBAC 页面中实际的 user 分组 ID。0 不会自动分配用户组。
  2. 在「SMTP」配置发信账号并发送测试邮件。本地注册会发送验证邮件,参赛操作要求账号已验证。
  3. 在「题目管理」创建静态题,填写 static{hello},按需上传附件。
  4. 创建比赛,设置开始/结束时间、Flag 前缀和队伍人数。
  5. 在比赛管理的「题目」页添加题目,设置分数并取消题目隐藏;确认比赛本身也已公开。
  6. 用普通选手账号验证邮箱、创建队伍,待比赛开始后初始化题目并提交对应前缀的 Flag。

后续参见选手操作流程、比赛管理和题目管理。