Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/calesthio/crucix
OSINT (Inteligencia de Fuentes Abiertas)ReconocimientoRecopilación de InformaciónInteligencia de AmenazasAprendizaje y EducaciónRecursos Curados
GitHubcalesthio/crucix

Crucix

Tu agente de inteligencia personal. Vigila el mundo desde múltiples fuentes de datos y te avisa cuando algo cambia.

Ver Repositorio
11.3k1.8khace 3 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Crucix — Tu agente de inteligencia personal. Vigila el mundo desde múltiples fuentes de datos y te avisa cuando algo cambia. | Kitploit
Sitio web

Crucix

Tu propio terminal de inteligencia. 27 fuentes. Un comando. Cero nube.

Visita el sitio en vivo: crucix.live

Live Website Open Demo

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

Entra en The Signal Network

Signal Wire Ops Room

Crucix Dashboard

Más capturas de pantalla
Secuencia de arranqueMapa mundial
ArranqueMapa

Sitio web en vivo: https://www.crucix.live/ Explora primero la demo pública y luego clona el repositorio para ejecutar Crucix localmente.

Crucix extrae detección de incendios por satélite, seguimiento de vuelos, monitoreo de radiación, seguimiento de constelaciones de satélites, indicadores económicos, precios de mercado en vivo, datos de conflictos, listas de sanciones y sentimiento social de 27 fuentes de inteligencia de código abierto — en paralelo, cada 15 minutos — y lo muestra todo en un único panel de control estilo Jarvis autocontenido.

Conéctalo a un LLM y se convierte en un asistente de inteligencia bidireccional — que envía alertas de varios niveles a Telegram y Discord cuando algo relevante cambia, responde a comandos como /brief y /sweep desde tu teléfono, y genera ideas de trading accionables basadas en datos reales de varios dominios. Tu propio analista que vigila el mundo mientras duermes.

Prueba primero la demo en vivo en https://www.crucix.live/, y luego clona el repositorio cuando quieras la pila local completa.

Sin nube. Sin telemetría. Sin suscripciones. Solo node server.mjs y ya estás en marcha.

Advertencia sobre tokens / activos

[!WARNING] Crucix no ha lanzado ningún token, moneda, NFT, airdrop, preventa u otro activo basado en blockchain oficial. Cualquier token o activo digital que use el nombre, logotipo o marca de Crucix no está afiliado ni respaldado por Crucix. No lo compres, no lo promuevas, no conectes una cartera para reclamarlo, no firmes transacciones ni envíes fondos basándote en publicaciones, mensajes directos o sitios web de terceros.


Por Qué Existe

La mayor parte de la inteligencia en tiempo real del mundo — imágenes satelitales, niveles de radiación, eventos de conflicto, indicadores económicos, seguimiento de vuelos, actividad marítima — está disponible públicamente. Simplemente está dispersa en docenas de APIs gubernamentales, instituciones de investigación y fuentes de datos abiertos que nadie tiene tiempo de revisar individualmente.

Crucix lo reúne todo en un solo lugar. No detrás de un muro de pago, ni encerrado en una plataforma empresarial, ni requiriendo una autorización de seguridad. Solo datos abiertos, agregados y correlacionados en tu propia máquina, actualizados cada 15 minutos.

Fue construido para cualquiera que quiera entender lo que realmente está sucediendo en el mundo ahora mismo — investigadores, periodistas, traders, analistas de OSINT o simplemente personas curiosas que creen que el acceso a la información no debería depender de tu presupuesto.


Inicio Rápido```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` falla silenciosamente** (termina sin mostrar salida), ejecuta Node directamente en su lugar:
> ```bash
> node --trace-warnings server.mjs
> ```
> Esto evita el ejecutor de scripts de npm, que puede ocultar errores en algunos sistemas (particularmente PowerShell en Windows). También puedes ejecutar `node diag.mjs` para diagnosticar el problema exacto: comprueba tu versión de Node, prueba cada importación de módulo individualmente y verifica la disponibilidad del puerto. Consulta [Solución de problemas](#troubleshooting) para más información.

El panel se abre automáticamente en `http://localhost:3117` e inmediatamente comienza su primer barrido de inteligencia. Este barrido inicial consulta las 27 fuentes en paralelo y normalmente tarda entre 30 y 60 segundos: el panel aparecerá vacío hasta que el barrido se complete y envíe la primera actualización de datos. Después, se auto-refresca cada 15 minutos mediante SSE (Server-Sent Events). No es necesario refrescar la página manualmente.

**Requisitos:** Node.js 22+ (usa `fetch` nativo, `await` de nivel superior, 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

Panel de control en http://localhost:3117. Los datos del barrido persisten en ./runs/ mediante montaje de volumen. Incluye un endpoint de comprobación de estado.


Qué Obtienes

Panel en Vivo

Un HUD autónomo estilo Jarvis con:

  • Globo 3D WebGL (Globe.gl) con resplandor atmosférico, campo de estrellas y rotación suave — además de un conmutador al clásico mapa plano
  • 9 tipos de marcadores en ambas vistas: detecciones de incendios, tráfico aéreo, sitios de radiación, puntos de estrangulamiento marítimos, receptores SDR, eventos OSINT, alertas de salud, noticias geolocalizadas, eventos de conflicto
  • Arcos animados de corredores de vuelo en 3D entre puntos calientes de tráfico aéreo y centros globales
  • Filtros de región (Mundo, Américas, Europa, Oriente Medio, Asia-Pacífico, África): rota el globo o hace zoom en el mapa plano
  • Datos de mercado en vivo: índices, criptomonedas, energía, materias primas vía Yahoo Finance (sin necesidad de clave API)
  • Medidores de riesgo: VIX, diferencial de alto rendimiento, índice de presión de la cadena de suministro
  • Fuente OSINT: publicaciones en inglés de 17 canales de inteligencia de Telegram (ampliable)
  • Ticker de noticias: titulares combinados de RSS + GDELT + publicaciones de Telegram, con desplazamiento automático
  • Delta de barrido: panel en vivo que muestra qué cambió desde el último barrido (nuevas señales, escaladas, desescaladas con severidad)
  • Señales entre fuentes: inteligencia correlacionada entre dominios satelital, económico, de conflicto y social
  • Vigilancia nuclear: lecturas de radiación en tiempo real de Safecast + EPA RadNet
  • Vigilancia espacial: seguimiento satelital de CelesTrak: lanzamientos recientes, ISS, constelaciones militares, recuentos de Starlink/OneWeb
  • Ideas aprovechables: ideas de trading generadas por IA (con LLM) o ideas correlacionadas con señales (sin LLM)

Modos de Rendimiento

El botón VISUALS FULL / VISUALS LITE en la barra superior solo cambia el comportamiento de renderizado - no elimina fuentes de datos ni reduce la cobertura del barrido.

Cuando cambias a VISUALS LITE, el panel:

  • Desactiva efectos decorativos de fondo como las superposiciones radiales/reticulares y las líneas de escaneo
  • Elimina los efectos costosos de desenfoque/backdrop-filter en paneles y superposiciones
  • Detiene animaciones no esenciales como el parpadeo del anillo del logo, los anillos de conflicto y los efectos de flujo de corredores
  • Desactiva la rotación automática del globo y apaga los trazos discontinuos animados de los arcos de vuelo
  • Convierte el ticker de noticias horizontal y el flujo OSINT en listas estáticas y desplazables en lugar de marquesinas animadas continuamente

Comportamiento específico para móviles:

  • En móviles, VISUALS LITE también fuerza el panel al modo de mapa plano si actualmente estás en el globo
  • Las cargas posteriores en móvil seguirán comenzando en mapa plano mientras el modo de bajo rendimiento esté habilitado

La preferencia se guarda en el almacenamiento local del navegador, por lo que la interfaz recordará tu última configuración.

Actualización Automática

El servidor ejecuta un ciclo de barrido cada 15 minutos (configurable). Cada ciclo:

  1. Consulta las 27 fuentes en paralelo (~30s)
  2. Sintetiza los datos brutos en el formato del panel
  3. Calcula el delta desde la ejecución anterior (qué cambió, escaló o desescaló) - visible en el panel Sweep Delta del panel principal
  4. Genera ideas de trading con LLM (si está configurado)
  5. Evalúa alertas de noticias de última hora - multinivel (FLASH / PRIORITY / ROUTINE) con deduplicación semántica. Las envía a Telegram y/o Discord si está configurado. Funciona con evaluación mediante LLM o recurre a alertas basadas en reglas cuando el LLM no está disponible.
  6. Envía la actualización a todos los navegadores conectados mediante SSE

Bot de Telegram (Bidireccional)

Crucix también funciona como un bot interactivo de Telegram. Además de enviar alertas, responde a comandos directamente desde tu chat:

Esto requiere TELEGRAM_BOT_TOKEN y TELEGRAM_CHAT_ID en .env. El bot sondea los mensajes cada 5 segundos (configurable mediante TELEGRAM_POLL_INTERVAL).

Bot de Discord (Bidireccional)

Crucix también admite Discord como un bot completo con comandos de barra y alertas rich embed. Refleja las capacidades del bot de Telegram con formato nativo de Discord.

ComandoQué Hace
/statusEstado del sistema, hora del último barrido, estado de las fuentes, estado del LLM

Las alertas se envían como rich embeds con barras laterales de colores: rojo para FLASH, amarillo para PRIORITY, azul para ROUTINE. Cada embed incluye detalles de la señal, puntuaciones de confianza y correlaciones entre dominios.

Configuración requerida: DISCORD_BOT_TOKEN, DISCORD_CHANNEL_ID y, opcionalmente, DISCORD_GUILD_ID para el registro instantáneo de comandos de barra. Consulta Configuración de Claves API para más detalles.

Alternativa con Webhook: Si no quieres ejecutar un bot completo, configura DISCORD_WEBHOOK_URL en su lugar. Esto habilita alertas unidireccionales (sin comandos de barra) con cero dependencias - no se necesita discord.js.

Dependencia opcional: El bot completo requiere discord.js. Instálalo con npm install discord.js. Si no está instalado, Crucix recurre automáticamente al modo de solo webhook.

Capa LLM Opcional

Conecta cualquiera de los 8 proveedores de LLM para un análisis mejorado:

  • Ideas de trading con IA — analista cuantitativo que produce entre 5 y 8 ideas accionables citando datos específicos
  • Evaluación de alertas más inteligente — el LLM clasifica las señales en niveles FLASH/PRIORITY/ROUTINE con correlación entre dominios y puntuación de confianza
  • Proveedores: Anthropic Claude, OpenAI, Google Gemini, OpenRouter (API unificada), OpenAI Codex (suscripción de ChatGPT), MiniMax, Mistral, Grok
  • Respaldo elegante — cuando el LLM no está disponible, un motor basado en reglas se hace cargo de la evaluación de alertas. Los fallos del LLM nunca interrumpen el ciclo de barrido.

Configuración de Claves API

Copia .env.example a .env en la raíz del proyecto:```bash cp .env.example .env

root@kitploit:~
### Requerido para mejores resultados (todo gratuito)

| Clave | Fuente | Cómo obtenerla |
|-----|--------|------------|
| `FRED_API_KEY` | Datos Económicos de la Reserva Federal | [fred.stlouisfed.org](https://fred.stlouisfed.org/docs/api/api_key.html) — instantáneo, gratuito |
| `FIRMS_MAP_KEY` | NASA FIRMS (datos satelitales de incendios) | [firms.modaps.eosdis.nasa.gov](https://firms.modaps.eosdis.nasa.gov/api/area/) — instantáneo, gratuito |
| `EIA_API_KEY` | Administración de Información Energética de EE. UU. | [api.eia.gov](https://www.eia.gov/opendata/register.php) — instantáneo, gratuito |

Estas tres claves desbloquean los datos económicos y satelitales más valiosos. Cada una tarda unos 60 segundos en registrarse.

### Opcional (habilita fuentes adicionales)

| Clave | Fuente | Cómo obtenerla |
|-----|--------|------------|
| `ACLED_EMAIL` + `ACLED_PASSWORD` | Datos de eventos de conflictos armados | [acleddata.com/register](https://acleddata.com/register/) — gratuito, OAuth2 |
| `AISSTREAM_API_KEY` | Seguimiento de embarcaciones AIS marítimas | [aisstream.io](https://aisstream.io/) — gratuito |
| `ADSB_API_KEY` | Seguimiento de vuelos sin filtrar | [RapidAPI](https://rapidapi.com/adsbexchange/api/adsbexchange-com1) — ~$10/mes |

### Proveedor de LLM (opcional, para ideas mejoradas con IA)

Configura `LLM_PROVIDER` como uno de los siguientes: `anthropic`, `openai`, `gemini`, `codex`, `openrouter`, `minimax`, `mistral`, `grok`

| Proveedor | Clave requerida | Modelo por defecto |
|----------|-------------|---------------|
| `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` | Ninguna (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 |

Para Codex, ejecuta `npx @openai/codex login` para autenticarte mediante tu suscripción de ChatGPT.

### Bot de Telegram + Alertas (opcional)

| Clave | Cómo obtenerla |
|-----|------------|
| `TELEGRAM_BOT_TOKEN` | Créalo a través de [@BotFather](https://t.me/BotFather) en Telegram |
| `TELEGRAM_CHAT_ID` | Consíguelo a través de [@userinfobot](https://t.me/userinfobot) |
| `TELEGRAM_CHANNELS` | *(Opcional)* IDs de canales adicionales separados por comas para monitorear además de los 17 canales integrados |
| `TELEGRAM_POLL_INTERVAL` | *(Opcional)* Intervalo de sondeo de comandos del bot en ms (por defecto: 5000) |

### Bot de Discord + Alertas (opcional)

| Clave | Cómo obtenerla |
|-----|------------|
| `DISCORD_BOT_TOKEN` | Créalo en [Portal para desarrolladores de Discord](https://discord.com/developers/applications) → Bot → Token |
| `DISCORD_CHANNEL_ID` | Haz clic derecho en el canal de Discord (Modo desarrollador activado) → Copiar ID de canal |
| `DISCORD_GUILD_ID` | *(Opcional)* Haz clic derecho en el servidor → Copiar ID de servidor. Habilita el registro instantáneo de comandos de barra (de lo contrario, los comandos globales pueden tardar hasta 1 hora) |
| `DISCORD_WEBHOOK_URL` | *(Opcional)* Ajustes del canal → Integraciones → Webhooks → Nuevo webhook → Copiar URL. Usa esto para el modo solo alertas sin un bot |

**Configuración del bot de Discord:**
1. Ve al [Portal para desarrolladores de Discord](https://discord.com/developers/applications) y crea una nueva aplicación
2. Ve a **Bot** → haz clic en **Restablecer token** → copia el token en `DISCORD_BOT_TOKEN`
3. En **Intenciones de puerta de enlace privilegiadas**, habilita **Intención de contenido de mensajes**
4. Ve a **OAuth2** → **Generador de URL** → selecciona los alcances `bot` + `applications.commands` → selecciona los permisos `Send Messages` + `Embed Links`
5. Copia la URL generada y ábrela en tu navegador para invitar al bot a tu servidor
6. Instala la dependencia: `npm install discord.js`

Las alertas funcionan con o sin un LLM tanto en Telegram como en Discord. Con un LLM configurado, la evaluación de señales es más rica y consciente del contexto. Sin uno, un motor de reglas determinista evalúa las señales según la severidad, la correlación entre dominios y el recuento de señales.

### Sin ninguna clave

Crucix sigue funcionando con cero claves API. Más de 18 fuentes no requieren autenticación en absoluto. Las fuentes que necesitan claves devuelven errores estructurados y el resto del barrido continúa con normalidad.

---

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

Principios de diseño

  • ESM puro — cada archivo es .mjs con imports explícitos
  • Dependencias mínimas — Express es la única dependencia en tiempo de ejecución. discord.js es opcional (para el bot de Discord). Los proveedores de LLM usan fetch() nativo, sin SDK.
  • Ejecución paralela — Promise.allSettled() lanza las 27 fuentes simultáneamente
  • Degradación elegante — las claves faltantes producen errores, no fallos. Los fallos de LLM no detienen los barridos.
  • Cada fuente es independiente — ejecuta node apis/sources/gdelt.mjs para probar cualquier fuente de forma independiente
  • Panel autocontenido — el archivo HTML funciona con o sin el servidor

Fuentes de datos (27)

Nivel 1: OSINT central y geopolítico (11)

Nivel 2: Económico y financiero (7)

Nivel 3: Clima, medio ambiente, tecnología, social, SIGINT (7)

Nivel 4: Espacio y satélites (1)

FuenteQué rastreaAutenticación
CelesTrakLanzamientos de satélites, seguimiento de la ISS, constelaciones militares, recuentos de Starlink/OneWebNinguna

Nivel 5: Datos de mercado en vivo (1)

FuenteQué rastreaAutenticación
Yahoo FinancePrecios en tiempo real: SPY, QQQ, BTC, Oro, WTI, VIX + 9 másNinguna

Scripts de npm


Configuración

Todos los ajustes están en .env con valores predeterminados razonables:

Los umbrales del motor delta (qué tan sensible es el sistema a los cambios entre barridos) se pueden personalizar en crucix.config.mjs en la sección delta.thresholds. Los valores predeterminados están ajustados para filtrar el ruido y detectar movimientos significativos.


Endpoints de API

Al ejecutar npm run dev:

EndpointDescripción
GET /Panel Jarvis HUD
GET /api/data

Solución de problemas

npm run dev termina silenciosamente (sin salida, sin error)

Es un problema conocido en el que el ejecutor de scripts de npm puede tragarse los errores, especialmente en Windows PowerShell. Prueba lo siguiente en orden:

1. Ejecuta Node directamente (omite npm):```bash node --trace-warnings server.mjs

root@kitploit:~
Esto es funcionalmente idéntico a `npm run dev` pero te da la salida de errores completa.

**2. Ejecuta el script de diagnóstico:**```bash
node diag.mjs

Esto prueba cada import uno por uno, comprueba tu versión de Node.js y verifica que el puerto 3117 esté disponible. Te dirá exactamente qué está fallando.

3. Comprueba si el puerto 3117 ya está en uso:

Una instancia anterior de Crucix puede seguir ejecutándose en segundo plano.```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:~
El contenido de entrada está vacío. No hay texto que traducir en este fragmento.```bash
# macOS / Linux
lsof -ti:3117 | xargs kill

Entonces intenta iniciar de nuevo. También puedes cambiar el puerto estableciendo PORT=3118 en tu archivo .env.

4. Comprueba la versión de Node.js:```bash node --version

root@kitploit:~
Crucix requiere Node.js 22 o posterior. Si tienes una versión anterior, descarga la última LTS desde [nodejs.org](https://nodejs.org/).

### El panel muestra paneles vacíos tras el primer inicio

Esto es normal: el primer barrido tarda entre 30 y 60 segundos en consultar las 27 fuentes. El panel se rellenará automáticamente cuando el barrido se complete. Revisa la terminal para ver los registros de progreso del barrido.

### Algunas fuentes muestran errores

Comportamiento esperado. Las fuentes que requieren claves de API devolverán errores estructurados si la clave no está configurada. El resto del barrido continúa con normalidad. Revisa la sección Integridad de fuentes en el panel (o los registros del servidor) para ver qué fuentes fallaron y por qué. Las 3 claves gratuitas de mayor impacto que puedes añadir son `FRED_API_KEY`, `FIRMS_MAP_KEY` y `EIA_API_KEY`.

OpenSky también puede devolver `HTTP 429` cuando sus puntos de acceso públicos se consultan de forma demasiado agresiva. Crucix no intenta evadir ese límite. En su lugar, muestra la limitación/error en el estado de las fuentes y conserva la instantánea más reciente no vacía de tráfico aéreo de `runs/` para que la capa de vuelos del panel no quede vacía de repente durante un barrido limitado.

### El bot de Telegram no responde a los comandos

Asegúrate de que tanto `TELEGRAM_BOT_TOKEN` como `TELEGRAM_CHAT_ID` están configurados en `.env`. El bot solo responde a mensajes del ID de chat configurado (medida de seguridad). Deberías ver `[Crucix] Telegram alerts enabled` y `[Crucix] Bot command polling started` en los registros del servidor al iniciar. Si no es así, verifica tu token con `curl https://api.telegram.org/bot<YOUR_TOKEN>/getMe`.

### El bot de Discord no responde a los comandos de barra

Revisa estos puntos en orden:
1. Asegúrate de que `DISCORD_BOT_TOKEN` y `DISCORD_CHANNEL_ID` están configurados en `.env`
2. Verifica que `discord.js` esté instalado: `npm ls discord.js`. Si falta, ejecuta `npm install discord.js`
3. Si los comandos de barra no aparecen, configura `DISCORD_GUILD_ID` — sin él, los comandos globales pueden tardar hasta 1 hora en propagarse. Los comandos específicos de servidor se registran al instante
4. Confirma que el bot fue invitado con los ámbitos `bot` + `applications.commands` y tiene permisos de `Send Messages` + `Embed Links` en el canal de destino
5. Revisa los registros del servidor para ver `[Discord] Bot logged in as ...` al iniciar. Si ves `[Discord] discord.js not installed`, instala y reinicia
6. **Solución alternativa solo con webhook:** Si solo quieres alertas sin comandos de barra, configura `DISCORD_WEBHOOK_URL` en lugar del token del bot. No se necesita `discord.js`.

---

## Capturas de pantalla

La carpeta `docs/` contiene capturas de pantalla del panel a las que hace referencia este README:

| Archivo | Descripción |
|------|-------------|
| `docs/dashboard.png` | Panel completo: imagen principal al inicio de este README |
| `docs/boot.png` | Animación cinematográfica de la secuencia de arranque |
| `docs/map.png` | Mapa mundial D3 con tipos de marcadores y arcos de vuelo |
| `docs/globe.png` | Vista de globo 3D WebGL con resplandor atmosférico y marcadores |

Para actualizarlas: ejecuta el panel, espera a que se complete un barrido y luego usa las herramientas de desarrollo de tu navegador (`F12` → `Ctrl+Shift+P` → "Capture full size screenshot") o una herramienta como [LICEcap](https://www.cockos.com/licecap/) para GIFs.

---

## Contribuciones

¿Encontraste un error? ¿Quieres añadir una 28.ª fuente? Se aceptan PRs. Cada fuente es un módulo independiente en `apis/sources/` — solo exporta una función `briefing()` que devuelva datos estructurados y añádela al orquestador en `apis/briefing.mjs`.

Si te resulta útil, una estrella ayuda a que otros lo encuentren también.

Para las pautas de contribución, expectativas de revisión y reglas para añadir fuentes, consulta `CONTRIBUTING.md`. Para informes de seguridad, consulta `SECURITY.md`.

## Contacto

Para alianzas, integraciones u otras consultas que no sean incidencias, puedes contactarme en `[email protected]`.

Para errores y solicitudes de funciones, usa GitHub Issues para que la discusión permanezca visible y accionable.

---

## Historial de estrellas

<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>

---

## Licencia

AGPL-3.0
Descargar herramienta
Vista 3D del globo
Globo
ComandoQué Hace
/statusEstado del sistema, hora del último barrido, estado de las fuentes, estado del LLM
/sweepActiva un ciclo de barrido manual
/briefResumen de texto compacto de la última inteligencia (dirección, métricas clave, OSINT principal)
/portfolioEstado de la cartera (si Alpaca está conectado)
/alertsHistorial reciente de alertas con niveles
/mute / /mute 2hSilencia las alertas durante 1 h (o duración personalizada)
/unmuteReanuda las alertas
/helpMuestra todos los comandos disponibles
/sweep
Activa un ciclo de barrido manual
/briefResumen de texto compacto de la última inteligencia
/portfolioEstado de la cartera (si Alpaca está conectado)
FuenteQué rastreaAutenticación
GDELTEventos de noticias globales, mapas de conflictos (más de 100 idiomas)Ninguna
OpenSkySeguimiento de vuelos ADS-B en tiempo real en 6 regiones críticasNinguna
NASA FIRMSDetección satelital de incendios/anomalías térmicas (latencia de 3 h)Clave gratuita
Maritime/AISSeguimiento de embarcaciones, buques oscuros, evasión de sancionesClave gratuita
SafecastMonitoreo de radiación de ciencia ciudadana cerca de 6 sitios nuclearesNinguna
ACLEDEventos de conflicto armado: batallas, explosiones, protestasGratuita (OAuth2)
ReliefWebSeguimiento de crisis humanitarias de la ONUNinguna
WHOBrotes de enfermedades y emergencias sanitariasNinguna
OFACSanciones del Tesoro de EE. UU. (lista SDN)Ninguna
OpenSanctionsSanciones globales agregadas (más de 30 fuentes)Parcial
ADS-B ExchangeSeguimiento de vuelos sin filtrar, incluidos los militaresDe pago
FuenteQué rastreaAutenticación
FRED22 indicadores clave: curva de rendimiento, IPC, VIX, fondos federales, M2Clave gratuita
US TreasuryDeuda nacional, rendimientos, datos fiscalesNinguna
BLSIPC, desempleo, nóminas no agrícolas, IPPNinguna
EIAPetróleo crudo WTI/Brent, gas natural, inventariosClave gratuita
GSCPIÍndice de Presión de la Cadena de Suministro Global de la NY FedNinguna
USAspendingGasto federal y contratos de defensaNinguna
UN ComtradeFlujos comerciales estratégicos de materias primas entre las grandes potenciasNinguna
FuenteQué rastreaAutenticación
NOAA/NWSAlertas meteorológicas activas de EE. UU.Ninguna
EPA RadNetMonitoreo de radiación del gobierno de EE. UU.Ninguna
USPTO PatentsSolicitudes de patentes en 7 áreas tecnológicas estratégicasNinguna
BlueskySentimiento social sobre temas geopolíticos/de mercadoNinguna
RedditSentimiento social de subreddits claveOAuth
Telegram17 canales seleccionados de OSINT/conflictos/finanzas (web scraping, ampliable mediante configuración)Ninguna
KiwiSDRRed global de receptores de radio HF (~600 receptores)Ninguna
ScriptComandoDescripción
npm run devnode --trace-warnings server.mjsIniciar el panel con autoactualización
npm run sweepnode apis/briefing.mjsEjecutar un barrido único y mostrar JSON en stdout
npm run injectnode dashboard/inject.mjsInyectar los últimos datos en el HTML estático
npm run brief:savenode apis/save-briefing.mjsEjecutar barrido + guardar JSON con marca de tiempo
npm run diagnode diag.mjsEjecutar diagnósticos (versión de Node, imports, comprobación de puerto)
VariablePredeterminadoDescripción
PORT3117Puerto del servidor del panel
REFRESH_INTERVAL_MINUTES15Intervalo de autoactualización
LLM_PROVIDERdisabledanthropic, openai, gemini, codex, openrouter, minimax, mistral o grok
LLM_API_KEY—Clave de API (no necesaria para codex)
LLM_MODELper-provider defaultSobrescribir la selección de modelo
TELEGRAM_BOT_TOKENdisabledPara alertas de Telegram + comandos del bot
TELEGRAM_CHAT_ID—Tu ID de chat de Telegram
TELEGRAM_CHANNELS—IDs de canales adicionales a monitorear (separados por comas)
TELEGRAM_POLL_INTERVAL5000Intervalo de sondeo de comandos del bot (ms)
DISCORD_BOT_TOKENdisabledPara alertas de Discord + comandos de barra
DISCORD_CHANNEL_ID—Canal de Discord para alertas
DISCORD_GUILD_ID—ID del servidor (registro instantáneo de comandos de barra)
DISCORD_WEBHOOK_URL—URL del webhook (respaldo solo para alertas, no necesita bot)
Datos actuales de inteligencia sintetizada (JSON)
GET /api/healthEstado del servidor, tiempo de actividad, número de fuentes, estado del LLM
GET /eventsFlujo SSE para actualizaciones push en vivo