A Laravel-based web application for analyzing videos using deep learning to detect potential deepfake video content.
- Video upload and processing
- Deepfake detection analysis with visual explanations
- Email notifications with results
- User authentication and authorization
- Report generation and management
- Interactive report interface
- Side-by-side frame comparison
- Grad-CAM visualization of suspicious regions
This project is part of a larger ecosystem that includes three main components. The primary component is the DeepScan Platform (this repository), which provides the web interface, handles video processing and queue management, and visualizes results. The second component is the DeepScan API, a REST service that receives extracted frames and returns deepfake probability scores, Grad-CAM overlays, and model explanations. The third is the DeepScan Model, which contains code for training deep learning models, dataset preprocessing, evaluation, and interpretability tools.
- Backend Framework: Laravel 11 with InertiaJS
- Frontend Framework: Vue.js
- CSS Framework: Tailwind CSS
- Database: MariaDB
- Queue System: Redis with Laravel Horizon
- File Storage: MinIO
- Video Processing: FFmpeg integration via pbmedia/laravel-ffmpeg
- PHP 8.2 or higher
- Composer
- Node.js & NPM
- Redis server
- MinIO
- FFmpeg
- MariaDB >10.7 for UUID support
To run DeepScan using Vagrant, install Vagrant and Oracle VirtualBox, then navigate to the vagrant directory and run vagrant up --provision
. Once the VMs are up, you can connect via VSCode using Remote SSH. Use the vagrant ssh-config
command to configure the SSH keys needed for the connection. A good writeup on how to setup vagrant and vscode for remote development can be found here.
Please install the following Vagrant plugins before running vagrant up
.
vagrant plugin install vagrant-vbguest
vagrant plugin install vagrant-hostmanager
Caution
If you get error of conflicting dependencies chains during plugins installation, try this temporary workaround.
Note
The Laravel application will be available at http://192.168.56.10
, while the MinIO browser console can be accessed at http://192.168.56.5:9001
.
Tip
All related configuration details can be found in the vagrant/Vagrantfile
and their corresponding provisioning bash scripts.
Tip
Feeling overwhelmed with the instructions? No worries — you always have the Vagrant setup as a fallback. But if you're ready to go the manual route, here's how to install everything locally:
-
Clone the repository:
git clone https://github.com/recluzegeek/deepscan.git cd deepscan
-
Install PHP dependencies:
composer install
-
Install Javascript dependencies:
npm install
-
Create environment file by copying
.env.example
file:cp .env.example .env
-
Install a Redis client compatible with your operating system and ensure it’s running. Configure the Redis connection settings in the
.env
file. -
Set up your preferred mail service (e.g., SMTP, Mailgun, Sendmail, Mailtrap) and update the corresponding environment variables in the
.env
file.
Important
Make sure to update the mailer settings in your .env
file (MAIL_HOST, MAIL_PORT, etc.) with valid credentials.
If left as-is or misconfigured, Laravel will default to the log mailer, and all emails will be written to storage/logs/laravel.log
instead of being sent.
-
Install MinIO and configure it by creating the required buckets. Generate access and secret keys, then update the corresponding values in your Laravel
.env
file. -
Generate Application key:
php artisan key:generate
-
Configure your database in
.env
file:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database DB_USERNAME=your_username DB_PASSWORD=your_password
-
Run Database migrations:
php artisan migrate
-
Build Frontend Assets:
npm run build
Important
Before proceeding, make sure that all the necessary prerequisite programs and dependencies are properly installed on your system. This ensures that the setup process runs smoothly and avoids any issues due to missing components.
-
Start the development server and access on
localhost:8000
:php artisan serve
-
Start the Frontend development server:
npm run dev
-
Start the Laravel Horizon and can be accessed via
http://your-app-domain/horizon
orlocalhost:8000/horizon
.php artisan horizon