Modern Penetration Testing Report Platform
A scalable, AI-powered microservices platform for creating, managing, and exporting professional penetration testing reports.
- Modern Report Builder - Intuitive drag-and-drop interface for creating professional pentest reports
- Finding Library - Extendable database of vulnerability templates and recommendations
- AI-Powered Content - Generate executive summaries, methodologies, and conclusions with AI assistance
- Evidence Management - Upload, organize, and embed screenshots and proof-of-concept files
- Scope Management - Define and track engagement targets and testing boundaries
- Client Portal - Dedicated client access for report viewing and collaboration (In progress)
- Microservices Architecture - Modular, scalable design with independent services
- Enterprise Authentication - JWT-based auth with role-based access control
- Responsive Design - Works seamlessly in multiple browsers
- Dark Mode Support - Built-in dark/light theme switching
- Multiple Export Formats - Generate PDF and breifable slide deck reports with custom templates
- Real-time Collaboration - Live editing and auto-save functionality
- Analytics Dashboard - Track findings, vulnerabilities, and engagement metrics (In Progress)
- API Integration - RESTful APIs for third-party tool integration
- Import/Export - Support for Burp Suite, Nessus, and other scanning tools (In Progress)
- Multi-tenant Support - Isolated environments for different organizations
- Compliance Templates - Pre-built templates for PCI DSS, SOC 2, and other frameworks (In Progress)
Cosmic Axiom follows a distributed microservices architecture, ensuring scalability, maintainability, and fault isolation.
| Service | Port | Purpose | Technology |
|---|---|---|---|
| Astral | 3001 | Authentication & User Management | Node.js + Prisma |
| Forge | 3002 | Customer & Engagement Management | Node.js + Prisma |
| Library | 3003 | Finding Templates & Vulnerability DB | Node.js + Prisma |
| Singularity | 3004 | Report Creation & Management | Node.js + Prisma |
| Satellite | 3005 | API Gateway & Request Routing | Node.js + Express |
| Horizon | 3006 | Document Generation (PDF) | Node.js + Puppeteer |
| Nebula | 3007 | AI Content Generation | Node.js + Various AI API Integrations |
| Frontend | 5173 | React Web Application | React + Vite + TailwindCSS |
graph TB
A[Frontend] --> B[Satellite - API Gateway]
B --> C[Astral - Auth]
B --> D[Forge - Customers]
B --> E[Library - Findings]
B --> F[Singularity - Reports]
B --> G[Horizon - Documents]
B --> H[Nebula - AI]
C --> I[(MySQL - astral)]
D --> J[(MySQL - forge)]
E --> K[(MySQL - library)]
F --> L[(MySQL - singularity)]
- Docker Desktop
- Node.js 18+
- OpenSSL (for key generation)
# Clone the repository
git clone https://github.com/yourusername/cosmic_axiom.git
cd cosmic_axiom
# Run initial setup
cd infra
./standup.sh
cd ..
# Start all services
./start.sh# Clone the repository
git clone https://github.com/yourusername/cosmic_axiom.git
cd cosmic_axiom
# Run initial setup
cd infra
.\standup.ps1
cd ..
# Start all services
.\start.ps1- Web Interface: http://localhost:5173
- Default Admin:
admin@cosmic.com/admin123
git clone https://github.com/yourusername/cosmic_axiom.git
cd cosmic_axiomThe setup script will:
- Start MySQL container
- Create databases for each microservice
- Generate RSA keys for JWT authentication
- Copy
.env.examplefiles to.envwith unique secrets - Install dependencies and run database migrations
- Seed initial data
cd infra
./standup.sh # Linux/macOS
# OR
.\standup.ps1 # Windows PowerShellAfter running the setup script, review and update the .env files:
AI Configuration (Optional):
# Update the AI provider API key in services/nebula/.env
# The service supports multiple AI providers - configure the one you prefer:
# - Claude (Anthropic)
# - OpenAI
# - Local models via Ollama
# See services/nebula/.env.example for all available optionsOptional Configurations:
- Database connection strings (if using external MySQL)
- Service ports (if you have conflicts)
- Other service spcecific settings
The start script provides:
- Color-coded console output for each service
- Automatic dependency installation
- Port conflict resolution
- Process health monitoring
- Clean shutdown handling
./start.sh # Linux/macOS
# OR
.\start.ps1 # Windows PowerShellEach service includes a .env.example file that gets copied to .env during setup. The setup process automatically generates unique JWT secrets for each service.
Nebula (AI Service) - Optional but Recommended:
Configure one or more AI providers in services/nebula/.env:
- Claude API: Set
CLAUDE_API_KEY - OpenAI: Set
OPENAI_API_KEY(coming soon) - Ollama: Set
OLLAMA_BASE_URLfor local models
Database Services (astral, forge, library, singularity):
DATABASE_URL- MySQL connection stringJWT_SECRET- Auto-generated unique secretPORT- Service-specific port
Satellite (API Gateway):
- Microservice URLs pre-configured for local development
JWT_SECRET- Auto-generated unique secret
Horizon (Document Generation):
JWT_SECRET- Auto-generated unique secret- Optional Puppeteer and storage configurations
Frontend:
VITE_SATELLITE_URL- Points to local API gateway
To modify default settings:
-
Copy and edit example files manually:
cp services/astral/.env.example services/astral/.env # Edit the .env file as needed -
Update database connections:
# In each service's .env file DATABASE_URL="mysql://user:password@host:port/database"
-
Change service ports:
# In service .env files PORT=3001 # Change to available port
MySQL runs in Docker with the following default settings:
- Host: 127.0.0.1
- Port: 3306
- User: root
- Password: rootpassword
- Login to the application using the default credentials
- Create a Customer in the Customers section
- Set up an Engagement with testing scope and timeline
- Generate a Report from the Reports section
- Add Findings from the library or create custom ones
- Use AI Assistance to generate executive summaries and conclusions
- Export your report as PDF or PDF Slide Deck
- Add customer information and contacts
- Track multiple engagements per customer
- Manage billing and contract details
- Define testing scope (IP ranges, domains, etc.)
- Set engagement timeline and constraints
- Configure testing methodology and tools
- Drag-and-drop finding organization
- Real-time collaborative editing
- Evidence attachment and management
- AI-powered content generation
- Browse pre-built vulnerability templates
- Create custom finding templates
- Tag and categorize findings by severity
- Import findings from scanning tools
cosmic_axiom/
├── frontend/ # React application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Application pages
│ │ ├── layouts/ # Page layouts
│ │ └── assets/ # Static assets
│ └── package.json
├── services/ # Microservices
│ ├── astral/ # Authentication service
│ ├── forge/ # Customer management
│ ├── library/ # Finding templates
│ ├── singularity/ # Report management
│ ├── satellite/ # API gateway
│ ├── horizon/ # Document generation
│ └── nebula/ # AI integration
├── infra/ # Infrastructure scripts
│ ├── docker-compose.local.yml
│ ├── standup.sh # Setup script (Linux/macOS)
│ ├── standup.ps1 # Setup script (Windows)
│ └── seed_files/ # Database seed data
├── start.sh # Service manager (Linux/macOS)
├── start.ps1 # Service manager (Windows)
└── README.md
cd services/[service-name]
npm install
npm run devcd services/[service-name]
npx prisma generate # Generate Prisma client
npx prisma migrate dev # Create and apply migration
npx prisma studio # Open database GUIcd frontend
npm install
npm run dev # Start dev server
npm run build # Production build
npm run lint # Run ESLintEach service exposes RESTful APIs. Key endpoints:
POST /auth/login- User authenticationPOST /auth/register- User registrationGET /auth/verify- Token verification
GET /reports- List reportsPOST /reports- Create reportPUT /reports/:id- Update reportDELETE /reports/:id- Delete report
GET /findings- List finding templatesPOST /findings- Create finding templateGET /findings/:id- Get finding details
We welcome contributions from the security community! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests and ensure code quality
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow existing code style and conventions
- Write tests for new functionality
- Update documentation as needed
- Ensure all services start without errors
- Test cross-service communication
- Use the GitHub issue tracker
- Provide detailed reproduction steps
- Include system information and logs
- Tag issues appropriately (bug, enhancement, etc.)
- Additional scanning tool integrations
- UI/UX improvements
- Security enhancements
- Analytics and reporting features
- Internationalization
- Mobile app development
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- Commercial use - Use in commercial projects
- Modification - Modify the source code
- Distribution - Distribute the software
- Patent use - Use any patents
- Private use - Use privately
Requirements:
- License and copyright notice - Include license in distributions
- State changes - Document changes made to the code
- Disclose source - Source code must be made available
- Same license - Derivatives must use the same license