obijudge

command module
v0.0.0-...-0bde42d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2018 License: AGPL-3.0 Imports: 43 Imported by: 0

README

OBIJudge

OBIJudge is a programming competitions judge designed to be run in the competitor's machine. It features a sandboxing method based on IOI's isolate, using Linux's Cgroups, and therefore needs root permissions to work.

Screenshot

Installation instructions

You can simply clone the repository inside your GOPATH and run the following:

go get .
yarn install
make static
make generate-statics-sources # if you want static assets to be bound to the binary
make reference # if you want to be able to access programming language reference inside the web interface
make build

A binary will be created in the folder. Usage instructions below assume this binary is called OBIJudge.

Usage instructions

OBIJudge is programmed to run program executions on the /obijudge folder of your system. Make sure that such folder is not used for other things.

Use ./OBIJudge builddb to build a .zip file containing the contest data. Usage instructions are available by calling ./OBIJudge builddb -h.

Use ./OBIJudge run to run an http server and run the contest. Usage instructions are available by calling ./OBIJudge run -h.

To build the sample contest database and run the web interface:

./OBIJudge builddb
sudo ./OBIJudge run

Then access localhost in your web browser, and use the contest database file just created and the password used to access the contest.

Documentation

Overview

This is a Go port of github.com/ioi/isolate (with some personal changes) "A sandbox for securely executing untrusted programs." Works by using Linux kernel features like Control Groups and Namespaces

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL