一.搭建oj
1.打开终端
2.输入sudo -i
3.直接输入密码回车就好了,因为在终端用户输入密码时是默认不显示的.
4.apt-get update && apt-get install -y vim python-pip curl git
5.curl -sSL https://get.daocloud.io/docker | sh
6.pip install docker-compose
7.git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git && cd OnlineJudgeDeploy
8.docker-compose up -d // 后台启动并运行容器
9.如果是虚拟机的话,在本地linux的浏览器中打开http://127.0.0.1:80即可访问了,但是外网还未打通,无法访问。如果是云服务器,就可以直接可以访问服务器公网ip即可外网访问了。
常见问题
问题一
问题二.如果是13的话,解决办法:
sudo -i
输入密码,再输入刚才的指令就好了
二.功能设置
1.管理员身份设置
安装过程中自动添加的超级管理员用户名为 root,密码为 rootroot, 请务必及时修改密码。普通用户注册之后,可以超级管理员给管理员身份。
2.在超级管理员的management中可以创建题目,创建比赛,自定义OJ名(management - General - System Config)
- 创建题目
- 测试样例以in,out文件形式。
- 只能命名为1,2,3,分别表示三个测试数据。
- 最后全部选中in,out文件压缩,上传压缩文件(.zip)。
(注:只能全部选中压缩,不能放入文件夹后再压缩或以其他形式压缩。)
三.外网访问
- 云服务器
直接在云服务器管理控制台找到公网ip直接访问即可。
如果不能访问得话,我们浏览器访问公网时,用的时http(80)端口,云服务器上还没加。解决方法
- 虚拟机
1.访问网址
2.下载linux64位压缩包于本电脑并解压
3.将解压文件拉入linux系统
4.注册网站账户,找到你的token
5.更改文件中的ngrok.conf中的token相应位置和将你的域名前缀换成一串自定义英文字母
6.右键选中文件夹,选择在终端打开文件夹,输入./ngrok -config=ngrok.conf -subdomain zrcoj(域名前缀) 80回车,即可在外网访问网站了,网址即为这个。两个都试试,应该都可以访问的。
(在每次重新打通外网时,第一步应该先看一下,80端口是否被占用,如被占用kill进程后再打通)
sudo -i
cd OnlineJudgedeploy
docker-compose up -d
如遇到下面问题根据解决办法解决后再
docker-compose up -d
再打通
当遇到这个问题时
告诉你端口被占用了解决方法
完了之后在跑docker-compose up -d即可,再用小米球打通外网即可外网访问了。
四.oj升级维护
在项目克隆目录下执行 -> onlinejudgedeploy/
git pull // 取回远程主机某个分支的更新代码
docker compose pull // 创建新增镜像 - 根据代码下载镜像
docker compose up -d // 启动应用所需所有容器
domjudge搭建教程
(注:domjudge以ubuntu系统搭建的评测系统为区域赛OJ)
其他开源OJ