搭建vijos(vj4)

搭建vijos(vj4)

搭建vijos(vj4)

Yemaster

·

2020-03-21 14:17:17

·

个人记录

目录

前言

准备

安装必备软件

开始安装

首先克隆vj4和jd4

安装vj4

安装jd4

后续配置

配置smtp

前言

Vijos 全称为 Velocious Informatics Judge Online System (高效信息学在线评测系统),简写为 VJ,于 2005 年建立。Vijos 致力于为用户提供安全、完善、开放的在线评测和题目交流等服务。Vijos 拥有一套官方题库和与之相关的配套服务,当您直接访问 Vijos 时即为访问官方题库。Vijos 还提供在线评测托管功能(Online Judge As A Service),被称作为域(Domain),用户可在 Vijos 上快速建立起自己的在线评测系统,拥有独立的访问地址、独立的题库和相关的配套服务。

Vijos 由服务端和评测机组成,均在 GitHub 上开源,因此您还可以在自己的服务器上部署 Vijos 提供在线评测服务。

Vijos 由非营利性组织 Vijos Foundation 管理和运营。

由于vijos好看,又开源,所以打算折腾一下,搞一个vijos

准备

系统:Ubuntu 18.04 LTS

安装必备软件

# 安装python

sudo apt install python3 python3-pip python3-dev

# 安装mongodb

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

sudo apt install gnupg

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

sudo apt update

sudo apt install -y mongodb-org

sudo systemctl start mongod

# 安装nodejs

sudo apt install nodejs npm

sudo npm install -f n

sudo n stable

# 安装rabbitMQ

sudo apt-get install erlang-nox

wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

sudo apt update

sudo apt-get install rabbitmq-server

# 安装git

sudo apt install git

开始安装

1. 首先克隆vj4和jd4

git clone https://github.com/vijos/vj4.git

git clone https://github.com/vijos/jd4.git

2. 安装vj4

cd vj4

python3 -m pip install -r requirements.txt

sudo npm install

IP Geo-Location这东西装不装无所谓,装比较麻烦,反正我没装

sudo npm run build

python3 -m vj4.server --debug --listen http://0.0.0.0:8888

这个时候浏览器输入http://ip:8888就能访问了。

创建管理员账号

python3 -m vj4.model.user add -1 yemaster 12345 [email protected] # 创建一个id=-1,用户名=yemaster,密码=12345,邮箱[email protected]的用户

python3 -m vj4.model.user set_superadmin -1 #将id=-1的用户设为管理员

新建一道题目

python -m vj4.model.adaptor.problem add system "题目标题" "题目内容" -1 1000

3. 安装jd4

先新建一个judge用户

python3 -m vj4.model.user add -2 judge 123456 [email protected]

给他judge权限

python3 -m vj4.model.user set_judge -2

安装docker

sudo apt -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo apt update

sudo apt -y install docker-ce docker-ce-cli containerd.io

配置文件内容

cd ~/jd4

vim examples/config.yaml # 服务器地址最好填真实ip,我之前填的是0.0.0.0,docker就一直连不上。下面的就是judge用户的配置信息

mkdir -p ~/.config/jd4

cp examples/config.yaml ~/.config/jd4/

ln -sr examples/langs.yaml ~/.config/jd4/

build cython

python3 setup.py build_ext --inplace

运行docker容器

docker run --privileged \

-v ~/.config/jd4/config.yaml:/root/.config/jd4/config.yaml \

-v ~/.cache/jd4:/root/.cache/jd4 \

vijos/jd4

然后评测鸡就正常运行了。

后续配置

1. 配置smtp

不配置smtp就注册不了。

cd vj4 #进入vj4

cd vj4 #确实有两个

cd service

vim mailer.py

中间有配置smtp服务器的代码

options.define('smtp_host', default='', help='SMTP server')

options.define('smtp_port', default=465, help='SMTP server')

options.define('smtp_user', default='', help='SMTP username')

options.define('smtp_password', default='', help='SMTP password')

options.define('mail_from', default='', help='Mail from')

正常人一般都能看懂。

smtp_host就是smtp的服务器地址。网易的就是smtp.163.com

smtp_port就是smtp服务器端口,基本都是465

smtp_user就是smtp授权的用户

smtp_password就是授权密码

mail_from就是发件人邮箱

2.配置url

cd vj4 #进入vj4

cd vj4

vim app.py

options.define('url_prefix', default='这里改成你的地址', help='URL prefix.')

3.配置OJ名字

cd vj4 #进入vj4

cd vj4

cd handler

vim base.py

cd vj4

cd vj4

cd model

vim builtin.py

找到所有的Vijos,替换成自己的即可

待续。。。

相关科技文章

ifconfig命令安装及使用
365bet体育在线导航

ifconfig命令安装及使用

⌚ 09-02 👁️ 9199
PS调节图片:拉伸、变形
365bet体育在线导航

PS调节图片:拉伸、变形

⌚ 07-23 👁️ 5553
诛仙手游双阵灵怎么搭配?诛仙手游双阵灵搭配攻略
365bet体育在线导航

诛仙手游双阵灵怎么搭配?诛仙手游双阵灵搭配攻略

⌚ 08-04 👁️ 5582
佳能相机6D如何测光?
正规365彩票平台app下载

佳能相机6D如何测光?

⌚ 07-24 👁️ 6665
图片变色
外勤365下载安装

图片变色

⌚ 08-22 👁️ 7153
三星洗衣机质量怎么样 三星洗衣机怎么用【详解】
外勤365下载安装

三星洗衣机质量怎么样 三星洗衣机怎么用【详解】

⌚ 07-24 👁️ 8079

合作伙伴