This project is a simple Flask-based web application that:
- Allows users to upload files
- Uploads the files to a Google Cloud Storage (GCS) bucket
- Scans the uploaded files using ClamAV antivirus
- Sends the files to VirusTotal for additional scanning (optional)
- Logs scan results into Google BigQuery
/prjFolder
│
├── app.py # Main Flask app
├── scanner.py # File scanning logic (ClamAV + VirusTotal)
├── upload.py # Upload route and GCS integration
├── requirements.txt # Python dependencies
├── Dockerfile # Docker build configuration
├── .dockerignore # Files to exclude during Docker build
├── README.md # Project documentation
├── /templates
│ └── index.html # Frontend HTML form
│ └── upload.html # Frontend HTML form
│ └── report.html # Frontend report HTML form
└── /static # (optional) Static assets like CSS, JS- Python Dependencies Install Python packages:
pip install -r requirements.txt- System Dependencies Install ClamAV (for local antivirus scanning):
sudo apt update
sudo apt install clamav clamav-daemon
sudo freshclam # Update virus definitions- Environment Variables Create a .env file in your project root folder with the following content:
VT_API_KEY=☁️ Deploy to Google Cloud Run
python3 main.py