Infrastructure

TurboPentest runs on Microsoft Azure with enterprise-grade infrastructure. This page covers the services used and how data flows through the system.

Azure Services

ServicePurposeDetails
App ServiceWeb applicationNext.js 15, auto-scaling, custom domain
Container InstancesTool execution15 isolated containers per pentest
Blob StorageOutput storageTool results, PDF reports, attestation letters
Container RegistryTool imagesPre-built images for all 15 security tools
Entra IDAuthenticationSSO via Microsoft identity platform
PostgreSQLDatabasePrisma ORM, managed database

Tool Resource Allocation

Each security tool runs in its own Azure Container Instance with dedicated resources:

ToolCPUMemoryTimeout
Nmap1 core1 GB5 min
Nikto1 core1 GB5 min
ZAP1 core2 GB10 min
Nuclei1 core1 GB10 min
PentestTools1 core1 GB5 min
TestSSL1 core0.5 GB5 min
Subfinder0.5 core0.5 GB2 min
HTTPX0.5 core0.5 GB2 min
FFUF1 core0.5 GB5 min
Wafw00f0.5 core0.5 GB2 min
OpenVAS2 cores4 GB15 min
Gitleaks0.5 core0.5 GB5 min
Semgrep1 core2 GB5 min
Trivy1 core1 GB5 min

Data Flow

  1. User submits target - Domain is validated and ownership verified via DNS TXT record
  2. Pentest created - Record stored in PostgreSQL with status "running"
  3. Containers launched - Azure Container Instances spin up for each tool
  4. Tool execution - Each container runs its tool against the target
  5. Results stored - Tool output written to Azure Blob Storage
  6. Callbacks received - Each container sends a completion webhook to the app
  7. Shannon analysis - AI reads all tool outputs from Blob Storage and generates findings
  8. Report generated - PDF and attestation created, stored in Blob Storage
  9. User notified - Email via Mailgun, Slack webhook, or in-app notification

Deployment

The application is deployed via GitHub Actions CI/CD:

  1. Every push triggers: lint, type-check, test suite, production build
  2. Pushes to the main branch auto-deploy to Azure App Service
  3. Tool container images are maintained in Azure Container Registry
  4. A scheduled cron job keeps tool images updated with latest CVE databases

Data Retention

  • Tool containers are destroyed immediately after completion
  • Tool output blobs are retained for the lifetime of the pentest record
  • Users can delete their pentests and all associated data at any time
  • A cleanup cron job removes stale data from incomplete pentests

On this page