Skip to content

Commit

Permalink
add onsite contest guide
Browse files Browse the repository at this point in the history
  • Loading branch information
undefined-moe committed Jul 13, 2024
1 parent 524fa64 commit ef227e1
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 0 deletions.
1 change: 1 addition & 0 deletions .vuepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ export default defineUserConfig({
'/docs/system/cdn',
'/docs/system/database',
'/docs/system/frontend-modify',
'/docs/system/onsite-contest',
'/docs/system/FAQ',
]
},
Expand Down
72 changes: 72 additions & 0 deletions docs/system/onsite-contest.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# 现场赛指南

本指南适用于希望进行线下赛,在内网部署评测设施的用户。
以下日期排期仅供参考,具体可根据实际情况自行安排。

本文部分内容同样适用于 DOMJudge。

## Day -1 准备工作

请检查下述列表是否均按需求配置完成:

关于选手机设置:

- 选手机预装了 Linux 系统,并有对应的开发环境。
- 推荐使用 CAICPC 作为安装镜像,直接选择第二项启动选项即可一键安装。
- 选手机均连接到内网,且选手机之间无法互相访问,但可以访问公网服务器(若使用的路由器不支持该功能可以在选手机使用 iptables 拦截其他流量)。
- 可使用 DHCP 配置选手机网络,但需保证地址租期足够长(推荐七天)。

关于服务器设置:

- 服务器使用固定 IP,并可以访问内网中任何设备(含选手机);
- 服务器安装了较新内核的 Linux 系统。已知旧版本的内核在高负载的情况下可能出现锁死的问题 [详情](https://blog.taoky.moe/2023-12-02/icpc-2023-hefei-judgehosts-scale.html)

关于 CAICPC 镜像:

- 本镜像基于标准 ICPC 镜像修改而来。
- 添加了状态上报,用于统一监测服务器状态;
- 支持调用 VLC 截取屏幕和摄像头流供 live 模块使用;
- 支持批量下发管理命令(一键锁屏/解锁/重启/显示座位号等等);

## Day 0 准备工作

- 使用安装脚本安装 Hydro。
- 导入所需的比赛用户。
- 安装 `@hydrooj/onsite-toolkit` 插件。
- 参照 `https://github.com/hydro-dev/xcpc-tools` 说明安装独立模块。
- 由志愿者打开所有选手机桌面上的 seat.txt 文件,填入座位号,保存,后台所见座位号应当同步刷新;
- 如果需要根据座位号自动登录,此时导出 IP/队伍 表,在 onsite-toolkit 设置中填入。
- 准备完成后,批量修改选手机为强密码!!!

// TODO: tools 配置

关于打印:

- 打印功能在 `xcpc-tools` 中配置。
- 在 server 端新建一个打印机 token,在赛场旁摆放一台电脑,安装对应的打印机驱动,以 client 模式运行 `xcpc-tools`,填入 token,即可连接。
- `xcpc-tools` 会自动抓取打印任务自动打印,默认每个文件最多打印五页,队伍名称和座位号会在纸张顶部。

关于气球:

- 气球通常由小票机进行打印。每当有队伍通过题目时,会打印一张小票;
- 小票内含队伍名,座位号,气球颜色,该队伍当前的所有气球颜色等信息,志愿者拿到小票后根据其上内容分发气球。

关于自动登录:

启用后,在地址列表的用户均会自动登录上指定的对应账户,用户不可重新登录,不可登出,不可在其他 IP 登录。
操作前请确认列表中不含管理员账号和管理员所使用的机器 IP !

可选:

- 安装 grafana 和 netdata 用于监测服务器运行状态 ~~以及给领导展示~~

## Day 1 热身赛

热身赛通常使用至少一道可以反复提交爆破的题目,引导选手大量提交,测试服务器负载情况。

## Day 2 正式赛

- 如果需要发气球请提早给气球打气(通常比赛的前一小时气球组会非常忙)
- 记得给打印机补纸,小票机同理。

// TODO: 滚榜设置

0 comments on commit ef227e1

Please sign in to comment.