EOJ
克隆EOJ
1 | git clone https://github.com/ultmaster/eoj3.git |
然后执行1
sh install.sh
安装依赖
1 | pip3 install -r requirements.txt |
如果出现以下情况Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-twvou5gt/msqlclient/
执行以下命令1
sudo apt-get install libmysqld-dev
安装npm
1 | sudo apt-get install npm |
创建超级用户
1 | pip install django |
迁移
1 | python3 manage.py collectstatic |
运行前端
运行前先安装一下redis-server
。1
sudo apt-get install redis-server
此时,可以运行server了。1
python3 manage.py runserver 0.0.0.0:80
此时访问前端,发现页面布局有问题,是因为缺少一个 css 文件,执行下面命令即可。1
wget --no-check-certificate -P ./static/css https://acm.ecnu.edu.cn/static/css/app.min.css
Ejudge
克隆Ejudge
随便找个目录,进行以下操作。1
git clone https://github.com/ultmaster/ejudge.git
初始化
1 | cd ejudge |
安装docker
1 | sudo apt-get install -y docker.io |
搭建镜像
修改ejudge/run/defaultspj/LANG
,将LANG
文件的回车去掉。1
sudo docker build .
运行容器
1 | sudo docker run -d -p 5000:5000 -v /path/to/your/run/:/ejudge/run <imageName> |
/path/to/your/run/:/ejudge/run
要修改成自己的ejudge/run
的路径。
docker images
进行查看,也可以是<image ID>
。
此时登录EOJ,进入后台->Servers,点击Add Server。1
2
3
4名字: 随便
IP:Address: 127.0.0.1
端口号: 5000
秘钥: naive
点击确定,并把这个Server设为Enable。
判题
1 | python3 manage.py runserver 0.0.0.0:80 & python3 manage.py qcluster |
其他
发现非superuser查看题目显示EOJ is closed
,此时打开utils/site_settings.py
,找到is_site_closed
函数,把return True
改为return False
即可。
发现一个问题,服务器重启后题目要重新发布,否则无法判题。
后记
以上,EOJ搭建完毕,后续可能有一些其他的小问题,欢迎留言。