ThreatMingle is a comprehensive cybersecurity platform designed to provide real-time threat insights, personalized risk assessments, community forums, and interactive learning modules.
ThreatMingle is divided into several components, each serving a distinct purpose:
- Assessment: Personalized risk assessments and threat queries for URLs, files and IP addresses.
- Hub: Real-time communication/chat and community forums.
- Learn: Interactive learning modules on various cybersecurity topics.
- Home: Landing page and core application settings.
- Clone the repository:
git clone https://github.com/tim-ngeno/ThreatMingle.git
cd ThreatMingle
- Install dependencies: Create a virtual environment for the project
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- Database setup and environment variables required: The project uses MariaDB for the Database, which you can setup or use MySQL.
create a database named threatmingle
in your Database console,
CREATE DATABASE IF NOT EXISTS threatmingle;
or directly from the terminal:
echo "CREATE DATABASE IF NOT EXISTS threatmingle" | mysql -uroot -p{your_password}
-
Get a VirusTotal API key for free: Sign up for a free API Key
-
Export your variables or use a dotenv file to store them securely
export VIRUSTOTAL_API_KEY={your_key} DB_USER={your_db_username}
DB_PWD={your_db_password} DB_NAME=threatmingle DB_HOST=localhost DB_PORT=3306
- Run migrations:
python3 manage.py migrate
- Run server
python3 manage.py runserver
You can access the application served on your localhost address, usually 127.0.0.1:8000
The Home app manages the landing page and core settings of the application.
- Visit the home page at
/
.
On this interface, the project presents a simple interface, with a chart representation of popular threat categories, ranked by rate of attacks.
The page also contains links to various other aspects of the projects:
The Assessment app handles personalized risk assessments and threat queries.
- Navigate to
/assessment/
for risk assessments.
The assessment page offers a form to collect information on the type of scan you want.
The Hub app facilitates real-time communication and community forums.
The hub
platform uses websockets to facilitate real-time chat functionality.
- Visit
/hub/
for the main hub. - Create or join predefined rooms from this interface.
The Learn app contains interactive learning modules.
- Explore learning modules at
/learn/
.
Contributions to ThreatMingle are not just welcome; they are celebrated! If you're passionate about cybersecurity and want to contribute to a project with a purpose, feel free to open an issue or submit a pull request. Your ideas, expertise, and collaboration are integral to the growth of ThreatMingle.