
Plataforma VAPT hospedada localmente e isolada fisicamente (air-gapped) que executa 8 módulos de varredura em paralelo, pontua achados de forma determinística com CVSS v3.1 e gera relatórios em PDF com remediação opcional gerada por IA via LLM local.
Desenvolvido por maverickaayush.
Uma ferramenta VAPT hospedada localmente e isolada de redes externas: aponte-a para um domínio alvo autorizado e ela executa 8 módulos de varredura em paralelo, calcula deterministicamente a pontuação de cada achado (CVSS v3.1), opcionalmente adiciona descrições em linguagem simples geradas por IA via um LLM local e gera um relatório em PDF além de um painel web em tempo real. Nenhuma chamada externa de API - tudo roda na sua própria rede.
Duas formas de executar o ONUS:
- Self-hosted (este repositório):
docker compose up→ insira um domínio → marque a caixa de autorização → escaneie. Sem conta, sem login, sem verificação de e-mail - é de operador único por design, e tudo abaixo cobre esse caminho.- Hospedado: uma instância gerenciada está disponível em tryonus.tech. Ela adiciona recursos exclusivos de produção (contas / login OAuth, uma fila de varreduras, histórico por usuário) que vêm desativados neste repositório, para que o self-hosting continue simples. Veja Self-hosted vs hospedado.
| Self-hosted (este repositório) | Hospedado (tryonus.tech) | |
|---|---|---|
| Configuração | docker compose up | nenhuma - basta abrir o site |
| Login | nenhum - operador único | conta / Google / GitHub OAuth |
| Fluxo de varredura | domínio → caixa de autorização → varredura | o mesmo, após fazer login |
| Extras | - | fila de varreduras, histórico por usuário, e-mail hospedado |
| Executa em | sua própria rede, isolada da internet | nuvem gerenciada |
O caminho padrão do self-hosted é intencionalmente o mais simples: sem cadastro, sem
verificação de e-mail, sem OAuth. Os recursos exclusivos do hospedado (autenticação, fila de
varreduras) ficam atrás de flags de configuração que vêm desativadas por padrão (REQUIRE_AUTH=false,
HOSTED_QUEUE_ENABLED=false; veja Configuração) e não estão
definidos em docker-compose.yml - portanto, executar o ONUS localmente nunca coloca você atrás de um
login. Prefere zero configuração? Use o site hospedado em
tryonus.tech.
| Nova Varredura | Status da Varredura em Tempo Real |
|---|---|
![]() | ![]() |
| Painel do Relatório | Descoberta de Varreduras |
|---|---|
![]() | ![]() |
domain → [recon | webscan | ssl_tls | headers | owasp | tech_fingerprint | nuclei | enumeration] (parallel, Celery)
→ any module failed/timed out? → pause for operator retry/continue/cancel
→ aggregator (dedup + OWASP-map + sort)
→ confidence verification (passive re-observation)
→ deterministic CVSS scoring
→ Ollama (Qwen 2.5 7B) AI analysis
→ WeasyPrint PDF + PostgreSQL
→ dashboard / PDF download
Seis camadas: frontend Next.js → FastAPI → Celery/Redis → 8 módulos de varredura
em paralelo → Ollama (Qwen 2.5 7B) → WeasyPrint PDF + painel. Detalhes completos em
ARCHITECTURE.md (esquemas, contratos, salvaguardas) e
docs/QUICK_REF.md (consulta rápida para mudanças comuns).
mem_limit: 4g),
e Postgres, Redis, a API, o worker e o frontend rodam em paralelo a ele.Veja os Pré-requisitos acima: ~8 GB de disco e ~6 GB de RAM, e espere uma primeira compilação de 10 a 15 minutos.
cp .env.example .env
cp backend/subfinder-config/provider-config.yaml.example backend/subfinder-config/provider-config.yaml
docker compose up -d
docker compose ps # wait for zap to report healthy (~2 min)
Abra http://localhost:3000, insira um domínio, marque a caixa de autorização e inicie a varredura.
Sem login, cadastro ou verificação de e-mail. O ONUS self-hosted é de operador único por padrão - não há etapa de conta entre abrir o painel e escanear.