# Opaque ## Dependencies - Docker: https://www.docker.com/ - Python 3.5+ ## Setup 1. Create Docker swarm The generated computational workload is handled by a [Docker](https://docs.docker.com/) swarm. A swarm is a group of machines that are running Docker and joined into a cluster. It consists out of two different kinds of members, managers and workers. Currently it is not possible to specify a dedicated Docker host, instead Opaque expects the executing system to be a swarm manager of a swarm with at least one dedicated worker machine. The [swarm setup](https://docs.docker.com/engine/swarm/swarm-tutorial/) process is described best in the Docker documentation. 2. Create shared network storage 2. Get the source code and navigate into the code directory ``` git clone https://gitlab.ub.uni-bielefeld.de/sfb1288inf/opaque.git cd opaque ``` 2.1 Create a configuration file ``` touch .env # Account information of a mail account for sending emails to opaque users. echo "MAIL_USERNAME=opaque@example.com" >> .env echo "MAIL_PASSWORD=password" >> .env echo "MAIL_SERVER=smtp.example.com" >> .env echo "MAIL_PORT=587" >> .env echo "MAIL_USE_TLS=true" >> .env # A user registering with this email address will automatically promoted as an admin. echo "OPAQUE_ADMIN=admin.opaque@example.com" >> .env # Absolut path to an existing directory to save all opaque files. echo "OPAQUE_STORAGE=/opaque/storage" >> .env ``` 2.2 Create Python virtual environment, activate it and install the required python packages. ``` python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ```