Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Crucix — Il tuo agente di intelligence personale. Monitora il mondo da molteplici fonti di dati e ti avvisa quando qualcosa cambia. | Kitploit
Strumenti/GitHubGitHub/calesthio/crucix
OSINT (Open Source Intelligence)RicognizioneRaccolta InformazioniThreat IntelligenceApprendimento e FormazioneRisorse Curate
GitHubcalesthio/crucix

Crucix

Il tuo agente di intelligence personale. Monitora il mondo da molteplici fonti di dati e ti avvisa quando qualcosa cambia.

Vedi Repository
11.3k1.8k573 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Crucix

Il tuo terminale d'intelligenza personale. 27 fonti. Un comando. Zero cloud.

Visita il sito live: crucix.live

Live Website Open Demo

Node.js 22+ License: AGPL v3 Dependencies Sources Docker

Entra nella Signal Network

Signal Wire Ops Room

Crucix Dashboard

Altri screenshot
Sequenza di avvioMappa del mondo
AvvioMappa

Sito live: https://www.crucix.live/ Esplora prima la demo pubblica, poi clona il repository per eseguire Crucix in locale.

Crucix raccoglie il rilevamento degli incendi via satellite, il tracciamento dei voli, il monitoraggio delle radiazioni, il tracciamento delle costellazioni satellitari, gli indicatori economici, i prezzi di mercato in tempo reale, i dati sui conflitti, le liste di sanzioni e il sentiment sociale da 27 feed di intelligence open source — in parallelo, ogni 15 minuti — e visualizza tutto su un unico dashboard autonomo in stile Jarvis.

Collegalo a un LLM e diventa un assistente di intelligence bidirezionale — invia avvisi su più livelli a Telegram e Discord quando qualcosa di significativo cambia, risponde a comandi come /brief e /sweep dal tuo telefono e genera idee di trading attuabili basate su dati reali provenienti da più domini. Il tuo analista personale che veglia sul mondo mentre dormi.

Prova prima la demo live su https://www.crucix.live/, poi clona il repository quando vuoi l'intera soluzione locale.

Niente cloud. Niente telemetria. Niente abbonamenti. Basta node server.mjs e sei operativo.

Avviso su Token / Asset

[!WARNING] Crucix non ha lanciato alcun token, moneta, NFT, airdrop, prevendita o altro asset basato su blockchain. Qualsiasi token o asset digitale che utilizzi il nome, il logo o il marchio Crucix non è affiliato né approvato da Crucix. Non acquistarlo, non promuoverlo, non collegare un wallet per rivendicarlo, non firmare transazioni e non inviare fondi sulla base di post, DM o siti web di terze parti.


Perché Esiste

La maggior parte dell'intelligence in tempo reale disponibile nel mondo — immagini satellitari, livelli di radiazioni, eventi di conflitto, indicatori economici, tracciamento dei voli, attività marittima — è pubblicamente accessibile. È semplicemente dispersa tra decine di API governative, istituti di ricerca e feed di dati aperti che nessuno ha il tempo di controllare singolarmente.

Crucix riunisce tutto in un unico posto. Non dietro un paywall, non bloccato in una piattaforma aziendale, non richiede alcuna autorizzazione di sicurezza. Solo dati aperti, aggregati e correlati sulla tua macchina, aggiornati ogni 15 minuti.

È stato creato per chiunque voglia capire cosa sta realmente accadendo nel mondo in questo momento — ricercatori, giornalisti, trader, analisti OSINT, o semplicemente persone curiose che credono che l'accesso alle informazioni non dovrebbe dipendere dal tuo budget.


