Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/calesthio/crucix
OSINT (Renseignement de Sources Ouvertes)ReconnaissanceCollecte d'InformationsRenseignement sur les MenacesApprentissage et ÉducationRessources Organisées
GitHubcalesthio/crucix

Crucix

Votre agent de renseignement personnel. Surveille le monde à partir de multiples sources de données et vous alerte lorsqu'un changement se produit.

Voir le dépôt
11.3k1.8kil y a 3 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Crucix

Votre propre terminal de renseignement. 27 sources. Une commande. Zéro cloud.

Visitez le site en direct : crucix.live

Live Website Open Demo

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

Enter The Signal Network

Signal Wire Ops Room

Tableau de bord Crucix

Plus de captures d'écran
Séquence de démarrageCarte du monde
BootMap

Site en direct : https://www.crucix.live/ Explorez d'abord la démo publique, puis clonez le dépôt pour exécuter Crucix localement.

Crucix récupère la détection des incendies par satellite, le suivi des vols, la surveillance des radiations, le suivi des constellations de satellites, les indicateurs économiques, les prix du marché en direct, les données de conflit, les listes de sanctions et le sentiment social à partir de 27 flux de renseignement open source — en parallèle, toutes les 15 minutes — et rend tout sur un tableau de bord autonome de style Jarvis.

Branchez-le à un LLM et il devient un assistant de renseignement bidirectionnel — envoyant des alertes multi-niveaux à Telegram et Discord lorsque quelque chose de significatif change, répondant à des commandes comme /brief et /sweep depuis votre téléphone, et générant des idées de trading exploitables ancrées dans des données réelles inter-domaines. Votre propre analyste qui surveille le monde pendant que vous dormez.

Essayez d'abord la démo en direct sur https://www.crucix.live/, puis clonez le dépôt lorsque vous voulez la pile locale complète.

Pas de cloud. Pas de télémétrie. Pas d'abonnements. Juste node server.mjs et vous êtes opérationnel.

Avertissement sur les jetons / actifs

[!WARNING] Crucix n'a lancé aucun jeton officiel, pièce, NFT, airdrop, prévente ou autre actif basé sur la blockchain. Tout jeton ou actif numérique utilisant le nom, le logo ou la marque Crucix n'est pas affilié ni approuvé par Crucix. Ne l'achetez pas, ne le promouvez pas, ne connectez pas un portefeuille pour le réclamer, ne signez pas de transactions et n'envoyez pas de fonds sur la base de publications tierces, de messages directs ou de sites web.


Pourquoi cela existe

La plupart des renseignements en temps réel du monde — imagerie satellite, niveaux de radiation, événements de conflit, indicateurs économiques, suivi des vols, activité maritime — sont disponibles publiquement. Ils sont simplement dispersés à travers des dizaines d'API gouvernementales, d'institutions de recherche et de flux de données ouvertes que personne n'a le temps de vérifier individuellement.

Crucix rassemble tout en un seul endroit. Pas derrière un paywall, pas enfermé dans une plateforme d'entreprise, pas besoin d'habilitation de sécurité. Juste des données ouvertes, agrégées et corrélées sur votre propre machine, mises à jour toutes les 15 minutes.

Il a été conçu pour quiconque veut comprendre ce qui se passe réellement dans le monde en ce moment — chercheurs, journalistes, traders, analystes OSINT, ou simplement des personnes curieuses qui croient que l'accès à l'information ne devrait pas dépendre de votre budget.


