Documentation

Installation Guide

VaultDrop - Secure Digital File Storage and Encrypted Transfer System with Virus Scanning

Step-by-step Setup Verified Instructions Chat Support
Back to Project
Complete Guide

VaultDrop - Installation Guide

Follow these steps to set up VaultDrop on your local machine. This guide covers everything from cloning the repository to running the development server.

Prerequisites

Make sure you have the following installed before proceeding:

  • Python 3.10 or higher
  • pip (Python package manager)
  • Git
  • A Gmail account with App Password enabled (for email features)
  • Optional: ClamAV antivirus daemon (for virus scanning)
  • Optional: Redis server (for Celery background tasks)

Step 1: Clone the Repository

Open your terminal or command prompt and run the following command:

git clone <repository-url>
cd "Digital Data Storage and Transfer System"

Step 2: Create a Virtual Environment

Creating a virtual environment keeps the project dependencies isolated from your system Python installation.

python -m venv venv

Activate the virtual environment:

On Linux or macOS:

source venv/bin/activate

On Windows:

venv\Scripts\activate

You should see (venv) appear at the beginning of your terminal prompt.

Step 3: Install Dependencies

Install all required Python packages using the requirements file:

pip install -r vaultdrop/requirements.txt

This installs Django, django-axes, pyclamd, python-magic, bleach, Pillow, and other dependencies.

Step 4: Configure Environment Variables

Create a file named .env inside the vaultdrop/ directory. Add the following variables:

SECRET_KEY=your-very-secret-key-here
DEBUG=True
EMAIL_HOST_USER=your-gmail@gmail.com
EMAIL_HOST_PASSWORD=your-app-password

To generate a Gmail App Password, go to your Google Account settings, navigate to Security, then 2-Step Verification, and create an App Password for "Mail".

Step 5: Apply Database Migrations

Navigate into the vaultdrop directory and run migrations to create the database tables:

cd vaultdrop
python manage.py migrate

This creates the SQLite database file (db.sqlite3) and sets up tables for users, files, and transfer records.

Step 6: Create a Superuser (Optional)

If you want access to the Django admin panel, create a superuser account:

python manage.py createsuperuser

Enter your email and password when prompted. You can then access the admin panel at /admin/ after starting the server.

Step 7: Collect Static Files

Gather all static files (CSS, JavaScript, images) into one directory:

python manage.py collectstatic

Type "yes" when prompted to confirm.

Step 8: Run the Development Server

Start the Django development server:

python manage.py runserver

Open your browser and go to http://127.0.0.1:8000 to access VaultDrop.

Optional: Set Up ClamAV for Virus Scanning

On Ubuntu or Debian:

sudo apt-get install clamav clamav-daemon
sudo freshclam
sudo systemctl start clamav-daemon

On macOS (using Homebrew):

brew install clamav
freshclam
clamd

Once ClamAV is running, VaultDrop will automatically use it to scan uploaded files. If ClamAV is not running, the system falls back to MIME type verification using python-magic.

Optional: Set Up Celery with Redis

If you want background task processing (for large file operations or email queuing):

Install and start Redis:

sudo apt-get install redis-server
sudo systemctl start redis

In a separate terminal window, start the Celery worker:

cd vaultdrop
celery -A vaultdrop worker --loglevel=info

Scheduling Expired File Cleanup

VaultDrop includes a management command to clean up expired files. Run it manually:

python manage.py cleanup_expired_files

For automatic cleanup, add a cron job that runs every 15 minutes:

*/15 * * * * /path/to/venv/bin/python /path/to/vaultdrop/manage.py cleanup_expired_files

Accessing the Application

Page URL Access
Landing Page http://127.0.0.1:8000/ Public
Sign Up http://127.0.0.1:8000/accounts/signup/ Public
Sign In http://127.0.0.1:8000/accounts/signin/ Public
Dashboard http://127.0.0.1:8000/storage/dashboard/ Login Required
Upload Files http://127.0.0.1:8000/storage/upload/ Login Required
File Manager http://127.0.0.1:8000/storage/files/ Login Required
Send File http://127.0.0.1:8000/transfer/send/ Login Required
Admin Panel http://127.0.0.1:8000/admin/ Staff Only

Troubleshooting

If you get a "ModuleNotFoundError", make sure your virtual environment is activated and all dependencies are installed.

If email sending fails, verify that your Gmail App Password is correct and that "Less secure app access" or App Passwords are properly configured in your Google account.

If file uploads fail with a size error, check that DATA_UPLOAD_MAX_MEMORY_SIZE in settings.py is set to 1073741824 (1 GB).

If ClamAV scanning is not working, confirm the ClamAV daemon is running with: sudo systemctl status clamav-daemon

Need Help?

Our team is here to assist you with installation and setup.

Chat with Us
Chat with us