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.
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.
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.
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)
Note that the ChiefExam was solely tested on Python 3.8 with the exact packages as denoted in `requirements.txt`. Unfortunately, the APIs of many packages change regularly, so simply changing the versions can cause a lot of mess. As newer Ubuntu versions are usually shipped with newer Python versions, I recommend to install Python 3.8 using `https://launchpad.net/%7Edeadsnakes/+archive/ubuntu/ppa` (see https://askubuntu.com/questions/682869/how-do-i-install-a-different-python-version-using-apt-get):
For isolate, you can follow the instruction guides on the website. In short, you have to execute the following commands in your bash:
```bash
```bash
sudo add-apt-repository ppa:deadsnakes/ppa
cd /tmp
sudo apt-get update
git clone https://github.com/ioi/isolate.git
sudo apt-get install python3.8
cd isolate
```
make isolate
sudo make 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:
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).
```bash
cd /tmp
## Setting up flask
git clone https://github.com/ioi/isolate.git
After downloading the application, you need to create a Python virtual environment and install the packages needed for ChiefExam:
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).
source env/bin/activate
pip install-r requirements.txt
## Setting up flask
```
After downloading the application, you need to create a Python virtual environment and install the packages needed for ChiefExam:
```bash
Now create a `.env` file in the root directory of ChiefExam and define the following variables: