Costruisci sulla
piattaforma MinervaAI
MinervaAI aggrega feed di aviazione, traffico marittimo, sismologia, conflitti, cyber e OSINT su un’unica mappa renderizzata via GPU, ed espone ognuno di essi come semplice endpoint HTTP. È la stessa API su cui gira la dashboard: non esiste un livello interno separato e privilegiato.
Panoramica
Ogni dato sulla mappa è renderizzato in WebGL tramite MapLibre GL: è questo che permette all’interfaccia di gestire migliaia di entità simultanee a 60fps. L’applicazione è un’app Next.js: la mappa e l’HUD girano nel browser, e ogni feed live viene normalizzato da una route sotto /api prima di arrivare al client.
Questo confine è voluto. Le sorgenti upstream differiscono per formati, rate limit e policy CORS, quindi il livello API assorbe queste differenze e restituisce JSON coerente.
Guida rapida
Ogni endpoint di lettura è una semplice GET che restituisce JSON. Niente di quanto segue richiede autenticazione: puoi incollare tutto direttamente in un terminale.
curl -s https://minervaai-steel.vercel.app/api/flights | jq '.commercial_flights | length'Se ti servono solo i numeri e non la geometria, /api/stats è l’endpoint giusto da interrogare periodicamente: riduce i feed pesanti a una manciata di contatori.
curl -s https://minervaai-steel.vercel.app/api/stats
# { "stats": { "flights": 9241, "sats": 2043, "cctv": 2117,
# "weather": 58, "nuclear": 191, "incidents": 412 },
# "timestamp": "2026-07-29T12:00:00Z" }Le lookup OSINT accettano ciascuna un solo soggetto, quindi si combinano facilmente in una pipeline:
curl -s "https://minervaai-steel.vercel.app/api/osint/certs?domain=example.com" | jq -r '.subdomains[]'Self-hosting
MinervaAI richiede Node 20+ e nessun database. Per un’istanza locale bastano tre comandi:
git clone https://github.com/kurisuchanxxx/MinervaAI.git
cd osiris
npm install
npm run dev # http://localhost:3000Per una build di produzione, o per eseguire i controlli:
npm run build && npm start
npm run lint
npm test # vitest
npm run test:live # includes tests that hit live upstream feedsNel repository sono inclusi un Dockerfile e un docker-compose.yml. All’interno il container resta sempre in ascolto sulla porta 3000; OSIRIS_PORT determina la porta dell’host su cui viene esposto.
cp .env.example .env
docker compose up -dConfigurazione
Copia .env.example in .env. Leggi quel file prima di compilare qualsiasi valore: la maggior parte delle chiavi elencate è riservata a sorgenti future e non viene usata dal codice attuale.
Lette dall’applicazione
Facoltative: solo per rate limit più alti
FIRMS_API_KEY, OPENSKY_CLIENT_ID, OPENSKY_CLIENT_SECRET, N2YO_API_KEY, AIS_API_KEY. Vengono usati i feed pubblici senza chiave, a meno che tu non modifichi il codice per preferire queste.
openssl rand -hex 32. Non fare mai commit di un .env compilato: nel version control va solo .env.example.Guida all’interfaccia
La mappa occupa tutto il viewport e ogni controllo fluttua sopra di essa. I pannelli si attivano e disattivano invece di essere pagine a sé, così puoi comporre esattamente il quadro che ti serve e scartare il resto.
Scorciatoie da tastiera
Premi ? in qualsiasi momento all’interno dell’applicazione per visualizzare questo elenco.
In questa documentazione, ⌘K (o /) apre la ricerca da qualsiasi punto della pagina.
Convenzioni
Tutte le route si trovano sotto /api, su qualunque origin serva l’applicazione. Le letture sono GET, le scritture sono POST con body JSON. Nessuna richiede autenticazione, tranne /api/sdk/ingest e /api/github-webhook.
/api/osint/sweep generano traffico verso i target che indichi. Usali solo su infrastrutture di tua proprietà o per cui hai un’autorizzazione scritta a eseguire test. Le altre route OSINT sono passive e interrogano dataset di terze parti, non il soggetto stesso.Sistema
Liveness e contatori aggregati. Si possono interrogare periodicamente dal monitoraggio senza problemi.
Aviazione e spazio
Aeromobili, oggetti orbitali ed eliofisica.
Terra e ambiente
Feed sismici, incendi, dati atmosferici e immagini satellitari.
Geopolitica
Zone di conflitto, linee del fronte, flussi di eventi e rischio per paese.
Media e mercati
Aggregazione di notizie, trasmissioni in diretta e strumenti finanziari.
Sorveglianza e infrastrutture
Reti di telecamere, infrastrutture fisse, traffico marittimo e proxy per tile e stream.
Minacce cyber
Telemetria su vulnerabilità, attacchi e malware.
Toolkit OSINT
Gli strumenti di lookup dietro il pannello RECON. Ogni route accetta un singolo soggetto e restituisce un risultato normalizzato, quindi si combinano bene negli script. Richiedono l’accesso: con il browser autenticato nel pannello RECON il cookie di sessione viene inviato automaticamente, altrimenti rispondono 401.
Scanner Recon
Scansione attiva, delegata a un backend separato: il livello web non esegue mai scansioni direttamente. Richiede l’accesso a RECON (altrimenti 401).
Grafo delle entità
Analisi dei collegamenti tra le entità emerse nel resto della piattaforma.
Analisi AI
Correlazione basata su Gemini sui dati dei feed che fornisci. Tutti e tre sono POST e hanno un rate limit di 5 richieste al minuto per IP.
SDK Polybolos
Invia entità da una piattaforma esterna al Common Operating Picture e ricevi in streaming il quadro unificato.
Webhook
Hook in ingresso da servizi esterni.