sudo apt-get update && sudo apt-get install -y vim curl git
-
安装需要的包
sudo apt-get update
-
安装依赖包
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
-
添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
设置远程仓库
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
-
安装 Docker-CE
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
-
验证是否成功
sudo docker run hello-world
-
下载
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
-
授权
sudo chmod +x /usr/local/bin/docker-compose
Windows 下的安装仅供体验,勿在生产环境使用。如有必要,请使用虚拟机安装 Linux 并将 OJ 安装在其中。
以下教程仅适用于 Win10 x64 下的 PowerShell
- 安装 Windows 的 Docker 工具
- 右击右下角 Docker 图标,选择 Settings 进行设置
- 选择
Shared Drives
菜单,之后勾选你想安装 OJ 的盘符位置(例如勾选D盘),点击Apply
- 输入 Windows 的账号密码进行文件共享
- 安装
Python
、pip
、git
、docker-compose
,安装方法自行搜索。
-
选择好需要安装的位置,运行下面命令
git clone https://gitee.com/himitzh0730/hoj-deploy.git && cd hoj-deploy
-
单机部署(建议服务器内存2G以上)
注意:以下操作建议试用,配置大部分是默认的,实际运行请修改
docker-compose.yml
文件的配置cd standAlone && docker-compose up -d
根据网速情况,大约十到二十分钟即可安装完毕,全程无需人工干预。
等待命令执行完毕后,查看容器状态
docker ps -a
大概初始化启动需要一至两分钟,当看到所有的容器的状态status都为
UP
或healthy
就代表 OJ 已经启动成功。更多自定义配置请查看**/standAlone/.env**的文件,或者/src下各组件的详情说明
以下默认参数说明
- 默认超级管理员账号与密码:root / hoj123456
- 默认redis密码:hoj123456
- 默认mysql账号与密码:root / hoj123456
- 默认nacos管理员账号与密码:root / hoj123456
- 默认不开启https,开启需修改文件同时提供证书文件
- 判题并发数默认:cpu核心数*2
-
默认开启vj判题,需要手动修改添加账号与密码,如果不添加不能vj判题!
- vj判题并发数默认:cpu核心数*4
登录root账号到后台查看服务状态以及到
http://ip/admin/conf
修改服务配置!注意:网站的注册及用户账号相关操作需要邮件系统,所以请在系统配置中配置自己的邮件服务。
开启使用例如QQ邮箱提供的POP3/SMTP服务:
Host: smtp.qq.com Port: 465 Username: qq邮箱账号 Password: 开启SMTP服务后生成的随机授权码
-
分布式部署(默认开启rsync数据同步)
-
主服务启动,默认不提供判题服务,请修改该启动文件配置
cd distributed/main vim .env # 请根据文件内注释提示修改
配置修改保存后,在
docker-compose.yml
当前路径下启动该服务docker-compose up -d
-
判题服务启动,请修改该启动文件配置
cd distributed/judgeserver vim .env # 请根据文件内注释提示修改
配置修改保存后,在
docker-compose.yml
当前路径下启动该服务docker-compose up -d
两个服务都启动完成,在浏览器输入主服务ip或域名进行访问,登录root账号到后台查看服务状态以及到
http://ip/admin/conf
修改服务配置! -
如果需要开启https
-
单机:
提供server.crt和server.key证书与密钥文件放置
/standAlone
目录下,与docker-compose.yml
和.env
文件放置同一位置,然后修改docker-compose.yml
中的hoj-frontend的配置 -
分布式:提供server.crt和server.key证书与密钥文件放置
/distributed/main目录下,与
docker-compose.yml和
.env文件放置同一位置,然后修改
docker-compose.yml`中的hoj-frontend的配置
hoj-frontend:
image: registry.cn-shenzhen.aliyuncs.com/hcode/hoj_frontend
container_name: hoj-frontend
restart: always
# 开启https,请提供证书
volumes:
- ./server.crt:/etc/nginx/etc/crt/server.crt
- ./server.key:/etc/nginx/etc/crt/server.key
environment:
- SERVER_NAME=localhost # 提供你的域名!!!!
- BACKEND_SERVER_HOST=${BACKEND_HOST:-172.20.0.5} # backend后端服务地址
- BACKEND_SERVER_PORT=${BACKEND_PORT:-6688} # backend后端服务端口号
- USE_HTTPS=true # 使用https请设置为true
ports:
- "80:80"
- "443:443"
networks:
hoj-network:
ipv4_address: 172.20.0.6
在线文档:HOJ文档 https://docs.hdoi.cn
在线demo:https://www.hcode.top