A running installation needs Python3, Nginx (also Apache or other webservers which works as a proxy are possible), Postgresql and Redis. Other databases have not been tested, so their usage is on your own risk. Furthermore, a Python and Java runtime are required for automatic and programming task evaluation. Also, the sandbox [isolate](https://github.com/ioi/isolate) is required for executing untrusted code. Due isolate you can only use a modern Linux distribution (tested on Debian, Ubuntu and Manjaro) as operating system.
## Prerequisites
A running instance of ChiefExam requires **Python3**, **Postgresql**, and **Redis**. Other databases have not been tested, so their usage is at your own risk. Furthermore, a **Python & Java runtime** are required for automatic programming task evaluation. The code execution sandbox **[isolate](https://github.com/ioi/isolate)** is required for executing this untrusted code. Due to isolate, you can only use a modern Linux distribution (tested on Debian, Ubuntu, and Manjaro) as operating system.
It is recommended to use **Nginx** in production to serve static content. Other webservers such as **Apache** which work as a proxy are also feasable.
The commands below are simply an example of how you might install these dependencies. Please consult with your operating system's package manager to determine the correct packages to install.
## Setting up [isolate](https://github.com/ioi/isolate)
For isolate, you can follow the instruction guides on the website. In short, you have to execute the following commands in your bash:
```bash
cd /tmp
git clone https://github.com/ioi/isolate.git
cd isolate
make isolate
...
...
@@ -11,10 +27,8 @@ sudo make install
```
The building needs a modern version `gcc`. Instead of `make isolate` you can also consider to user `make`, which also creates a documentation using `a2x` (this software has then to be installed on your operating system, too).
## Setting up flask
After downloading the application, you should create a virtual environment and install the packets needed for ChiefExam:
After downloading the application, you need to create a Python virtual environment and install the packages needed for ChiefExam: