VaultDrop - Secure Digital File Storage and Encrypted Transfer System with Virus Scanning
Back to ProjectFollow these steps to set up VaultDrop on your local machine. This guide covers everything from cloning the repository to running the development server.
Make sure you have the following installed before proceeding:
Open your terminal or command prompt and run the following command:
git clone <repository-url> cd "Digital Data Storage and Transfer System"
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.
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.
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".
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.
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.
Gather all static files (CSS, JavaScript, images) into one directory:
python manage.py collectstatic
Type "yes" when prompted to confirm.
Start the Django development server:
python manage.py runserver
Open your browser and go to http://127.0.0.1:8000 to access VaultDrop.
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.
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
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
| 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 |
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
Our team is here to assist you with installation and setup.