53 lines
1.5 KiB
YAML
53 lines
1.5 KiB
YAML
# recon-triage compose.
|
|
#
|
|
# Default (LLM-free): docker compose run --rm app scan --scope /data/scope.yaml --target example.com --out /data/out
|
|
# With local LLM: docker compose --profile llm up -d ollama
|
|
# docker compose --profile llm run --rm app-llm scan ...
|
|
#
|
|
# The default `app` service leaves LLM_BASE_URL unset, so the triage stage uses
|
|
# deterministic ranking. The `app-llm` service (only created with the `llm`
|
|
# profile) starts Ollama and wires LLM_BASE_URL=http://ollama:11434/v1.
|
|
|
|
x-app-base: &app-base
|
|
build:
|
|
context: .
|
|
target: runtime
|
|
image: recon-triage:latest
|
|
user: "app" # recon/triage only; connect scans need no caps
|
|
volumes:
|
|
- ./scope.yaml:/data/scope.yaml:ro
|
|
- ./out:/data/out
|
|
- nuclei-templates:/home/app/nuclei-templates
|
|
command: ["--help"]
|
|
|
|
services:
|
|
app:
|
|
<<: *app-base
|
|
environment:
|
|
NUCLEI_TEMPLATES_DIR: /home/app/nuclei-templates
|
|
# LLM_BASE_URL intentionally unset -> deterministic triage.
|
|
|
|
app-llm:
|
|
<<: *app-base
|
|
profiles: ["llm"]
|
|
depends_on:
|
|
- ollama
|
|
environment:
|
|
NUCLEI_TEMPLATES_DIR: /home/app/nuclei-templates
|
|
LLM_BASE_URL: http://ollama:11434/v1
|
|
LLM_MODEL: ${LLM_MODEL:-qwen2.5:7b-instruct}
|
|
LLM_API_KEY: ${LLM_API_KEY:-not-needed}
|
|
|
|
# Optional local LLM. Only created with the `llm` profile.
|
|
ollama:
|
|
image: ollama/ollama:latest
|
|
profiles: ["llm"]
|
|
ports:
|
|
- "11434:11434"
|
|
volumes:
|
|
- ollama:/root/.ollama
|
|
|
|
volumes:
|
|
nuclei-templates:
|
|
ollama:
|