Avvio Rapido```bash

1. Clone the repo

git clone https://github.com/calesthio/Crucix.git cd Crucix

2. Install dependencies (just Express)

npm install

3. Copy env template and add your API keys (see below)

cp .env.example .env

4. Start the dashboard

npm run dev

root@kitploit:~
> **Se `npm run dev` fallisce silenziosamente** (termina senza alcun output), esegui Node direttamente:
> ```bash
> node --trace-warnings server.mjs
> ```
> Questo bypassa il runner di script di npm, che può inghiottire gli errori su alcuni sistemi (in particolare PowerShell su Windows). Puoi anche eseguire `node diag.mjs` per diagnosticare esattamente il problema — verifica la versione di Node, testa ogni import di modulo singolarmente e controlla la disponibilità delle porte. Vedi [Risoluzione dei problemi](#troubleshooting) per maggiori informazioni.

La dashboard si apre automaticamente all'indirizzo `http://localhost:3117` e avvia immediatamente la sua prima scansione di intelligence. Questa scansione iniziale interroga tutte le 27 fonti in parallelo e richiede in genere 30–60 secondi — la dashboard apparirà vuota finché la scansione non viene completata e non viene inviato il primo aggiornamento dati. Dopodiché, si auto-aggiorna ogni 15 minuti tramite SSE (Server-Sent Events). Non è necessario alcun aggiornamento manuale della pagina.

**Requisiti:** Node.js 22+ (usa `fetch` nativo, `await` di primo livello, ESM)

### Docker```bash
git clone https://github.com/calesthio/Crucix.git
cd Crucix
cp .env.example .env    # add your API keys
docker compose up -d

Dashboard at http://localhost:3117. Sweep data persists in ./runs/ via volume mount. Includes a health check endpoint.


What You Get

Live Dashboard

A self-contained Jarvis-style HUD with:

  • 3D WebGL globe (Globe.gl) with atmosphere glow, star field, and smooth rotation — plus a classic flat map toggle
  • 9 marker types across both views: fire detections, air traffic, radiation sites, maritime chokepoints, SDR receivers, OSINT events, health alerts, geolocated news, conflict events
  • Animated 3D flight corridor arcs between air traffic hotspots and global hubs
  • Region filters (World, Americas, Europe, Middle East, Asia Pacific, Africa) — rotates the globe or zooms the flat map
  • Live market data — indexes, crypto, energy, commodities via Yahoo Finance (no API key needed)
  • Risk gauges — VIX, high-yield spread, supply chain pressure index
  • OSINT feed — English-language posts from 17 Telegram intelligence channels (expandable)
  • News ticker — merged RSS + GDELT headlines + Telegram posts, auto-scrolling
  • Sweep delta — live panel showing what changed since last sweep (new signals, escalations, de-escalations with severity)
  • Cross-source signals — correlated intelligence across satellite, economic, conflict, and social domains
  • Nuclear watch — real-time radiation readings from Safecast + EPA RadNet
  • Space watch — CelesTrak satellite tracking: recent launches, ISS, military constellations, Starlink/OneWeb counts
  • Leverageable ideas — AI-generated trade ideas (with LLM) or signal-correlated ideas (without)

Performance Modes

The VISUALS FULL / VISUALS LITE button in the top bar only changes rendering behavior - it does not remove data sources or reduce sweep coverage.

When you switch to VISUALS LITE, the dashboard:

  • Disables decorative background effects such as the radial/grid overlays and scanlines
  • Removes expensive blur/backdrop-filter effects on panels and overlays
  • Stops non-essential animations like the logo ring blink, conflict rings, and corridor flow effects
  • Disables globe auto-rotation and turns off animated flight-arc dashes
  • Converts the horizontal news ticker and OSINT stream into static, scrollable lists instead of continuously animated marquees

Mobile-specific behavior:

  • On mobile, VISUALS LITE also forces the dashboard into flat map mode if you are currently on the globe
  • Future mobile loads will continue to start flat while low-perf mode is enabled

The preference is saved in browser local storage, so the UI will remember your last setting.

Auto-Refresh

The server runs a sweep cycle every 15 minutes (configurable). Each cycle:

  1. Queries all 27 sources in parallel (~30s)
  2. Synthesizes raw data into dashboard format
  3. Computes delta from previous run (what changed, escalated, de-escalated) — visible in the Sweep Delta panel on the dashboard
  4. Generates LLM trade ideas (if configured)
  5. Evaluates breaking news alerts — multi-tier (FLASH / PRIORITY / ROUTINE) with semantic dedup. Sends to Telegram and/or Discord if configured. Works with LLM evaluation or falls back to rule-based alerting when LLM is unavailable.
  6. Pushes update to all connected browsers via SSE

