MCP Vulnerability Management System
MCP (Management Control Panel) is a comprehensive vulnerability management system that helps organizations track, manage, and respond to security vulnerabilities effectively.
Features
- User Authentication and Authorization
- Admin Dashboard
- User Profile Management
- Vulnerability Tracking
- Support Ticket System
- API Key Management
- SSL Certificate Management
- Newsletter Subscription
- Activity Logging
Prerequisites
- Python 3.11 or higher
- PostgreSQL 15 or higher
- Docker and Docker Compose (optional)
Installation
Option 1: Using Docker (Recommended)
- Clone the repository:
git clone https://github.com/yourusername/mcp.git
cd mcp
- Create a .env file:
Edit the .env file with your configuration.
- Build and start the containers:
- Create the admin user:
docker-compose exec app python install.py
Option 2: Manual Installation
- Clone the repository:
git clone https://github.com/yourusername/mcp.git
cd mcp
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Create a .env file:
Edit the .env file with your configuration.
- Set up the database:
- Create the admin user:
- Start the application:
uvicorn app.main:app --host 0.0.0.0 --port 8000
Usage
- Access the application at http://localhost:8000
- Log in with your admin credentials
- Configure SSL certificates in the admin interface
- Start managing vulnerabilities and users
API Documentation
The API documentation is available at:
Development
Running Tests
Code Style
This project follows PEP 8 guidelines. To check your code:
Database Migrations
To create a new migration:
alembic revision --autogenerate -m "description"
To apply migrations:
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
For support, please open an issue in the GitHub repository or contact the maintainers.