Hydro 官方的高级域其实不错, 还支持自定义 logo 和域名, 功能也全, 但是用了自定义域名, 很多的题包括洛谷的就没法用了, 而且很多项没法自定义, 偶尔会响应时间过长, 题目数据不在本地等等, 最后发现, 还不如自己配置个服务器, 这样更有折腾的成就感.
服务器的选择
可以用阿里云 / 腾讯云 / 华为云.
用的人不多, 1 核 1G 就可以了 (用 Debian, 不要用 Ubuntu 因为内存不够)
如果不想麻烦备案, 可以选香港或者海外服务器, 还能便宜很多, 但是可能会有延迟较大以及不定期无法访问的 debuff.
稍微好点的配置, 推荐 cpu:内存为 1:2, 如 1 核 2G, 或者 2 核 4G…
不要被新客价骗, 尽量买多年的, 比如 3-5 年, 不然续费的时候会变回原价, 肉疼到死.
带宽 1-5M 就够了, 再多会很贵, 静态资源可以用 cdn 加速.
数据盘最好和系统盘分开, 方便后期扩容和备份迁移
系统:
推荐系统: Debian 12 / Debian 11 / Ubuntu 22.04
禁用系统: CentOS / Alibaba Cloud Linux / TencentOS / OpenCloudOS
部署
1. 直接使用脚本
运行下面的脚本,等待几分钟即可(建议复制防止敲错):
LANG=zh . <(curl https://hydro.ac/setup.sh)
注意保存好数据库的用户名和密码, 之后要用. 如果找不到了也没事, 可以使用 cat ~/.hydro/config.json
查看, 密码格式是一个 username:password@ip:port
的东西, 如 "{uri": "mongodb://hydro: 64M*****GXB@127.0.0.1:27017/hydro"}
2. 二开部署
参见 https://docs.hydro.ac/dev/
部署完要做的事
配置管理员
hydrooj cli user setSuperAdmin 2
# 1 号默认是hydro, 用来发送系统消息啥的, 所以第一个注册的用户是 2 号
进入控制面板进行设置
# 注意, Gravatar 国内无法访问, 可以把 avatar.gravatar_url 设置为
//dn-qiniu-avatar.qbox.me/avatar/
# 其他控制面板项等有空专门写一篇
设置 favicon: 如何修改网站图标?
如果服务器在国内, 准备备案