Telegram Bot (Two-Way)

Crucix doubles as an interactive Telegram bot. Beyond sending alerts, it responds to commands directly from your chat:

This requires TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID in .env. The bot polls for messages every 5 seconds (configurable via TELEGRAM_POLL_INTERVAL).

Discord Bot (Two-Way)

Crucix also supports Discord as a full-featured bot with slash commands and rich embed alerts. It mirrors the Telegram bot's capabilities with Discord-native formatting.

CommandWhat It Does
/statusSystem health, last sweep time, source status, LLM status
/sweep

Alerts are delivered as rich embeds with color-coded sidebars: red for FLASH, yellow for PRIORITY, blue for ROUTINE. Each embed includes signal details, confidence scores, and cross-domain correlations.

Setup requires: DISCORD_BOT_TOKEN, DISCORD_CHANNEL_ID, and optionally DISCORD_GUILD_ID for instant slash command registration. See API Keys Setup for details.

Webhook fallback: If you don't want to run a full bot, set DISCORD_WEBHOOK_URL instead. This enables one-way alerts (no slash commands) with zero dependencies — no discord.js needed.

Optional dependency: The full bot requires discord.js. Install it with npm install discord.js. If it's not installed, Crucix automatically falls back to webhook-only mode.

Optional LLM Layer

Connect any of 8 LLM providers for enhanced analysis:

  • AI trade ideas — quantitative analyst producing 5-8 actionable ideas citing specific data
  • Smarter alert evaluation — LLM classifies signals into FLASH/PRIORITY/ROUTINE tiers with cross-domain correlation and confidence scoring
  • Providers: Anthropic Claude, OpenAI, Google Gemini, OpenRouter (Unified API), OpenAI Codex (ChatGPT subscription), MiniMax, Mistral, Grok
  • Graceful fallback — when LLM is unavailable, a rule-based engine takes over alert evaluation. LLM failures never crash the sweep cycle.

API Keys Setup

