教你用 hydro 部署一个 OJ 并使用它

教你用 hydro 部署一个 OJ 并使用它

教你用 hydro 部署一个 OJ 并使用它

2026年8月19日NexusOJ0 条互动约 6 分钟
AI摘要
AI摘要 此内容由AI根据正文内容自动生成
这是一份从零搭建 Hydro OJ 的可爱指南~先买服务器并 SSH 连接,跑一段 setup 脚本就能部署;之后创建题目时记得改评测配置,比赛、训练和权限都在后台轻松管理。还贴心地讲了邮件验证、服务器信息、讨论板块和页脚 Logo 等设置,最后附赠插件清单,适合想快速开站的你。
标签:Hydro OJOJ部署服务器配置竞赛平台

0. 准备工作

买服务器

推荐以下厂商

  1. 腾讯云 
  2. 雨云
  3. 阿里云

1. 部署

ssh 连接上你的服务器,指令如下:

ssh root@你的服务器ip

首次连接请在下一个需要输入的地方输入yes

然后输入你的服务器密码

最后运行以下命令:

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

在浏览器网址栏输入你的服务器ip,若打开成功,则部署完成。

如果部署失败,自查:

  1. 是否放行了端口80, 443, 2019, 8888, 5050, 27017;
  2. 是否误将http写成了https

部署完成后注册账号,可以通过如下方式给予大管理:

hydrooj cli user setSuperAdmin +UID

2. 使用

2.1 题目

用过洛谷的都知道题目怎么创建吧。

hydro题目创建方式和洛谷类似,唯一的不同就是要写评测配置文件(系统给你写好了你改就行)

一个例子如下:

type: default #传统题
subtasks: #子任务
- score: 100 #分值
  if: []
  id: 1 
  type: sum #计算分数的方式
  cases: #测试点
  - input: 1.in
    output: 1.out
  - input: 2.in
    output: 2.out
  - input: 3.in
    output: 3.out
  - input: 4.in
    output: 4.out
  - input: 5.in
    output: 5.out
  - input: 6.in
    output: 6.out
  - input: 7.in
    output: 7.out
  - input: 8.in
    output: 8.out
  - input: 9.in
    output: 9.out
  - input: 10.in
    output: 10.out

其余题型可以去看hydro官方文档

2.2 比赛

这个就不说了,相信你能看得懂页面,这里赠送一个比赛公告模板:

### 赛前须知

1. **关于AI生成代码的声明**  
   比赛中禁止使用AI生成的代码(包括但不限于  ChatGPT  等生成式大模型、 GitHubCopilot  等辅助工具),违者按作弊处理。
2. **关于作弊的声明**  
	比赛中不允许使用任何作弊手段,包括但不限于借鉴AC代码,查阅测试点,抄袭他人代码,或者知道比赛做法或思路者参加比赛。如果您违反规定,那您会被按作弊处理。
3. **赛前说明**  
   本场比赛采用  IOI 赛制,比赛期间可以实时查看评测结果。请务必仔细检查代码后再提交,系统将以最高分一次提交的代码作为最终评分依据。
4. **作弊处理**  
   如果您某一道题作弊了,您的当题会被取消成绩并且您会被禁赛 14 天,多次作弊会被封禁。
---
### 赛时公告

---

### 比赛公告

---

### 题目信息

| 题号 | 题目名称 | 内存限制 | 时间限制 | 题型 |
| - | - | - | - | - |
| | | | | |

2.3 训练

你肯定能看懂的。

2.4 权限

去管理域->管理角色里面创建个角色,然后就可以去管理权限里面选择啦!

3. 系统设置

3.1 邮件验证

以 qq 邮箱为例

smtp.user 和 smtp.from 写你的邮箱地址。

smtp.pass 去QQ邮箱->账号与安全->申请SMTP里面搞一个代码填上。

smtp.host 写 smtp.qq.com。

smtp.port 写 465。

把注册需要邮件验证和SSL勾上,完工!

3.2 服务器设置

server.name 填OJ名字。

server.url 写域名/服务器ip,注意要加https/http。

3.3 基础设置

discussion.nodes 写讨论节点,给出如下示例:

官方: #类型
  - pic: station #随便写英文字母和数字
    name: 站务版 #板块名称
  - pic: study
    name: 学术版
  - pic: other
    name: 灌水区

problem.categories 写题目标签,按照他的默认格式往下写即可。

ui-default.footer_extra_html 是页脚,用html代码写即可。

ui-default.nav_logo_dark 是左上角的 OJ logo。
ui-default.about 是 OJ 的关于,在/wiki/about 这里看

你已经完成了所有设置!

4. 插件

声明:此部分可以不要

官方插件看这里

本人目前提供以下插件(非开源的要收费):

  • 等级分
  • 硬币
  • 徽章
  • 用户名颜色
  • 用户管理
  • 工单
  • 陶片放逐
  • 奖项认证
  • 一些小组件(如批量发放消息)
  • 修改网页图标
  • 打卡
  • 倒计时
  • AI助手(对服务器要求较高)

示例OJ

官方文档

点点赞赏,手留余香

0

© 版权声明
THE END
喜欢就支持一下吧
点赞4898 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容