Skip to content

Directory Design of DSP

Gaetano Perrone edited this page Dec 14, 2019 · 1 revision

DSP application manages more repositories. On installation two repositories are present in DSP application:

  • The local user repository that is created during installation. It’s empty

  • The official DSP_Projects repository that is dowloaded during installation

The local user repository can be shared with other users. Other users can import another user network security repository by using its remote URL.

The user can create and delete new labs only in his user local repository. The only option that the user can do with imported repository is to import a new lab inside his local repository (so he can understand how this lab is composed,

The labs in a repository use Docker Images, so each lab has docker-image dependencies. A top-level image of project’s directories is the following:

Lab_states_file is the only file contained in root directory. It contains the states of each lab (running, stopped or no_network). In this file each lab is identified by repository name and lab name.

As you can see, each repository is composed by different labs, but also other things. .data directory contains all the files that you can use when copy files into a container. Each repository has a .data directory. You can upload files inside your user repository .data directory, and when you create new labs you can retrieve these files in order to copy them during the copy operation when a lab is started (see Paragraph [sec:labstart] for more informations). Each repository has a labels file: you can associate labels to labs ( for example to distinguish between buffer overflow labs and web lab ). When you create a new lab in your local user repo you can select from the labels that you’ve created and that are present in repository directory. So, two labels file are present:

  • a global labels file in repository, that you can update by creating new labels;

  • a labels file inside each lab, that you can update by selecting the labels from the labels file repository.

Each lab has a description file, a network file, a labels file and a docker-compose.yml file. The description file is created when the user creates the lab for the first time. The network file is created when the user draw a network and save it. The docker-compose file is created by DSP through the network file information when the user saves the network description.