HydroOJ 踩坑指南(2)服务器选择和部署

发布时间 2023-12-05 18:55:01作者: Bowen404

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/

部署完要做的事

  1. 配置管理员

    hydrooj cli user setSuperAdmin 2
    # 1 号默认是hydro, 用来发送系统消息啥的, 所以第一个注册的用户是 2 号
    
  2. 进入控制面板进行设置

    # 注意, Gravatar 国内无法访问, 可以把 avatar.gravatar_url 设置为 
    //dn-qiniu-avatar.qbox.me/avatar/
    
    # 其他控制面板项等有空专门写一篇
    
  3. 设置 favicon: 如何修改网站图标?

  4. 如果服务器在国内, 准备备案