Mini Docker Based System project contains 3 modules:
- Password module searches inside a mounted folder (theHarvester) containing multiple files and folders, and extract the password contained in one of them (we will search for the word password to find it).
- Analyze module analyzes the files as so:
- Looks for the number of files from each type (e.g. .py, .txt, etc...) in the mounted folder (theHarvester).
- Lists the top 10 files sorted by size.
- Controller module functions as a controller whose job is to execute the other modules and output the results (from both modules) to a JSON file.
All the containers runs in a docker compose environment.
Each container has its own network, generated by running the initialize_script.sh file and the communication between the modules is conducted through a message broker container (RabbitMQ), that knows all module's networks.
NOTE:
- All the modules are in different networks.
- The folders to analyze/search are available in the containers by volumes.
-
Clone the project
-
By writing the command below in the terminal we:
- create the networks for the modules.
- create Rabbitmq volume for Rabbitmq service.
- build the module's images:
sh initialize_script.sh
-
Run docker compose using the command:
docker compose up
Now the Compose environment is up, and the services run automatically. The output should appear in a JSON file inside the controller_module/output/ directory.