Copy .env.example to .env at the project root:```bash cp .env.example .env

root@kitploit:~
### Richiesti per risultati ottimali (tutti gratuiti)

| Key | Source | How to Get |
|-----|--------|------------|
| `FRED_API_KEY` | Federal Reserve Economic Data | [fred.stlouisfed.org](https://fred.stlouisfed.org/docs/api/api_key.html) — immediato, gratuito |
| `FIRMS_MAP_KEY` | NASA FIRMS (dati satellitari sugli incendi) | [firms.modaps.eosdis.nasa.gov](https://firms.modaps.eosdis.nasa.gov/api/area/) — immediato, gratuito |
| `EIA_API_KEY` | US Energy Information Administration | [api.eia.gov](https://www.eia.gov/opendata/register.php) — immediato, gratuito |

Questi tre sbloccano i dati economici e satellitari più preziosi. La registrazione richiede circa 60 secondi per ciascuno.

### Opzionali (attivano fonti aggiuntive)

| Key | Source | How to Get |
|-----|--------|------------|
| `ACLED_EMAIL` + `ACLED_PASSWORD` | Dati sugli eventi di conflitto armato | [acleddata.com/register](https://acleddata.com/register/) — gratuito, OAuth2 |
| `AISSTREAM_API_KEY` | Tracciamento marittimo AIS delle navi | [aisstream.io](https://aisstream.io/) — gratuito |
| `ADSB_API_KEY` | Tracciamento aereo senza filtri | [RapidAPI](https://rapidapi.com/adsbexchange/api/adsbexchange-com1) — ~$10/mese |

### Provider LLM (opzionale, per idee potenziate con l'IA)

Imposta `LLM_PROVIDER` su uno dei seguenti valori: `anthropic`, `openai`, `gemini`, `codex`, `openrouter`, `minimax`, `mistral`, `grok`

| Provider | Chiave richiesta | Modello predefinito |
|----------|-------------|---------------|
| `anthropic` | `LLM_API_KEY` | claude-sonnet-4-6 |
| `openai` | `LLM_API_KEY` | gpt-5.4 |
| `gemini` | `LLM_API_KEY` | gemini-3.1-pro |
| `openrouter` | `LLM_API_KEY` | openrouter/auto |
| `codex` | Nessuna (usa `~/.codex/auth.json`) | gpt-5.3-codex |
| `minimax` | `LLM_API_KEY` | MiniMax-M2.5 |
| `mistral` | `LLM_API_KEY` | mistral-large-latest |
| `grok` | `LLM_API_KEY` | grok-4-latest |

Per Codex, esegui `npx @openai/codex login` per autenticarti tramite il tuo abbonamento ChatGPT.

### Bot Telegram + Avvisi (opzionale)

| Key | How to Get |
|-----|------------|
| `TELEGRAM_BOT_TOKEN` | Crea tramite [@BotFather](https://t.me/BotFather) su Telegram |
| `TELEGRAM_CHAT_ID` | Ottieni tramite [@userinfobot](https://t.me/userinfobot) |
| `TELEGRAM_CHANNELS` | *(Opzionale)* ID di canali aggiuntivi separati da virgola da monitorare oltre ai 17 canali integrati |
| `TELEGRAM_POLL_INTERVAL` | *(Opzionale)* Intervallo di polling dei comandi del bot in ms (predefinito: 5000) |

### Bot Discord + Avvisi (opzionale)

| Key | How to Get |
|-----|------------|
| `DISCORD_BOT_TOKEN` | Crea su [Portale per sviluppatori di Discord](https://discord.com/developers/applications) → Bot → Token |
| `DISCORD_CHANNEL_ID` | Fai clic con il tasto destro sul canale in Discord (Modalità sviluppatore attiva) → Copia ID canale |
| `DISCORD_GUILD_ID` | *(Opzionale)* Fai clic con il tasto destro sul server → Copia ID server. Abilita la registrazione immediata dei comandi slash (altrimenti richiede fino a 1 ora per i comandi globali) |
| `DISCORD_WEBHOOK_URL` | *(Opzionale)* Impostazioni canale → Integrazioni → Webhook → Nuovo webhook → Copia URL. Usa questa modalità solo avvisi senza bot |

**Configurazione del bot Discord:**
1. Vai al [Portale per sviluppatori di Discord](https://discord.com/developers/applications) e crea una nuova applicazione
2. Vai su **Bot** → fai clic su **Reset Token** → copia il token in `DISCORD_BOT_TOKEN`
3. Nella sezione **Privileged Gateway Intents**, abilita **Message Content Intent**
4. Vai su **OAuth2** → **URL Generator** → seleziona gli scope `bot` + `applications.commands` → seleziona i permessi `Send Messages` + `Embed Links`
5. Copia l'URL generato e aprilo nel browser per invitare il bot sul tuo server
6. Installa la dipendenza: `npm install discord.js`

Gli avvisi funzionano con o senza un LLM sia su Telegram che su Discord. Con un LLM configurato, la valutazione dei segnali è più ricca e sensibile al contesto. Senza, un motore a regole deterministico valuta i segnali in base a gravità, correlazione tra domini e numero di segnali.

### Senza alcuna chiave

Crucix funziona ancora con zero chiavi API. 18+ fonti non richiedono alcuna autenticazione. Le fonti che richiedono chiavi restituiscono errori strutturati e il resto della scansione prosegue normalmente.

---

## Architettura```
crucix/
├── server.mjs                 # Express dev server (SSE, auto-refresh, LLM, bot commands)
├── crucix.config.mjs          # Configuration with env var overrides + delta thresholds
├── diag.mjs                   # Diagnostic script — run if server fails to start
├── .env.example               # All documented env vars
├── package.json               # Runtime: express | Optional: discord.js
├── docs/                      # Screenshots for README
│
├── apis/
│   ├── briefing.mjs           # Master orchestrator — runs all 27 sources in parallel
│   ├── save-briefing.mjs      # CLI: save timestamped + latest.json
│   ├── BRIEFING_PROMPT.md     # Intelligence synthesis protocol
│   ├── BRIEFING_TEMPLATE.md   # Briefing output structure
│   ├── utils/
│   │   ├── fetch.mjs          # safeFetch() — timeout, retries, abort, auto-JSON
│   │   └── env.mjs            # .env loader (no dotenv dependency)
│   └── sources/               # 27 self-contained source modules
│       ├── gdelt.mjs          # Each exports briefing() → structured data
│       ├── fred.mjs           # Can run standalone: node apis/sources/fred.mjs
│       ├── space.mjs          # CelesTrak satellite tracking
│       ├── yfinance.mjs       # Yahoo Finance — free live market data
│       └── ...                # 23 more
│
├── dashboard/
│   ├── inject.mjs             # Data synthesis + standalone HTML injection
│   └── public/
│       └── jarvis.html        # Self-contained Jarvis HUD
│
├── lib/
│   ├── llm/                   # LLM abstraction (8 providers, raw fetch, no SDKs)
│   │   ├── provider.mjs       # Base class
│   │   ├── anthropic.mjs      # Claude
│   │   ├── openai.mjs         # GPT
│   │   ├── gemini.mjs         # Gemini
│   │   ├── grok.mjs           # Grok
│   │   ├── openrouter.mjs     # OpenRouter (Unified API)
│   │   ├── codex.mjs          # Codex (ChatGPT subscription)
│   │   ├── minimax.mjs        # MiniMax (M2.5, 204K context)
│   │   ├── mistral.mjs        # Mistral AI
│   │   ├── ideas.mjs          # LLM-powered trade idea generation
│   │   └── index.mjs          # Factory: createLLMProvider()
│   ├── delta/                 # Change tracking between sweeps
│   │   ├── engine.mjs         # Delta computation — semantic dedup, configurable thresholds, severity scoring
│   │   ├── memory.mjs         # Hot memory (3 runs, atomic writes) + cold storage (daily archives)
│   │   └── index.mjs          # Re-exports
│   └── alerts/
│       ├── telegram.mjs       # Multi-tier alerts (FLASH/PRIORITY/ROUTINE) + two-way bot commands
│       └── discord.mjs        # Discord bot (slash commands, rich embeds) + webhook fallback
│
└── runs/                      # Runtime data (gitignored)
    ├── latest.json            # Most recent sweep output
    └── memory/                # Delta memory (hot.json + cold/YYYY-MM-DD.json)

