JXOJ部署日志
前些日子协助cyc、llf两位奆老部署了JXOJ,为方便日后维护我校OJ的同学,写篇日志做记录以日后查看。
一、准备:
在尝试了多个不同OJ之后,我们最终选择了Universal Online Judge 的这个社区版
我们使用的系统是此时较新的ubuntu-18.04-desktop-amd64
。
二、步骤:
安装过程基本上完全按照UOJ部署指北中的内容一步步进行,对于一个崭新的Ubuntu,更换aliyun软件源
,在终端中执行:
sudo su
apt update
apt upgrade
apt install vim
apt install curl
apt install git
apt install docker.io
其中docker
:"它是一个容器技术,暂且可以理解成虚拟机。"(引自UOJ部署指北)UOJ就是运行在其虚拟出的一个Ubuntu系统环境下。
接着便是在docker中安装UOJ。可以将社区版的源代码clone
下来安装(然而没有必要这样做),例如:
git clone https://github.com/UniversalOJ/UOJ-System.git
更为便捷的方法是,直接下载docker提供的公共镜像,因为UOJ已经在docker的服务器上发布。
sudo docker pull universaloj/uoj-system:stable
然后就会开始下载。
下载下来是镜像,我们需要让docker创建一个新的虚拟机来运行UOJ。值得一提的是,运行的同时需要指出开放的端口,部署指北中的代码只开了两个,而为了方便管理数据,我们希望增加供Kodexplorer
和PhpMyAdmin
使用的端口。80端口用于访问网页端,3690是传题用的,剩下两个分别是Kodexplorer
和PhpMyAdmin
。完整命令是:
sudo docker run --name uoj -dit -p 80:80 -p 3690:3690 -p 1926:1926 -p 2333:2333 --cap-add SYS_PTRACE uoj
至此,UOJ已经默默地运行起来了。在局域网内任何一台计算机访问刚刚那台服务器的ip地址,就能访问UOJ网页端。管理员用户名为root
,密码为uojuoj
,可自行更改。安装过程也就结束了。