Skip to main content

Overview

Vault offers flexible installation options to suit your needs. You can download the entire collection of projects at once, or selectively download only the specific projects you need using the gitfolder.py utility script.
Choose the installation method that best fits your use case. Full clone includes all projects, while selective download saves bandwidth and disk space.

Download All Projects

To download the complete Vault repository with all projects, use a shallow Git clone. This method downloads the entire collection efficiently.
1

Run the Git clone command

Execute the following command in your terminal:
git clone --depth=1 https://github.com/maravento/vault.git
The --depth=1 flag creates a shallow clone, downloading only the latest commit to save bandwidth and time.
2

Navigate to the vault directory

cd vault
3

Explore available projects

List all available projects:
ls -la
You’ll see directories for all Vault projects including blackshield, blackusb, ddos, dextroyer, dofi, gateproxy, itsm, netscan, proxymon, scripts, trek, uniopos, and winzenity.

Download Specific Projects

If you only need specific projects from the Vault collection, use the gitfolder.py Python script to download individual folders from the repository. This is useful when you don’t need the entire collection.

Prerequisites

Ensure Python 3 is installed and configured on your system.
sudo apt update
sudo apt install -y python-is-python3 python3-pip

Install Required Python Packages

The gitfolder.py script requires the requests library:
pip install requests

Download the gitfolder.py Script

1

Download the script

Download gitfolder.py directly from the Vault repository:
wget -qO gitfolder.py https://raw.githubusercontent.com/maravento/vault/master/scripts/python/gitfolder.py
On systems without wget, use curl:
curl -sL https://raw.githubusercontent.com/maravento/vault/master/scripts/python/gitfolder.py -o gitfolder.py
2

Make the script executable

chmod +x gitfolder.py
3

Download a specific project

Replace project_name with the name of the project you want to download:
python gitfolder.py https://github.com/maravento/vault/project_name
For example, to download only the blackusb project:
python gitfolder.py https://github.com/maravento/vault/blackusb

How gitfolder.py Works

The gitfolder.py script uses the GitHub API to download specific folders or files from a public repository without cloning the entire project.
Key Features:
  • Downloads specific folders or files from any public GitHub repository
  • Uses the GitHub API for efficient, targeted downloads
  • Supports recursive download of subfolders
  • Preserves the original directory structure locally
  • No authentication required for public repositories
How it works:
  1. Parses the GitHub URL to extract repository owner, name, and folder path
  2. Queries the GitHub API to retrieve folder contents
  3. Recursively downloads files and subdirectories
  4. Creates local directory structure matching the repository
Script internals:
def download_folder_from_github(repo_owner, repo_name, folder_path, output_dir):
    # Create the output directory if it doesn't exist
    os.makedirs(output_dir, exist_ok=True)
    
    # Make a GET request to the GitHub API
    url = f"https://api.github.com/repos/{repo_owner}/{repo_name}/contents/{folder_path}"
    response = requests.get(url)
    
    if response.status_code == 200:
        contents = response.json()
        
        # Handle both files and directories
        if isinstance(contents, dict) and contents.get("type") == "file":
            download_item(contents, output_dir)
            return
        
        # Iterate over folder contents
        for item in contents:
            if item["type"] == "file":
                download_item(item, output_dir)
            elif item["type"] == "dir":
                # Recursively download subfolders
                subfolder_path = folder_path + '/' + item["name"]
                subfolder_output_dir = os.path.join(output_dir, item["name"])
                download_folder_from_github(repo_owner, repo_name, 
                                           subfolder_path, subfolder_output_dir)

Example: Download Multiple Projects

You can download multiple specific projects by running the script multiple times:
# Download security tools
python gitfolder.py https://github.com/maravento/vault/blackusb
python gitfolder.py https://github.com/maravento/vault/blackshield
python gitfolder.py https://github.com/maravento/vault/dextroyer

# Download network tools
python gitfolder.py https://github.com/maravento/vault/gateproxy
python gitfolder.py https://github.com/maravento/vault/proxymon

# Download specific scripts
python gitfolder.py https://github.com/maravento/vault/scripts/python
python gitfolder.py https://github.com/maravento/vault/scripts/bash
You can also download specific subdirectories within projects by providing the full path.

Available Projects

Here are all the projects you can download individually:

blackshield

Advanced security protection system

blackusb

USB device security and control

ddos

DDoS attack mitigation tools

dextroyer

Malware detection and removal

dofi

Domain filtering utility

gateproxy

Gateway proxy management

itsm

IT Service Management tools

netscan

Network scanning utilities

proxymon

Proxy server monitoring

scripts

Collection of automation scripts

trek

System tracking and exploration

uniopos

Unified operations system

winzenity

Windows dialog utilities

Troubleshooting

Install the requests library:
pip install requests
If you still encounter issues, try:
python3 -m pip install requests
The GitHub API has rate limits for unauthenticated requests (60 requests per hour). If you hit this limit:
  • Wait for the rate limit to reset (check the error message for reset time)
  • Consider cloning the full repository instead
  • Use authenticated requests by creating a personal access token
If chmod +x gitfolder.py fails, you may need sudo privileges:
sudo chmod +x gitfolder.py
Alternatively, run the script directly with Python:
python gitfolder.py <url>
Ensure you’re using the correct project name. Valid project names are:
  • blackshield
  • blackusb
  • ddos
  • dextroyer
  • dofi
  • gateproxy
  • itsm
  • netscan
  • proxymon
  • scripts
  • trek
  • uniopos
  • winzenity
Example correct URL:
python gitfolder.py https://github.com/maravento/vault/blackusb

Next Steps

After installing Vault projects, explore the documentation for each tool:

Security Tools

Learn about USB security and malware protection

Network Tools

Configure proxies and monitor network traffic

System Admin

Set up ITSM and system utilities
Always review project-specific README files and documentation before deploying tools in production environments. Check the lifecycle badge to understand the project’s maturity level.

Build docs developers (and LLMs) love