Principi di Progettazione

  • ESM puro — ogni file è .mjs con import espliciti
  • Dipendenze minime — Express è l'unica dipendenza runtime. discord.js è opzionale (per il bot Discord). I provider LLM usano fetch() grezzo, niente SDK.
  • Esecuzione parallela — Promise.allSettled() attiva tutte le 27 sorgenti simultaneamente
  • Degradazione graduale — le chiavi mancanti producono errori, non crash. I guasti LLM non bloccano le scansioni.
  • Ogni sorgente è autonoma — esegui node apis/sources/gdelt.mjs per testare qualsiasi sorgente in modo indipendente
  • Dashboard autonoma — il file HTML funziona con o senza il server

Sorgenti dati (27)

Livello 1: OSINT e geopolitica di base (11)

Livello 2: Economico e finanziario (7)

Livello 3: Meteo, ambiente, tecnologia, social, SIGINT (7)

Livello 4: Spazio e satelliti (1)

SorgenteCosa tracciaAuth
CelesTrakLanci di satelliti, tracciamento ISS, costellazioni militari, conteggi Starlink/OneWebNessuna

Livello 5: Dati di mercato in tempo reale (1)

SorgenteCosa tracciaAuth
Yahoo FinancePrezzi in tempo reale: SPY, QQQ, BTC, Oro, WTI, VIX + altri 9Nessuna

Script npm


Configurazione

Tutte le impostazioni sono in .env con valori predefiniti sensati:

Le soglie del motore delta (quanto è sensibile il sistema ai cambiamenti tra le scansioni) possono essere personalizzate in crucix.config.mjs nella sezione delta.thresholds. I valori predefiniti sono calibrati per filtrare il rumore cogliendo movimenti significativi.


Endpoint API

Quando esegui npm run dev:

EndpointDescrizione
GET /Dashboard Jarvis HUD
GET /api/data

Risoluzione dei problemi

npm run dev termina silenziosamente (nessun output, nessun errore)

Questo è un problema noto per cui lo script runner di npm può ingoiare gli errori, in particolare su Windows PowerShell. Prova nell'ordine:

1. Esegui Node direttamente (bypassa npm):```bash node --trace-warnings server.mjs

root@kitploit:~
Questo è funzionalmente identico a `npm run dev` ma fornisce l'output completo degli errori.

**2. Esegui lo script diagnostico:**```bash
node diag.mjs

Questo testa ogni import uno per uno, controlla la versione del tuo Node.js e verifica che la porta 3117 sia disponibile. Ti dirà esattamente cosa sta fallendo.

3. Controlla se la porta 3117 è già in uso:

Un'istanza precedente di Crucix potrebbe essere ancora in esecuzione in background.```powershell

Windows PowerShell

netstat -ano | findstr 3117 taskkill /F /PID <the_PID_from_above>

Or kill all Node processes

taskkill /F /IM node.exe

root@kitploit:~
Il contenuto del chunk non è stato fornito: la sezione INPUT risulta vuota. Non è possibile tradurre testo assente.```bash
# macOS / Linux
lsof -ti:3117 | xargs kill

Quindi prova a riavviare. Puoi anche cambiare la porta impostando PORT=3118 nel tuo file .env.

4. Controlla la versione di Node.js:```bash node --version

root@kitploit:~
Crucix richiede Node.js 22 o successivo. Se hai una versione precedente, scarica l'ultima LTS da [nodejs.org](https://nodejs.org/).

### La dashboard mostra pannelli vuoti dopo il primo avvio

È normale: la prima scansione impiega 30–60 secondi per interrogare tutte le 27 sorgenti. La dashboard si popolerà automaticamente al termine della scansione. Controlla il terminale per i log di avanzamento della scansione.

### Alcune sorgenti mostrano errori

Comportamento previsto. Le sorgenti che richiedono chiavi API restituiranno errori strutturati se la chiave non è impostata. Il resto della scansione continua normalmente. Controlla la sezione Source Integrity nella dashboard (o i log del server) per vedere quali sorgenti hanno fallito e perché. Le 3 chiavi gratuite più impattanti da aggiungere sono `FRED_API_KEY`, `FIRMS_MAP_KEY` e `EIA_API_KEY`.

OpenSky può anche restituire `HTTP 429` quando i suoi hotspot pubblici vengono interrogati in modo troppo aggressivo. Crucix non tenta di eludere questo limite. Espone invece la limitazione/l'errore nello stato di salute della sorgente e conserva lo snapshot non vuoto più recente del traffico aereo da `runs/`, così il layer dei voli della dashboard non diventa improvvisamente vuoto durante una scansione limitata.

### Il bot Telegram non risponde ai comandi

Assicurati che sia `TELEGRAM_BOT_TOKEN` che `TELEGRAM_CHAT_ID` siano impostati in `.env`. Il bot risponde solo ai messaggi provenienti dall'ID chat configurato (misura di sicurezza). Dovresti vedere `[Crucix] Telegram alerts enabled` e `[Crucix] Bot command polling started` nei log del server all'avvio. In caso contrario, ricontrolla il tuo token con `curl https://api.telegram.org/bot<YOUR_TOKEN>/getMe`.

### Il bot Discord non risponde ai comandi slash

Controlla questi punti in ordine:
1. Assicurati che `DISCORD_BOT_TOKEN` e `DISCORD_CHANNEL_ID` siano impostati in `.env`
2. Verifica che `discord.js` sia installato: `npm ls discord.js`. Se manca, esegui `npm install discord.js`
3. Se i comandi slash non compaiono, imposta `DISCORD_GUILD_ID` — senza di esso, i comandi globali possono impiegare fino a 1 ora per propagarsi. I comandi specifici per guild si registrano istantaneamente
4. Conferma che il bot sia stato invitato con gli scope `bot` + `applications.commands` e abbia i permessi `Send Messages` + `Embed Links` nel canale di destinazione
5. Controlla i log del server per `[Discord] Bot logged in as ...` all'avvio. Se vedi `[Discord] discord.js not installed`, installalo e riavvia
6. **Fallback solo webhook:** Se vuoi solo gli alert senza comandi slash, imposta `DISCORD_WEBHOOK_URL` invece del token del bot. Non è necessario `discord.js`.

---

## Schermate

La cartella `docs/` contiene gli screenshot della dashboard citati in questo README:

| File | Description |
|------|-------------|
| `docs/dashboard.png` | Dashboard completa — immagine hero in cima a questo README |
| `docs/boot.png` | Animazione cinematografica della sequenza di avvio |
| `docs/map.png` | Mappa mondiale D3 con tipi di marker e archi di volo |
| `docs/globe.png` | Vista 3D del globo WebGL con bagliore atmosferico e marker |

