diff --git a/.vuepress/config.ts b/.vuepress/config.ts index bf1c095a..6ade1960 100644 --- a/.vuepress/config.ts +++ b/.vuepress/config.ts @@ -94,6 +94,7 @@ export default defineUserConfig({ '/docs/system/cdn', '/docs/system/database', '/docs/system/frontend-modify', + '/docs/system/onsite-contest', '/docs/system/FAQ', ] }, diff --git a/docs/system/onsite-contest.md b/docs/system/onsite-contest.md new file mode 100644 index 00000000..1a89f954 --- /dev/null +++ b/docs/system/onsite-contest.md @@ -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: 滚榜设置