Getting Started
This guide will help you get VulnerabilityHub up and running on your system.
Prerequisites
System Requirements
OS: Linux (Ubuntu 20.04+, Debian 11+, or similar)
RAM: Minimum 4GB, recommended 8GB+
Disk: 20GB+ free space
CPU: 2+ cores recommended
Software Dependencies
Docker 20.10+
Docker Compose 2.0+
Git
Installation
1. Clone the Repository
git clone <repository-url>
cd vulnerability-scanner
2. Configure Environment Variables
Adapt the example configuration file (.env)
See Configuration for a detailed list of all available options.
3. Start the Application
Start all services using Docker Compose:
docker-compose up -d
For development, include the dev profile to also start MailHog and the
local LDAP server:
docker compose --profile dev up -d
This will start: - Backend API (port 8000) - Frontend (port 80) - Database (port 3306) - ClamAV (Antivirus service)
With the dev profile, the LDAP server is available to containers as
ldap://ldap:389 and to the host as ldap://localhost:1389.
Initialization
Create Admin User
Navigate to the frontend at http://localhost:80 On inital setup you will be asked to create an admin account. You can configure the credentials freely but need to stick to the password requirements documented in Changing Password
Demo Data
For development or testing, use the demo data script. This creates: - Sample users (prof_mueller, dr_schmidt, user_bib, etc.) - Contact persons & Institutions - Sample scans with vulnerabilities and historical trend data - Configured email templates - Demo LDAP users when the dev LDAP server is running
docker-compose exec backend python3 generate_demo_data.py
Local demo users and LDAP demo users use the password DemoPass123456!.
The dev LDAP bind DN is cn=admin,dc=example,dc=org with password
admin unless overridden in .env.
Troubleshooting
- Database Connection Failed
Ensure the db container is healthy:
docker-compose ps db. Check logs:docker-compose logs db.- Rate Limiting Errors
If you hit API limits (“429 Too Many Requests”), adjust
RATE_LIMIT_PER_MINUTEin your.envfile or restart the backend to clear in-memory limits.