___ ____ ___ __ _______
/ | / __ \/ __ \/ / / / ___/
/ /| | / /_/ / /_/ / / / /\__ \
/ ___ |/ _, _/ __ / /_/ /___/ /
/_/ |_/_/ |_|\____/\____//____/
Argus is a full-stack Vulnerability Assessment and Penetration Testing (VAPT) Report Automation Dashboard.
Security engineers frequently spend up to 40% of their engagement hours manually formatting Word documents, mapping CVSS scores, and drafting mitigation strategies. Argus eliminates this bottleneck. By providing a centralized, AI-powered platform to log vulnerabilities, track engagements, and instantaneously generate professional PDF deliverables, Argus shifts the focus back to where it belongs: breaking things.
Designed for specialized VAPT teams, solo red teamers, and rigorous bug bounty hunters, Argus is a highly hardened, deploy-anywhere security command center.
- Engagement Management: Isolate and track vulnerabilities logically per-client or per-pentest project.
- Vulnerability Tracking: Rich classification with automated mapping to the OWASP Top 10.
- CVSS Intelligence: Automated CVSS severity parsing and calculation alignment.
- AI-Powered Analyst: Leverages Google Gemini to auto-generate deeply technical, step-by-step developer remediation instructions based directly on your payload and findings.
- Analytics SOC Dashboard: Real-time severity doughnut charts, an OWASP frequency heatmap, and algorithmic project-wide Risk Scoring calculations.
- Automated Deliverables: One-click, native compilation to a polished, professional PDF Report utilizing Jinja2 and WeasyPrint pipelines without relying on external SaaS formatting.
- Hardened Security: Protected by strict JWT authentication (HTTPOnly + silent refresh), aggressive IP rate limiting, strict CORS, and CSP origin lockdown.
- Production Ready: One-command orchestrator deployment via
docker-compose.
| Layer | Technology |
|---|---|
| Frontend | React, Next.js 14, Tailwind CSS, Recharts, Lucide Icons |
| Backend | Python 3.11, FastAPI, SQLAlchemy (ORM), Pydantic, SlowAPI |
| Database | PostgreSQL 15 |
| AI Analyst | Google Generative AI (Gemini Flash) |
| PDF Engine | WeasyPrint, Jinja2, python-markdown |
| Authentication | JWT, bcrypt, Secure HTTPOnly Cookies |
| Infrastructure | Docker, Nginx Reverse Proxy, Alpine Linux |
Deploy Argus locally or on a VPS in under three minutes.
- Docker and
docker-composeinstalled natively - Git
- A Google Gemini API Key
-
Clone the repository:
git clone https://github.com/thearjunl/Argus.git cd Argus -
Configure your environment:
cp .env.example .env
Edit
.envinside your preferred editor to inject your API keys and secure your database. -
Deploy the fleet:
docker-compose up -d --build
The dashboard will be securely exposed at http://localhost.
To run the automated test suite locally:
- Verify Test Environment:
Run the setup script to instantly instantiate the required Postgres schema:
bash scripts/setup_test_db.sh
- Execute Pytest:
cd argus-backend pytest --cov=app --cov-report=term-missing -v - Frontend Validations:
cd argus-frontend npm test
The .env file requires the following keys for secure compilation:
| Variable | Description | Example |
|---|---|---|
POSTGRES_USER |
Target database deployment username. | argus_admin |
POSTGRES_PASSWORD |
Target database deployment password. | super_secure_passwd |
POSTGRES_DB |
Target database table name. | argus |
DATABASE_URL |
SQLAlchemy connection string (interpolated). | postgresql://argus_admin:super_secure_passwd@postgres:5432/argus |
JWT_SECRET_KEY |
High-entropy seed used for JWT signing. | dd5a...1a56 |
GEMINI_API_KEY |
Required API key for AI remediation generation. | AIzaSyD... |
FRONTEND_URL |
CORS restriction target. | http://localhost |
ACCESS_TOKEN_EXPIRE_MINUTES |
Lifecycle of the short-lived auth token. | 15 |
REFRESH_TOKEN_EXPIRE_DAYS |
Lifecycle of the silent refresh cookie. | 7 |
Argus/
├── argus-backend/
│ ├── app/
│ │ ├── models/ # SQLAlchemy DB Models
│ │ ├── routers/ # FastAPI API endpoints
│ │ ├── schemas/ # Pydantic input/output schemas
│ │ ├── templates/ # Jinja2 HTML Report Templates
│ │ ├── utils/ # JWT, Gemini, PDF Handlers
│ │ └── main.py # FastAPI entry point & Middleware config
│ ├── Dockerfile
│ └── requirements.txt
├── argus-frontend/
│ ├── app/
│ │ ├── dashboard/ # Next.js Analytics & Operations Pages
│ │ ├── login/ # Auth UI
│ │ ├── layout.tsx
│ │ └── page.tsx # Landing Splash
│ ├── components/ # Reusable Tailwind/Radix UI modules
│ ├── lib/ # Axios Interceptors & TS Interfaces
│ ├── Dockerfile
│ ├── next.config.ts # CSP & Security Headers configuration
│ └── package.json
├── docker-compose.yml # Multi-container orchestration
├── nginx.conf # Reverse proxy traffic routing configs
├── README.md
└── .env.example
Core routing table. (All endpoints except /auth/login and /auth/register require Bearer / Token auth).
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register |
Register a new operator. |
| POST | /api/auth/login |
Authenticate and dispense secure HTTPOnly tokens. |
| POST | /api/auth/refresh |
Silently swap the refresh cookie for a new session. |
| GET | /api/engagements/ |
Retrieve logic-isolated pentest engagements. |
| GET | /api/vulnerabilities/ |
Query vulnerabilities (supports severity filtering). |
| POST | /api/vulnerabilities/{id}/remediate |
Poll Gemini to generate AI dev remediation logic. |
| GET | /api/dashboard/stats |
Export complex Recharts aggregation metrics. |
| POST | /api/engagements/{id}/report/pdf |
Compile vulnerability dataset into a raw Blob PDF. |
Placeholder: Dashboard Analytics Screenshot
Placeholder: Vulnerability Tracking Table Screenshot
Placeholder: Exported PDF Report Preview Screenshot
- Mobile responsive UI
- Multi-user team support and RBAC
- CVE database integration
- Slack/email alert notifications
- CVSS v4.0 scoring support
- Export to DOCX format
Contributions make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Built by Arjun L — MCA Cybersecurity & Full-Stack AI
View GitHub Profile