Enterprise-Grade Vulnerability Management Dashboard
Features β’ Architecture β’ Installation β’ Security β’ Documentation
Nuclei Command Center (NUCLEI_CNM) is a production-ready, security-hardened web interface for orchestrating vulnerability assessments using ProjectDiscovery's Nuclei scanner. Built by security professionals for security professionals, it transforms raw Nuclei output into actionable intelligence through a modern, authenticated dashboard.
| Challenge | Solution |
|---|---|
| CLI-only workflow slows down operations | One-click preset scans with configurable parameters |
| Findings scattered across JSON files | Centralized SQLite database with full-text search |
| No vulnerability lifecycle tracking | Status management: New β Confirmed β Fixed β Closed |
| Team collaboration is difficult | Import/Export capabilities with backup & restore |
| No access control for scan operations | NextAuth v5 integration with bcrypt password hashing |
Secure login with bcrypt-hashed credentials
Real-time overview with vulnerability statistics and recent findings
Live scan activity tracking with process management
| Nuclei Scanner | Scan History |
|---|---|
![]() |
![]() |
| Configure and launch Nuclei scans | View all past scan results |
Detailed vulnerability findings with severity classification
| Subdomain Scan | Inventory View |
|---|---|
![]() |
![]() |
| Launch subdomain enumeration | Browse discovered subdomains |
Monitor subdomain discovery progress
| HTTPX Scan | HTTPX Results |
|---|---|
![]() |
![]() |
| Configure HTTP probing parameters | View live host analysis results |
| System Settings | Scanner Management |
|---|---|
![]() |
![]() |
| Configure rate limits and performance | Manage scanner binaries |
| Login Records | Backup & Restore |
|---|---|
![]() |
![]() |
| Audit authentication events | Export and restore all data |
Create and manage custom Nuclei templates
- Unified Finding Feed: Aggregate all scan results in a single, filterable interface
- Severity Classification: Color-coded Critical/High/Medium/Low/Info badges
- Status Workflow: Track findings through New β Confirmed β False Positive β Fixed β Closed
- Surgical Rescan: Re-verify individual vulnerabilities with one click
- Bulk Export: CSV exports filtered by severity level
-
7 Pre-Configured Presets:
Preset Nuclei Flags Use Case Full Scan None Comprehensive assessment Critical Only -s criticalHigh-priority triage High & Critical -s critical,highRisk-focused scan Technology Detection -tags techAsset fingerprinting Recent CVEs -tags cve2023,cve2024Patch verification Misconfigurations -tags misconfigSecurity hardening Admin Panels -tags panel,loginExposed interface detection -
Custom Command Builder: Full CLI flag support for advanced operators
-
Real-time Activity Monitor: Live scan status with duration tracking
-
Background Processing: Non-blocking scan execution with process management
- Engine Updates: One-click updates for Nuclei, Subfinder, and HTTPX binaries
- Template Management: Create, edit, and execute custom YAML templates
- Performance Tuning: Configurable rate limits, concurrency, and bulk sizes
- Access Logging: Audit trail for authentication events
- SQLite Persistence: Indexed database with foreign key relationships
- Full Backup: Export all scanners' data (Nuclei, Subfinder, HTTPX) to JSON
- Transaction-Safe Restore: Atomic restore with rollback on failure
- External Import: Ingest Nuclei JSON from CI/CD pipelines or other sources
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β NUCLEI COMMAND CENTER β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Browser βββββΆβ proxy.ts βββββΆβ Next.js β β
β β Client β β (Middleware)β β App Router β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β β β β
β β ββββββββΌβββββββ β β
β β β NextAuth β β β
β β β Sessions β β β
β β βββββββββββββββ β β
β β β β
β β ββββββββββββββββββββββββββΌββββββββββββββββββββββ β
β β β API Routes (/api/*) β β
β β β βββββββββββ βββββββββββ βββββββββββββββββββ β β
β β β β scan β βfindings β β system/scanners β β β
β β β ββββββ¬βββββ ββββββ¬βββββ ββββββββββ¬βββββββββ β β
β β βββββββββΌββββββββββββΌββββββββββββββββΌβββββββββββ β
β β β β β β
β ββββββββΌβββββββ ββββββββΌββββββββββββΌββββββββββββββββΌβββββββ β
β β React β β SQLite Database β β
β β Components β β ββββββββββ ββββββββββββ βββββββββββ β β
β βββββββββββββββ β β scans β β findings β β access β β β
β β β β β β β logs β β β
β β ββββββββββ ββββββββββββ βββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββ β
β β β
β ββββββββββΌβββββββββ β
β β Nuclei Binary β β
β β (System PATH) β β
β βββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Next.js 15, React 19, Tailwind CSS | Server-side rendering, responsive UI |
| Components | shadcn/ui (Radix primitives) | Accessible, customizable UI library |
| Authentication | Auth.js v5 (NextAuth) | Session management, middleware protection |
| Password Security | bcrypt (10 rounds) | Secure credential hashing |
| Database | SQLite + better-sqlite3 | Embedded, zero-config persistence |
| API | Next.js Route Handlers | RESTful endpoints with type safety |
| Process Mgmt | Node.js child_process | Nuclei binary execution |
| Caching | In-memory TTL cache | Reduced database load |
| Requirement | Version | Verification |
|---|---|---|
| Node.js | β₯ 18.0.0 | node --version |
| npm | β₯ 9.0.0 | npm --version |
| Go | β₯ 1.21 | go version |
| Nuclei | β₯ 3.6.0 | nuclei -version |
# Install Nuclei
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# Install Subfinder (optional, for subdomain discovery)
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
# Install HTTPX (optional, for HTTP probing)
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
# Ensure Go bin is in PATH
# Windows: Add %USERPROFILE%\go\bin to PATH
# Linux/macOS: export PATH=$PATH:$(go env GOPATH)/bingit clone https://github.com/yourusername/NUCLEI_CNM.git
cd NUCLEI_CNM/dashboard
npm installGenerate a secure password hash:
# Using Node.js
node -e "const bcrypt = require('bcrypt'); bcrypt.hash('YOUR_SECURE_PASSWORD', 10).then(h => console.log(h));"Generate an auth secret:
# Using OpenSSL
openssl rand -base64 32
# Or using Node.js
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"Create dashboard/.env.local:
# Required: Bcrypt hash of your admin password
ADMIN_PASSWORD_HASH="$2b$10$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# Required: Random secret for session signing (32+ characters)
AUTH_SECRET="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"# Development mode (with hot reload)
npm run dev
# Production build
npm run build
npm startAccess the dashboard at http://localhost:3000
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Security Layers β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Layer 1: Edge Middleware (proxy.ts) β
β ββ Intercepts ALL requests before routing β
β ββ Validates session existence β
β ββ Redirects unauthenticated users to /login β
β ββ Enforces HTTPS in production β
β β
β Layer 2: API Route Guards β
β ββ Every API handler calls await auth() β
β ββ Returns 401 Unauthorized if no session β
β ββ Prevents direct API access bypass β
β β
β Layer 3: Password Security β
β ββ Bcrypt hashing with 10 salt rounds β
β ββ Timing-safe comparison β
β ββ No plaintext password storage β
β β
β Layer 4: Session Management β
β ββ Secure HTTP-only cookies β
β ββ CSRF protection (built-in) β
β ββ Configurable session lifetime β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Practice | Implementation |
|---|---|
| Secrets Management | All secrets in .env.local (gitignored) |
| Password Policy | Minimum 12 characters recommended |
| SQL Injection | Prepared statements via better-sqlite3 |
| XSS Prevention | React's built-in escaping + CSP headers |
| CSRF Protection | NextAuth automatic token validation |
| Access Logging | Authentication events logged to database |
| Sensitive Data | Database and scan results excluded from Git |
| Resource | Protection Method |
|---|---|
/ (Dashboard) |
Middleware redirect |
/vulnerabilities |
Middleware redirect |
/api/scan |
401 if no session |
/api/findings |
401 if no session |
/api/backup/* |
401 if no session |
/api/system/* |
401 if no session |
| Variable | Required | Description |
|---|---|---|
ADMIN_PASSWORD_HASH |
β | Bcrypt hash of admin password |
AUTH_SECRET |
β | Session signing secret (32+ chars) |
NODE_ENV |
β | development or production |
Located in Settings within the dashboard:
| Setting | Default | Range | Impact |
|---|---|---|---|
| Rate Limit | 150 req/s | 50-1000 | Target server load |
| Concurrency | 25 | 25-300 | Parallel template execution |
| Bulk Size | 25 | 25-100 | Hosts per batch |
NUCLEI_CNM/
βββ dashboard/ # Next.js Application
β βββ app/ # App Router
β β βββ api/ # Backend API Routes
β β β βββ auth/ # NextAuth endpoints
β β β βββ scan/ # Scan CRUD operations
β β β βββ findings/ # Finding management
β β β βββ backup/ # Export/restore
β β β βββ system/ # Engine updates, health
β β βββ login/ # Authentication page
β β βββ page.tsx # Main dashboard
β βββ components/ # React Components
β β βββ dashboard/ # Overview, stats
β β βββ findings/ # Table, filters
β β βββ scan/ # Wizard, console
β β βββ ui/ # shadcn/ui primitives
β βββ lib/ # Core Logic
β β βββ db.ts # Database operations
β β βββ cache.ts # TTL caching
β β βββ env.ts # Environment handling
β β βββ nuclei/ # Config, presets
β βββ proxy.ts # Authentication middleware
β βββ auth.ts # Credentials provider
β βββ auth.config.ts # NextAuth config
β βββ scans/ # Scan output (gitignored)
βββ Refrencce and Usage And Guide/ # Technical Documentation
β βββ GETTING_STARTED.md
β βββ AUTHENTICATION.md
β βββ ARCHITECTURE.md
β βββ API_REFERENCE.md
β βββ FEATURES.md
β βββ COMPONENTS.md
βββ .gitignore # Security-conscious ignores
βββ README.md # This file
| Document | Description |
|---|---|
| GETTING_STARTED.md | Complete setup and first scan guide |
| AUTHENTICATION.md | Security implementation details |
| ARCHITECTURE.md | System design and data flow |
| API_REFERENCE.md | Endpoint specifications |
| FEATURES.md | Feature catalog |
| COMPONENTS.md | React component documentation |
- Fork the repository
- Create a feature branch (
git checkout -b feature/enhancement) - Commit changes (
git commit -m 'feat: add new capability') - Push to branch (
git push origin feature/enhancement) - Open a Pull Request
This project follows Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentationrefactor:Code refactoringsecurity:Security improvements
This project is licensed under the MIT License. See LICENSE for details.
Nuclei is a product of ProjectDiscovery and is also licensed under the MIT License.
- ProjectDiscovery for Nuclei, Subfinder, and HTTPX
- Vercel for Next.js
- shadcn for the UI component library
- Auth.js for authentication primitives
Built with π Security in Mind