Démarrage rapide```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:~
> **Si `npm run dev` échoue silencieusement** (se ferme sans afficher de sortie), exécutez Node directement à la place :
> ```bash
> node --trace-warnings server.mjs
> ```
> Cela contourne l'exécuteur de scripts de npm, qui peut avaler les erreurs sur certains systèmes (notamment PowerShell sous Windows). Vous pouvez également exécuter `node diag.mjs` pour diagnostiquer le problème exact — il vérifie votre version de Node, teste chaque import de module individuellement et vérifie la disponibilité du port. Voir [Dépannage](#troubleshooting) pour plus d'informations.

Le tableau de bord s'ouvre automatiquement à `http://localhost:3117` et commence immédiatement son premier balayage de renseignement. Ce balayage initial interroge les 27 sources en parallèle et prend généralement 30 à 60 secondes — le tableau de bord restera vide jusqu'à ce que le balayage se termine et pousse la première mise à jour des données. Ensuite, il s'actualise automatiquement toutes les 15 minutes via SSE (Server-Sent Events). Aucun rafraîchissement manuel de page nécessaire.

**Configuration requise :** Node.js 22+ (utilise le `fetch` natif, `await` au niveau supérieur, 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. Les données de sweep persistent dans ./runs/ via un montage de volume. Comprend un point de terminaison de vérification de santé.


Ce que vous obtenez

Tableau de bord en direct

Un HUD autonome de style Jarvis avec :

  • Globe 3D WebGL (Globe.gl) avec lueur atmosphérique, champ d'étoiles et rotation fluide — plus un bouton pour la carte plate classique
  • 9 types de marqueurs dans les deux vues : détections d'incendies, trafic aérien, sites de radiation, points de blocage maritimes, récepteurs SDR, événements OSINT, alertes sanitaires, actualités géolocalisées, événements de conflit
  • Arcs de couloirs de vol 3D animés entre les points chauds du trafic aérien et les hubs mondiaux
  • Filtres régionaux (Monde, Amériques, Europe, Moyen-Orient, Asie-Pacifique, Afrique) — fait pivoter le globe ou zoome la carte plate
  • Données de marché en direct — indices, crypto, énergie, matières premières via Yahoo Finance (aucune clé API nécessaire)
  • Indicateurs de risque — VIX, spread haut rendement, indice de pression de la chaîne d'approvisionnement
  • Flux OSINT — publications en anglais de 17 canaux de renseignement Telegram (extensible)
  • Ticker d'actualités — titres RSS + GDELT fusionnés + publications Telegram, défilement automatique
  • Delta de sweep — panneau en direct montrant ce qui a changé depuis le dernier sweep (nouveaux signaux, escalades, désescalades avec sévérité)
  • Signaux multi-sources — renseignement corrélé entre les domaines satellite, économique, conflit et social
  • Veille nucléaire — relevés de radiation en temps réel de Safecast + EPA RadNet
  • Veille spatiale — suivi satellite CelesTrak : lancements récents, ISS, constellations militaires, nombre de Starlink/OneWeb
  • Idées exploitables — idées de trading générées par IA (avec LLM) ou idées corrélées aux signaux (sans)

Modes de performance

Le bouton VISUALS FULL / VISUALS LITE dans la barre supérieure ne modifie que le comportement de rendu - il ne supprime pas les sources de données ni ne réduit la couverture de sweep.

Lorsque vous passez en VISUALS LITE, le tableau de bord :

  • Désactive les effets de fond décoratifs tels que les superpositions radiales/grille et les lignes de balayage
  • Supprime les effets coûteux de flou/filtre d'arrière-plan sur les panneaux et superpositions
  • Arrête les animations non essentielles comme le clignotement de l'anneau du logo, les anneaux de conflit et les effets de flux de couloir
  • Désactive la rotation automatique du globe et désactive les tirets d'arc de vol animés
  • Convertit le ticker d'actualités horizontal et le flux OSINT en listes statiques défilables au lieu de bandeaux animés en continu

Comportement spécifique au mobile :

  • Sur mobile, VISUALS LITE force également le tableau de bord en mode carte plate si vous êtes actuellement sur le globe
  • Les futurs chargements mobiles continueront de démarrer en mode plat tant que le mode basse performance est activé

La préférence est sauvegardée dans le stockage local du navigateur, donc l'interface se souviendra de votre dernier réglage.

Actualisation automatique

Le serveur exécute un cycle de sweep toutes les 15 minutes (configurable). Chaque cycle :

  1. Interroge les 27 sources en parallèle (~30s)
  2. Synthétise les données brutes au format tableau de bord
  3. Calcule le delta par rapport à la précédente exécution (ce qui a changé, escaladé, désescaladé) — visible dans le panneau Sweep Delta du tableau de bord
  4. Génère des idées de trading LLM (si configuré)
  5. Évalue les alertes de dernières nouvelles — multi-niveaux (FLASH / PRIORITY / ROUTINE) avec dédoublonnage sémantique. Envoie à Telegram et/ou Discord si configuré. Fonctionne avec l'évaluation LLM ou se rabat sur une alerte basée sur des règles lorsque le LLM est indisponible.
  6. Pousse la mise à jour vers tous les navigateurs connectés via SSE

Bot Telegram (Bidirectionnel)

Crucix sert également de bot Telegram interactif. Au-delà de l'envoi d'alertes, il répond aux commandes directement depuis votre chat :

Cela nécessite TELEGRAM_BOT_TOKEN et TELEGRAM_CHAT_ID dans .env. Le bot interroge les messages toutes les 5 secondes (configurable via TELEGRAM_POLL_INTERVAL).

Bot Discord (Bidirectionnel)

Crucix prend également en charge Discord en tant que bot complet avec des commandes slash et des alertes enrichies. Il reflète les capacités du bot Telegram avec un formatage natif Discord.

CommandeCe qu'elle fait
/statusSanté du système, dernier sweep, état des sources, état LLM

Les alertes sont livrées sous forme d'embeds enrichis avec des barres latérales colorées : rouge pour FLASH, jaune pour PRIORITY, bleu pour ROUTINE. Chaque embed comprend les détails du signal, les scores de confiance et les corrélations inter-domaines.

Configuration requise : DISCORD_BOT_TOKEN, DISCORD_CHANNEL_ID, et optionnellement DISCORD_GUILD_ID pour l'enregistrement instantané des commandes slash. Voir Configuration des clés API pour les détails.

Repli Webhook : Si vous ne souhaitez pas exécuter un bot complet, définissez plutôt DISCORD_WEBHOOK_URL. Cela active les alertes unidirectionnelles (pas de commandes slash) avec zéro dépendance — pas besoin de discord.js.

Dépendance optionnelle : Le bot complet nécessite discord.js. Installez-le avec npm install discord.js. S'il n'est pas installé, Crucix se rabat automatiquement sur le mode webhook uniquement.

Couche LLM optionnelle

Connectez l'un des 8 fournisseurs LLM pour une analyse améliorée :

  • Idées de trading IA — analyste quantitatif produisant 5 à 8 idées exploitables citant des données spécifiques
  • Évaluation d'alertes plus intelligente — le LLM classe les signaux en niveaux FLASH/PRIORITY/ROUTINE avec corrélation inter-domaines et score de confiance
  • Fournisseurs : Anthropic Claude, OpenAI, Google Gemini, OpenRouter (API unifiée), OpenAI Codex (abonnement ChatGPT), MiniMax, Mistral, Grok
  • Repli gracieux — lorsque le LLM est indisponible, un moteur basé sur des règles prend en charge l'évaluation des alertes. Les échecs du LLM ne font jamais planter le cycle de sweep.

Configuration des clés API

Copiez .env.example vers .env à la racine du projet :```bash cp .env.example .env

root@kitploit:~
### Requis pour de meilleurs résultats (tous gratuits)

| Clé | Source | Comment obtenir |
|-----|--------|----------------|
| `FRED_API_KEY` | Données économiques de la Réserve fédérale | [fred.stlouisfed.org](https://fred.stlouisfed.org/docs/api/api_key.html) — instantané, gratuit |
| `FIRMS_MAP_KEY` | NASA FIRMS (données satellitaires d'incendie) | [firms.modaps.eosdis.nasa.gov](https://firms.modaps.eosdis.nasa.gov/api/area/) — instantané, gratuit |
| `EIA_API_KEY` | Administration américaine d'information sur l'énergie | [api.eia.gov](https://www.eia.gov/opendata/register.php) — instantané, gratuit |

Ces trois clés débloquent les données économiques et satellitaires les plus précieuses. Chacune nécessite environ 60 secondes d'inscription.

### Optionnel (activer des sources supplémentaires)

| Clé | Source | Comment obtenir |
|-----|--------|----------------|
| `ACLED_EMAIL` + `ACLED_PASSWORD` | Données d'événements de conflits armés | [acleddata.com/register](https://acleddata.com/register/) — gratuit, OAuth2 |
| `AISSTREAM_API_KEY` | Suivi maritime AIS des navires | [aisstream.io](https://aisstream.io/) — gratuit |
| `ADSB_API_KEY` | Suivi de vols non filtré | [RapidAPI](https://rapidapi.com/adsbexchange/api/adsbexchange-com1) — ~10 $/mois |

### Fournisseur LLM (optionnel, pour des idées améliorées par IA)

Définissez `LLM_PROVIDER` sur l'une des valeurs suivantes : `anthropic`, `openai`, `gemini`, `codex`, `openrouter`, `minimax`, `mistral`, `grok`

| Fournisseur | Clé requise | Modèle par défaut |
|-------------|-------------|-------------------|
| `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` | Aucune (utilise `~/.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 |

Pour Codex, exécutez `npx @openai/codex login` pour vous authentifier via votre abonnement ChatGPT.

### Bot Telegram + Alertes (optionnel)

| Clé | Comment obtenir |
|-----|----------------|
| `TELEGRAM_BOT_TOKEN` | Créez via [@BotFather](https://t.me/BotFather) sur Telegram |
| `TELEGRAM_CHAT_ID` | Obtenez via [@userinfobot](https://t.me/userinfobot) |
| `TELEGRAM_CHANNELS` | *(Optionnel)* IDs de canaux supplémentaires séparés par des virgules à surveiller au-delà des 17 canaux intégrés |
| `TELEGRAM_POLL_INTERVAL` | *(Optionnel)* Intervalle de sondage des commandes du bot en ms (défaut : 5000) |

### Bot Discord + Alertes (optionnel)

| Clé | Comment obtenir |
|-----|----------------|
| `DISCORD_BOT_TOKEN` | Créez sur le [portail développeur Discord](https://discord.com/developers/applications) → Bot → Jeton |
| `DISCORD_CHANNEL_ID` | Faites un clic droit sur le canal dans Discord (Mode développeur activé) → Copier l'ID du canal |
| `DISCORD_GUILD_ID` | *(Optionnel)* Faites un clic droit sur le serveur → Copier l'ID du serveur. Permet l'enregistrement instantané des commandes slash (sinon, cela prend jusqu'à 1 heure pour les commandes globales) |
| `DISCORD_WEBHOOK_URL` | *(Optionnel)* Paramètres du canal → Intégrations → Webhooks → Nouveau Webhook → Copier l'URL. Utilisez ceci pour un mode alertes uniquement sans bot. |

**Configuration du bot Discord :**
1. Allez sur le [portail développeur Discord](https://discord.com/developers/applications) et créez une nouvelle application
2. Allez dans **Bot** → cliquez sur **Réinitialiser le jeton** → copiez le jeton dans `DISCORD_BOT_TOKEN`
3. Sous **Intents de passerelle privilégiés**, activez **Intention de contenu de message**
4. Allez dans **OAuth2** → **Générateur d'URL** → sélectionnez les scopes `bot` + `applications.commands` → sélectionnez les permissions `Envoyer des messages` + `Liens intégrés`
5. Copiez l'URL générée et ouvrez-la dans votre navigateur pour inviter le bot sur votre serveur
6. Installez la dépendance : `npm install discord.js`

Les alertes fonctionnent avec ou sans LLM sur Telegram et Discord. Avec un LLM configuré, l'évaluation des signaux est plus riche et plus consciente du contexte. Sans cela, un moteur de règles déterministe évalue les signaux en fonction de la gravité, de la corrélation inter-domaines et du nombre de signaux.

### Sans aucune clé

Crucix fonctionne toujours avec zéro clé API. 18 sources ou plus ne nécessitent aucune authentification. Les sources qui nécessitent des clés renvoient des erreurs structurées et le reste de l'analyse continue normalement.

---

## Architecture```
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)

Principes de conception

  • Pure ESM — chaque fichier est .mjs avec des imports explicites
  • Dépendances minimales — Express est la seule dépendance d'exécution. discord.js est optionnel (pour le bot Discord). Les fournisseurs LLM utilisent fetch() brut, pas de SDK.
  • Exécution parallèle — Promise.allSettled() déclenche les 27 sources simultanément
  • Dégradation gracieuse — les clés manquantes produisent des erreurs, pas des plantages. Les échecs LLM ne tuent pas les analyses.
  • Chaque source est autonome — exécutez node apis/sources/gdelt.mjs pour tester n'importe quelle source indépendamment
  • Tableau de bord autonome — le fichier HTML fonctionne avec ou sans le serveur

Sources de données (27)

Niveau 1 : OSINT de base et géopolitique (11)

Niveau 2 : Économique et financier (7)

Niveau 3 : Météo, Environnement, Tech, Social, SIGINT (7)

Niveau 4 : Espace et satellites (1)

SourceCe qu'elle suitAuth
CelesTrakLancements de satellites, suivi de l'ISS, constellations militaires, compteurs Starlink/OneWebAucune

Niveau 5 : Données de marché en direct (1)

SourceCe qu'elle suitAuth
Yahoo FinancePrix en temps réel : SPY, QQQ, BTC, Or, WTI, VIX + 9 autresAucune

Scripts npm


Configuration

Les seuils du moteur Delta (sensibilité du système aux changements entre les analyses) peuvent être personnalisés dans crucix.config.mjs sous la section delta.thresholds. Les valeurs par défaut sont paramétrées pour filtrer le bruit tout en captant les mouvements significatifs.


Points d'accès API

Lors de l'exécution de npm run dev :

Point d'accèsDescription
GET /Tableau de bord Jarvis HUD
GET /api/data

Dépannage

npm run dev se termine silencieusement (aucune sortie, aucune erreur)

C'est un problème connu où l'exécuteur de scripts npm peut avaler les erreurs, particulièrement sur Windows PowerShell. Essayez ceci dans l'ordre :

1. Exécutez Node directement (contourne npm) :```bash node --trace-warnings server.mjs

root@kitploit:~
This is functionally identical to `npm run dev` but gives you full error output.

**2. Exécutez le script de diagnostic :**```bash
node diag.mjs

Ce test vérifie chaque import un par un, contrôle votre version de Node.js et confirme que le port 3117 est disponible. Il vous indiquera exactement ce qui ne fonctionne pas.

3. Vérifiez si le port 3117 est déjà utilisé :

Une instance précédente de Crucix pourrait encore être en cours d'exécution en arrière-plan.```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:~
help                                         Affiche ce message d'aide et quitte
-h, -help                                    Affiche ce message d'aide et quitte
-i, -interface                               Interface réseau à utiliser (défaut : l'interface avec la route par défaut)
-p, -passive                                 Active la reconnaissance passive (sélection de fichier) - Pas d'analyse active
-rf, -recon-file                             Chemin vers le fichier de reconnaissance avec des URL (une par ligne)
-ignore-ip-csv                               Chemin vers le fichier CSV d'IP à ignorer (une IP par ligne)
-ip                                          IP cible (optionnel, une seule IP)
-f, -file                                    Chemin vers le fichier de cibles avec IP/Hôtes (un par ligne)
-pn, -ports                                  Ports séparés par des virgules à analyser pour les ports web courants (défaut : principaux ports web)
-st, -scan-type                              Type d'analyse : fast (rapide) ou full (complet) (défaut : fast)
-t, -threads                                 Nombre de threads (défaut : 30)
-o, -output                                  Répertoire de sortie (défaut : ./output)
-s, -spider                                  Active le crawling après l'analyse active
-d, -depth                                   Profondeur du spidering (défaut : 3)
-sleep                                       Délai d'attente entre les requêtes du spider (défaut : 0)
-temp-redirects                              Traite les redirections temporaires (302) comme permanentes pour éviter les doublons
-info                                        Active les informations détaillées sur les résultats
-fl, -follow-links                           Suit les liens vers les pages de la nouvelle portée
-pl, -parallel-links                         Nombre de vérifications de liens en parallèle (défaut : 5)
-k, -insecure                                Désactive la vérification TLS (NON SÉCURISÉ)
-ct, -content-type                           Filtre par type de contenu de réponse spécifique
-sc, -status-code                            Codes de statut séparés par des virgules à afficher (défaut : tous)
-x, -proxy                                   URL du proxy (ex. : http://127.0.0.1:8080)
-H, -headers                                 En-têtes personnalisés sous forme de chaîne (ex. : "Header1: Val1, Header2: Val2")
-payloads                                    Active les tests de payload XSS/SQLi sur les paramètres de formulaire
-timeout                                     Délai d'attente pour les requêtes HTTP (secondes, défaut : 10)
-retries                                     Nombre de tentatives pour les requêtes échouées (défaut : 2)
-u, -update                                  Met à jour les signatures depuis le dépôt GitHub
-v, -version                                 Affiche les informations de version```bash
# macOS / Linux
lsof -ti:3117 | xargs kill

Essayez ensuite de redémarrer. Vous pouvez aussi changer le port en définissant PORT=3118 dans votre fichier .env.

4. Vérifier la version de Node.js :```bash node --version

root@kitploit:~
Crucix nécessite Node.js 22 ou ultérieur. Si vous avez une version plus ancienne, téléchargez la dernière LTS depuis [nodejs.org](https://nodejs.org/).

### Le tableau de bord affiche des panneaux vides après le premier démarrage

C'est normal — la première analyse prend 30 à 60 secondes pour interroger les 27 sources. Le tableau de bord se remplira automatiquement une fois l'analyse terminée. Vérifiez le terminal pour les journaux de progression de l'analyse.

### Certaines sources affichent des erreurs

Comportement attendu. Les sources nécessitant une clé API renverront des erreurs structurées si la clé n'est pas définie. Le reste de l'analyse se poursuit normalement. Consultez la section Source Integrity dans le tableau de bord (ou les journaux du serveur) pour voir quelles sources ont échoué et pourquoi. Les 3 clés gratuites les plus impactantes à ajouter sont `FRED_API_KEY`, `FIRMS_MAP_KEY`, et `EIA_API_KEY`.

OpenSky peut également renvoyer `HTTP 429` lorsque ses hotspots publics sont interrogés de manière trop agressive. Crucix n'essaie pas de contourner cette limite. Au lieu de cela, il signale le ralentissement/l'erreur dans l'état de la source et conserve l'instantané de trafic aérien non vide le plus récent de `runs/` afin que la couche de vol du tableau de bord ne devienne pas soudainement vide lors d'une analyse limitée.

### Le bot Telegram ne répond pas aux commandes

Assurez-vous que `TELEGRAM_BOT_TOKEN` et `TELEGRAM_CHAT_ID` sont définis dans `.env`. Le bot ne répond qu'aux messages provenant de l'ID de chat configuré (mesure de sécurité). Vous devriez voir `[Crucix] Telegram alerts enabled` et `[Crucix] Bot command polling started` dans les journaux du serveur au démarrage. Sinon, vérifiez votre token avec `curl https://api.telegram.org/bot<YOUR_TOKEN>/getMe`.

### Le bot Discord ne répond pas aux commandes slash

Vérifiez ceci dans l'ordre :
1. Assurez-vous que `DISCORD_BOT_TOKEN` et `DISCORD_CHANNEL_ID` sont définis dans `.env`
2. Vérifiez que `discord.js` est installé : `npm ls discord.js`. Si manquant, exécutez `npm install discord.js`
3. Si les commandes slash n'apparaissent pas, définissez `DISCORD_GUILD_ID` — sans cela, les commandes globales peuvent prendre jusqu'à 1 heure pour se propager. Les commandes spécifiques au serveur s'enregistrent instantanément
4. Confirmez que le bot a été invité avec les portées `bot` + `applications.commands` et dispose des permissions `Send Messages` + `Embed Links` dans le canal cible
5. Vérifiez les journaux du serveur pour `[Discord] Bot logged in as ...` au démarrage. Si vous voyez `[Discord] discord.js not installed`, installez-le et redémarrez
6. **Solution de repli par webhook uniquement :** Si vous voulez juste des alertes sans commandes slash, définissez `DISCORD_WEBHOOK_URL` au lieu du token du bot. Pas besoin de `discord.js`.

---

## Captures d'écran

Le dossier `docs/` contient des captures d'écran du tableau de bord référencées par ce README :

| Fichier | Description |
|------|-------------|
| `docs/dashboard.png` | Tableau de bord complet — image principale en haut de ce README |
| `docs/boot.png` | Animation cinématique de la séquence de démarrage |
| `docs/map.png` | Carte mondiale D3 avec types de marqueurs et arcs de vol |
| `docs/globe.png` | Vue globe 3D WebGL avec lueur atmosphérique et marqueurs |

Pour les mettre à jour : exécutez le tableau de bord, attendez la fin d'une analyse, puis utilisez les DevTools de votre navigateur (`F12` → `Ctrl+Shift+P` → "Capture full size screenshot") ou un outil comme [LICEcap](https://www.cockos.com/licecap/) pour les GIF.

---

## Contribuer

Vous avez trouvé un bug ? Vous voulez ajouter une 28e source ? Les PRs sont les bienvenues. Chaque source est un module autonome dans `apis/sources/` — il suffit d'exporter une fonction `briefing()` qui renvoie des données structurées et de l'ajouter à l'orchestrateur dans `apis/briefing.mjs`.

Si vous trouvez cela utile, une étoile aide les autres à le trouver aussi.

Pour les directives de contribution, les attentes de révision et les règles d'ajout de source, consultez `CONTRIBUTING.md`. Pour les rapports de sécurité, consultez `SECURITY.md`.

## Contact

Pour les partenariats, intégrations ou autres demandes non liées à des problèmes, vous pouvez me joindre à `[email protected]`.

Pour les bogues et demandes de fonctionnalités, veuillez utiliser GitHub Issues afin que la discussion reste visible et exploitable.

---

## Star History

<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="Star History Chart" src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" />
  </picture>
</a>

---

## Licence

AGPL-3.0
Télécharger l’outil
Vue du globe 3D
Globe
CommandeCe qu'elle fait
/statusSanté du système, dernier sweep, état des sources, état LLM
/sweepDéclencher un cycle de sweep manuel
/briefRésumé textuel compact des dernières informations (direction, métriques clés, top OSINT)
/portfolioÉtat du portefeuille (si Alpaca connecté)
/alertsHistorique récent des alertes avec niveaux
/mute / /mute 2hSilencer les alertes pendant 1h (ou durée personnalisée)
/unmuteReprendre les alertes
/helpAfficher toutes les commandes disponibles
/sweep
Déclencher un cycle de sweep manuel
/briefRésumé textuel compact des dernières informations
/portfolioÉtat du portefeuille (si Alpaca connecté)
SourceCe qu'elle suitAuth
GDELTÉvénements d'actualité mondiaux, cartographie des conflits (100+ langues)Aucune
OpenSkySuivi de vol ADS-B en temps réel dans 6 régions sensiblesAucune
NASA FIRMSDétection d'incendies/anomalies thermiques par satellite (latence 3h)Clé gratuite
Maritime/AISSuivi des navires, navires fantômes, contournement des sanctionsClé gratuite
SafecastSurveillance citoyenne des radiations près de 6 sites nucléairesAucune
ACLEDÉvénements de conflit armé : batailles, explosions, protestationsGratuit (OAuth2)
ReliefWebSuivi des crises humanitaires de l'ONUAucune
OMSÉpidémies et urgences sanitairesAucune
OFACSanctions du Trésor américain (liste SDN)Aucune
OpenSanctionsSanctions mondiales agrégées (30+ sources)Partielle
ADS-B ExchangeSuivi de vol non filtré incluant le militairePayant
SourceCe qu'elle suitAuth
FRED22 indicateurs clés : courbe des taux, IPC, VIX, fed funds, M2Clé gratuite
Trésor américainDette nationale, rendements, données fiscalesAucune
BLSIPC, chômage, emplois non agricoles, PPIAucune
EIABrut WTI/Brent, gaz naturel, stocksClé gratuite
GSCPIIndice des pressions sur la chaîne d'approvisionnement mondiale de la Fed de NYAucune
USAspendingDépenses fédérales et contrats de défenseAucune
ONU ComtradeFlux commerciaux de matières premières stratégiques entre grandes puissancesAucune
SourceCe qu'elle suitAuth
NOAA/NWSAlertes météo actives aux États-UnisAucune
EPA RadNetSurveillance des radiations par le gouvernement américainAucune
USPTO PatentsDépôts de brevets dans 7 domaines technologiques stratégiquesAucune
BlueskySentiment social sur les sujets géopolitiques/marchésAucune
RedditSentiment social provenant de subreddits clésOAuth
Telegram17 chaînes OSINT/conflit/finance sélectionnées (web scraping, extensible via config)Aucune
KiwiSDRRéseau mondial de récepteurs radio HF (~600 récepteurs)Aucune
ScriptCommandeDescription
npm run devnode --trace-warnings server.mjsLancer le tableau de bord avec auto-rafraîchissement
npm run sweepnode apis/briefing.mjsExécuter une analyse unique, sortie JSON vers stdout
npm run injectnode dashboard/inject.mjsInjecter les dernières données dans le HTML statique
npm run brief:savenode apis/save-briefing.mjsExécuter l'analyse + enregistrer le JSON horodaté
npm run diagnode diag.mjsExécuter les diagnostics (version de Node, imports, vérification du port)
VariableDéfautDescription
PORT3117Port du serveur du tableau de bord
REFRESH_INTERVAL_MINUTES15Intervalle d'auto-rafraîchissement
LLM_PROVIDERdisabledanthropic, openai, gemini, codex, openrouter, minimax, mistral, or grok
LLM_API_KEY—Clé API (non nécessaire pour codex)
LLM_MODELper-provider defaultRemplacement de la sélection du modèle
TELEGRAM_BOT_TOKENdisabledPour les alertes Telegram + commandes du bot
TELEGRAM_CHAT_ID—Votre ID de chat Telegram
TELEGRAM_CHANNELS—IDs de canaux supplémentaires à surveiller (séparés par des virgules)
TELEGRAM_POLL_INTERVAL5000Intervalle de sondage des commandes du bot (ms)
DISCORD_BOT_TOKENdisabledPour les alertes Discord + commandes slash
DISCORD_CHANNEL_ID—Canal Discord pour les alertes
DISCORD_GUILD_ID—ID du serveur (enregistrement instantané des commandes slash)
DISCORD_WEBHOOK_URL—URL du webhook (solution de secours uniquement alertes, pas de bot nécessaire)
Données d'intelligence synthétisées actuelles (JSON)
GET /api/healthStatut du serveur, temps de fonctionnement, nombre de sources, statut LLM
GET /eventsFlux SSE pour les mises à jour push en direct