Per aggiornarli: esegui la dashboard, attendi il completamento di una scansione, poi usa i DevTools del tuo browser (`F12` → `Ctrl+Shift+P` → "Capture full size screenshot") o uno strumento come [LICEcap](https://www.cockos.com/licecap/) per GIF.

---

## Contribuire

Trovato un bug? Vuoi aggiungere una 28ª sorgente? Le PR sono benvenute. Ogni sorgente è un modulo autonomo in `apis/sources/` — basta esportare una funzione `briefing()` che restituisce dati strutturati e aggiungerla all'orchestratore in `apis/briefing.mjs`.

Se lo trovi utile, una stella aiuta anche altri a trovarlo.

Per le linee guida sui contributi, le aspettative di review e le regole per l'aggiunta di sorgenti, consulta `CONTRIBUTING.md`. Per le segnalazioni di sicurezza, consulta `SECURITY.md`.

## Contatti

Per partnership, integrazioni o altre richieste che non siano problemi, puoi contattarmi all'indirizzo `[email protected]`.

Per bug e richieste di funzionalità, utilizza GitHub Issues così la discussione rimane visibile e attuabile.

---

## Cronologia delle stelle

<a href="https://www.star-history.com/?repos=calesthio%2FCrucix&type=date&legend=top-left">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/image?repos=calesthio/Crucix&type=date&theme=dark&legend=top-left" />
    <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/image?repos=calesthio/Crucix&type=date&legend=top-left" />
    <img alt="Grafico della cronologia delle stelle" src="https://assets.kitploit.com/production/public/readmes/41561/7cd00fa07216305d19bb2b6ece0de2b2dd36eeb2786d065aef0359159e4598a8/43d9ce4f0049392bf903058716bccb8009e9bdf415dc7e9e892487d4c1f75365-display-v1.webp" />
  </picture>
</a>

---

## Licenza

AGPL-3.0
Scarica lo strumento
Vista globo 3D
Globo
CommandWhat It Does
/statusSystem health, last sweep time, source status, LLM status
/sweepTrigger a manual sweep cycle
/briefCompact text summary of the latest intelligence (direction, key metrics, top OSINT)
/portfolioPortfolio status (if Alpaca connected)
/alertsRecent alert history with tiers
/mute / /mute 2hSilence alerts for 1h (or custom duration)
/unmuteResume alerts
/helpShow all available commands
Trigger a manual sweep cycle
/briefCompact text summary of the latest intelligence
/portfolioPortfolio status (if Alpaca connected)
SorgenteCosa tracciaAuth
GDELTEventi di cronaca globale, mappatura dei conflitti (100+ lingue)Nessuna
OpenSkyTracciamento aereo ADS-B in tempo reale su 6 regioni criticheNessuna
NASA FIRMSRilevamento satellitare di incendi/anomalie termiche (latenza 3 ore)Chiave gratuita
Marittimo/AISTracciamento delle navi, navi oscurate, elusione delle sanzioniChiave gratuita
SafecastMonitoraggio delle radiazioni da scienza dei cittadini vicino a 6 siti nucleariNessuna
ACLEDEventi di conflitto armato: battaglie, esplosioni, protesteGratuita (OAuth2)
ReliefWebMonitoraggio delle crisi umanitarie dell'ONUNessuna
OMSFocolai di malattie ed emergenze sanitarieNessuna
OFACSanzioni del Tesoro USA (lista SDN)Nessuna
OpenSanctionsSanzioni globali aggregate (30+ sorgenti)Parziale
ADS-B ExchangeTracciamento aereo non filtrato, incluso l'ambito militareA pagamento
SorgenteCosa tracciaAuth
FRED22 indicatori chiave: curva dei rendimenti, CPI, VIX, tasso dei fed funds, M2Chiave gratuita
Tesoro USADebito nazionale, rendimenti, dati fiscaliNessuna
BLSCPI, disoccupazione, buste paga non agricole, PPINessuna
EIAGreggio WTI/Brent, gas naturale, scorteChiave gratuita
GSCPIIndice della pressione sulla catena di approvvigionamento globale della Fed di New YorkNessuna
USAspendingSpesa federale e contratti per la difesaNessuna
UN ComtradeFlussi commerciali di materie prime strategiche tra le grandi potenzeNessuna
SorgenteCosa tracciaAuth
NOAA/NWSAllerte meteo USA attiveNessuna
EPA RadNetMonitoraggio delle radiazioni del governo USANessuna
Brevetti USPTODepositi di brevetti in 7 aree tecnologiche strategicheNessuna
BlueskySentiment sociale su temi geopolitici/di mercatoNessuna
RedditSentiment sociale dai principali subredditOAuth
Telegram17 canali curati OSINT/conflitti/finanza (web scraping, espandibile via config)Nessuna
KiwiSDRRete globale di ricevitori radio HF (~600 ricevitori)Nessuna
ScriptComandoDescrizione
npm run devnode --trace-warnings server.mjsAvvia la dashboard con auto-aggiornamento
npm run sweepnode apis/briefing.mjsEsegue una singola scansione, output JSON su stdout
npm run injectnode dashboard/inject.mjsInietta i dati più recenti nell'HTML statico
npm run brief:savenode apis/save-briefing.mjsEsegue la scansione + salva JSON con timestamp
npm run diagnode diag.mjsEsegue la diagnostica (versione Node, import, controllo porta)
VariabilePredefinitoDescrizione
PORT3117Porta del server dashboard
REFRESH_INTERVAL_MINUTES15Intervallo di auto-aggiornamento
LLM_PROVIDERdisabilitatoanthropic, openai, gemini, codex, openrouter, minimax, mistral o grok
LLM_API_KEY—Chiave API (non necessaria per codex)
LLM_MODELpredefinito per providerSovrascrive la selezione del modello
TELEGRAM_BOT_TOKENdisabilitatoPer avvisi Telegram + comandi bot
TELEGRAM_CHAT_ID—Il tuo ID chat Telegram
TELEGRAM_CHANNELS—ID canali extra da monitorare (separati da virgola)
TELEGRAM_POLL_INTERVAL5000Intervallo di polling dei comandi bot (ms)
DISCORD_BOT_TOKENdisabilitatoPer avvisi Discord + comandi slash
DISCORD_CHANNEL_ID—Canale Discord per gli avvisi
DISCORD_GUILD_ID—ID server (registrazione immediata dei comandi slash)
DISCORD_WEBHOOK_URL—URL webhook (fallback solo avvisi, nessun bot necessario)
Dati di intelligence sintetizzati correnti (JSON)
GET /api/healthStato del server, uptime, numero di sorgenti, stato LLM
GET /eventsStream SSE per aggiornamenti push in tempo reale