Skip to main content

部署 Hydro


部署 Hydro

这里提供了几套方案帮助您建立自己的站点,请选择适合您的方案并继续。
搭建过程中如果遇到问题欢迎 联系我们 提问。

服务器选择

不同服务商提供的 CPU 主频不同,下方数据仅供参考。
最低服务器配置: CPU: 1核 内存: 2G。(约可允许 100 人使用)
请尽量不要使用突发性能实例或共享型实例,这可能会导致评测时间计量不准确

CentOS 8 已于 2021-12-31 停止支持open in new window,后续不会为安全漏洞发布补丁,建议重装为其他操作系统。

Tips

兼容大部分 Linux 发行版,推荐使用 Debian 12 / Debian 11 / Ubuntu 22.04 (教程多,成功率高,上手简单),不支持 CentOS 及其各种变种:

  • CentOS
  • Alibaba Cloud Linux
  • TencentOS
  • OpenCloudOS

如果你的机器内存较小(<=2GiB),请避免使用 Ubuntu 22.04,它会消耗较多的内存。建议使用 Debian 12 / Debian 11。
如果你有 Linux 运维经验,Hydro 同样支持在 Alpine Linux 上运行,Alpine Linux 系统启动后仅占用 ~100M 内存,是在低配置服务器上运行的更优方案。

Warning

虚拟机用户请注意:

  • Hydro 使用的数据库依赖于 CPU 的 avx 指令集以提高运行性能,大部分虚拟机软件默认没有启用 avx 指令集,请参照您使用的虚拟机软件说明。
  • 虚拟机由于非独占 CPU,会导致评测时间计量精度降低。
  • 由于虚拟机本身的数据保存机制,突然断电很容易导致数据库损坏无法读取,请务必定期备份数据库,有条件请购买 UPS 保证供电稳定。

Docker 用户请注意:

  • 使用安装脚本需要设置 USER 环境变量为 root
  • 需要使用 --privileged 参数启动容器,否则评测机无法运行。
  • 开发组不对 docker 部署提供技术支持。

部署

Tips

Hydro 需要使用以下端口: 80, 443, 2019, 8888, 5050, 27017,请确保这些端口空闲。
安装和安装后的所有操作均需要在 root 权限下进行!(sudo su
宝塔面板已知出现多次高危漏洞,为防止数据丢失,请不要在生产环境中使用!

运行下面的脚本,等待几分钟即可(建议复制防止敲错):

LANG=zh . <(curl https://hydro.ac/setup.sh)

Tips

如果有特殊需求,安装脚本支持一些可选的高级选项,以此方式调用: . <(curl https://hydro.ac/setup.sh) --foo --bar

  • --no-caddy 不配置安装反向代理,只监听8888端口
  • --judge 仅作为独立评测机安装

阿里云/腾讯云/华为云等等用户安装后如果不能访问 请百度搜索 xx云 放行80端口
脚本默认使用的为清华大学镜像。
安装完成后,从 http://服务器ip/ 访问网页端,注册一个账号,之后在终端中使用

hydrooj cli user setSuperAdmin 2

将首个注册用户设置为超级管理员。之后刷新页面,您应当能在上方导航栏看到控制面板入口。
进入控制面板,右侧系统设置,验证管理员密码后按需修改配置,注意 Server BaseURL 一项需要填写访问网站用的完整的 URL,以 / 结尾。(重要,务必正确填写,样例:https://hydro.ac/

系统安装后需要题库,可前往 https://hydro.ac/d/tk/p 免费专区进行下载,支持批量导入。 至此,基础功能安装已全部完成,另,如果你的服务部署在内网,且希望外网的用户可以访问,可以百度搜索 “端口映射” 相关教程。