【玩转Lighthouse】搭建Hydro信息学在线评测系统

1.背景介绍

在教育部“双减”政策下,ACM、OI 等信息学赛事逐渐被越来越多的人重视。而搭建一个优秀的信息学在线评测系统,对于学校教学、团队训练都是非常重要的。

在本篇【玩转Lighthouse】系列教程中,我将为大家介绍如何使用腾讯云 Lighthouse 实例,快速搭建 Hydro 信息学在线评测系统。

1.1.Hydro 介绍

Hydro 是一个高效的信息学在线测评系统。

特点:易于部署(且提供安装脚本),轻量,功能强大且易于扩展。

官方文档地址:https://hydro.js.org

GitHub仓库:https://github.com/hydro-dev/Hydro

2.服务器购买

考虑到 Online Judge 的主要受众是学生,在这里我们选择腾讯云学生云服务器(购买传送门)。

选择离自己最近的地区

系统请选择 ubuntu 20.04 lts。

3.安装 Hydro

Hydro 部署方法有一键脚本、手动部署、docker 部署,在这里我们选择一键脚本。

如果您希望选择其他部署方式,可以 点击这里 查看文档。

点击实例名称进入控制台,开放服务器 80, 443, 8888 端口。

点击“登录”进入 ssh。

使用一键脚本安装 Hydro。

运行下面的脚本,等待几分钟即可:

代码语言:javascript
复制
LANG=zh bash <(curl https://hydro.ac/install.sh)

上面的脚本默认使用的为清华大学 tuna 镜像,使用海外服务器的用户,可以运行下面的脚本安装:

代码语言:javascript
复制
LANG=zh MIRROR=official bash <(curl https://hydro.ac/install.sh)

4.初始化

使用 您的ip:8888 访问 Hydro,并注册账号,第一个注册用户 UID 应该为 2。

在终端以 root 用户身份运行以下命令将用户设置为管理员:

代码语言:javascript
复制
hydrooj cli user setSuperAdmin 2

刷新页面,进入控制面板 -> 系统设置,填写如下内容:

  • Server Name: 网站名称。
  • Server BaseURL: 网站完整的 URL,需要以 / 结尾。
  • IP Header: 若使用反向代理(含 Cloudflare 等 CDN 服务),请设置为其 IP Header(通常为 x-forwarded-forx-real-ip,小写)。在不使用反向代理的情况下请勿配置该项,否则用户将可以伪造 IP 。
  • Default display language: 网站默认语言。

5.参考资料

  1. Hydro Docs