Een compacte containerized API bovenop nmap.
De service biedt een eenvoudige HTTP-endpoint die een nmap-scan uitvoert en het resultaat als JSON retourneert.
.
ββ docker-compose.yml # Minimalistische stack: alleen de portscan-service
ββ portscan-service/
β ββ Dockerfile # Node 18 + nmap + API
β ββ index.js # Express API + nmap-wrapper
β ββ package.json # Node-afhankelijkheden
- Base image:
node:18-alpine - Installeert
nmapviaapk - Exposeert poort
8080in de container - Dependencies:
express,xml2js - De API voert
nmapuit, parseert XML-output en retourneert open poorten plus ruwe data
FROM node:18-alpine
RUN apk add --no-cache nmap
WORKDIR /app
COPY package.json .
RUN npm install --omit=dev
COPY index.js .
EXPOSE 8080docker-compose.yml start alleen de API:
services:
portscan-service:
build: ./portscan-service
ports:
- "${PORTS}:8080"
cap_add:
- NET_RAW
restart: unless-stoppedMaak een .env aan:
PORTS=8080Start:
docker compose up -dAPI-endpoints:
GET /v1/healthPOST /v1/scan
GET /v1/health
Response:
{ "ok": true }POST /v1/scan
Content-Type: application/json
Voorbeeldrequest:
{
"host": "scanme.nmap.org",
"ports": "22,80,443",
"flags": "-T4"
}