Vijos 由两部分组成:Web 服务端 和 评测机。本文将完整地介绍从源码部署安装 Vijos 服务端和评测机的步骤。
服务端和评测机不推荐运行在同一系统中,这会降低评测结果的准确度并且可能有潜在的安全问题。
服务端能运行在 Windows、Linux、MacOS 操作系统中,但我们推荐使用 Linux 操作系统。
评测机能安全地运行在 Windows 和 Linux 操作系统中,但我们推荐使用 Linux 操作系统。
可以将评测机部署在多个系统中,这将横向地扩展评测能力。
服务端需要部署在用户能网络访问到的环境中。评测机需要能访问到服务端,但用户不需要能访问到评测机。
一个典型的场景是,服务端拥有一个公网 IP 可以被用户访问,而评测机位于 NAT 后端,能访问到服务端但不需要有公网 IP。
我们推荐使用 Ubuntu 16.04 (Xenial) 作为 Web 服务端的操作系统。
Vijos 依赖于以下软件工作:
本章将按照不同操作系统给出使用包管理工具的安装依赖软件的步骤。
TODO
TODO
以下部署基于 Homebrew 包管理器,请在继续前先确保已安装 Homebrew。
brew install python3 rabbitmq mongodb node
请分别访问这些软件的官方网站下载安装包。
您可以使用 git 方式下载 Vijos 服务端 源码,或直接在 GitHub 网页中点击 Download 按钮下载。
对于 git 方式:
git clone https://github.com/vijos/vj4
# 在 vj4 目录下:
python3 -m pip install -r requirements.txt
# 在 vj4 目录下:
npm install
Vijos 使用 MaxMind GeoLite City DB 数据库显示 IP 地址位置,这个数据库没有内置在源码中,若您要使用这个功能需要单独下载数据库:
# 在 vj4 目录下:
curl "http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz" | gunzip -c > GeoLite2-City.mmdb
# 在 vj4 目录下:
npm run build
至此,您已安装完毕,接下来可以启动 Vijos 服务端(运行在 8888 端口):
# 在 vj4 目录下:
python3 -m vj4.server --debug --listen http://0.0.0.0:8888
TODO