
Self-hosted motore di ricerca e scoperta di rete con scansione continua delle porte, sonda approfondita dei protocolli su ~100 servizi, corrispondenza locale delle CVE e ricerca full-text per l'inventario dell'infrastruttura e il monitoraggio dei rischi.
Network discovery e ricerca self-hosted — il tuo Shodan personale, sulla tua infrastruttura.
Scansione TCP/UDP · ~100 sonde di protocollo · impronte TLS/JARM · corrispondenza CVE · ricerca full-text · tracciamento delta · avvisi
Avvio rapido · Funzionalità · Architettura · Documentazione · Checklist di produzione
Importante. Scansiona solo reti di tua proprietà o per le quali hai autorizzazione scritta. UltraViolet esegue ricognizione passiva dei servizi — non sfrutta vulnerabilità.
| Caso d'uso | Cosa ottieni |
|---|---|
| Perimetro e inventario | Scoperta continua di porte e servizi aperti su intervalli CIDR |
| Ricerca infrastruttura | Ricerca full-text su corpi HTTP, banner, TLS, DNS e CVE |
| Rischio e conformità | Corrispondenza NVD locale più CISA KEV ed EPSS — nessuna dipendenza dal cloud |
| Distribuzioni air-gapped | Archivio offline con immagini Docker, seed CVE e GeoIP MMDB su disco |
| Tracciamento modifiche | Delta tra scansioni, eventi WebSocket, avvisi su ricerche salvate |
Single tenant, un unico stack Docker Compose, controllo totale sui tuoi dati.
Scoperta
SCAN_ALLOWED_CIDRS con limiti di host e porteSonde approfondite (~100 protocolli)
robots.txt, security.txt, stack tecnologicoArricchimento
CVE e rischio
Operazioni
viewer / operator / admin), JWT + token di refresh/metrics, profilo Grafana opzionaleflowchart TB
Browser["Browser"]
FE["service-frontend<br/>React + nginx"]
API["uv-api<br/>REST · WS · metrics"]
PG[("PostgreSQL 16")]
SCAN["uv-scanner<br/>probe pipeline"]
Browser --> FE
FE -->|"/api"| API
FE -->|"/realtime"| API
API <--> PG
SCAN <--> PG
API -.->|LISTEN/NOTIFY| API
L'immagine UI della release fa da proxy per /api/ e /realtime verso uv-api — origine singola, nessuna ricompilazione del frontend per URL API.
| Directory | Scopo |
|---|---|
service-api/ | Go: uv-api (API HTTP, WebSocket, worker) + uv-scanner (pipeline) |
service-frontend/ | React 19 + Vite + RTK — scansioni, host, ricerca, dashboard |
service-documentation-frontend/ | VitePress — documentazione utente e operatore |
service-env/ | docker-compose, segreti, install.sh / upgrade.sh / backup |
Regole di sviluppo backend: CLAUDE.md.
Requisiti: Go 1.25+, Docker Engine ≥ 24, ~4 GB di RAM. Le immagini di produzione hanno come target Linux amd64.
Percorso per principianti — scarica le immagini pubblicate con
service-env/docker-compose.registry.yml:
cd service-env
cp env.registry.example .env
# imposta POSTGRES_PASSWORD, AUTH_JWT_SECRET, AUTH_BOOTSTRAP_PASSWORD
mkdir -p geoip catalog-seed
docker compose -f docker-compose.registry.yml pull
docker compose -f docker-compose.registry.yml up -d
# UI → http://localhost:3000
Consulta Docker Registry nel sito della documentazione.
Le immagini API/scanner copiano binari precompilati da service-api/bin/ (non vengono compilati dentro Docker). make dev esegue make -C service-api build-linux prima di docker compose … --build.
git clone https://github.com/yakushstanislav/UltraViolet.git
cd UltraViolet/service-env
cp .env.example .env
mkdir -p secrets
openssl rand -hex 32 > secrets/postgres_password
openssl rand -hex 32 > secrets/auth_jwt_secret
cd ..
make dev
| URL | Scopo |
|---|---|
| http://localhost:3000 | UI (API tramite nginx /api/) |
| http://localhost:8080 | API direttamente |
| http://localhost:9090/metrics | Prometheus |
Bootstrap di sviluppo: admin / admin (solo quando APP_ENV≠production).
Guida completa — VitePress in service-documentation-frontend/docs/:
make docs-dev # → http://localhost:5173
In produzione, abilita il profilo docs:
cd service-env && docker compose --profile docs up -d
# → http://localhost:${UV_DOCUMENTATION_PORT:-3002}
Sezioni principali: installazione · scansione · API · distribuzione · installazione offline.
make dev # build-linux → compose prod + dev override --build
Ricompila i binari Go dopo modifiche al backend (make -C service-api build-linux), poi riavvia o riesegui make dev.
make dev-db # solo PostgreSQL su :5432