Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Crucix — Ваш персональный агент разведки. Наблюдает за миром из нескольких источников данных и уведомляет вас, когда что-то меняется. | Kitploit
Инструменты/GitHubGitHub/calesthio/crucix
OSINT (Разведка открытых источников)РазведкаСбор информацииРазведка угрозОбучение и ОбразованиеПодобранные Ресурсы
GitHubcalesthio/crucix

Crucix

Ваш персональный агент разведки. Наблюдает за миром из нескольких источников данных и уведомляет вас, когда что-то меняется.

Репозиторий
11.3k1.8k3 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Crucix

Ваш собственный разведывательный терминал. 27 источников. Одна команда. Без облака.

Посетите живой сайт: crucix.live

Live Website Open Demo

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

Войдите в Signal Network

Signal Wire Ops Room

Панель управления Crucix

Больше скриншотов
Последовательность загрузкиКарта мира
ЗагрузкаКарта

Живой сайт: https://www.crucix.live/ Сначала ознакомьтесь с публичной демонстрацией, затем клонируйте репозиторий для локального запуска Crucix.

Crucix извлекает спутниковое обнаружение пожаров, отслеживание рейсов, радиационный мониторинг, отслеживание спутниковых созвездий, экономические индикаторы, живые рыночные цены, данные о конфликтах, списки санкций и социальные настроения из 27 источников разведывательной информации с открытым исходным кодом — параллельно, каждые 15 минут — и отображает всё на единой автономной панели управления в стиле Jarvis.

Подключите его к LLM, и он станет двунаправленным разведывательным помощником — отправляет многоуровневые оповещения в Telegram и Discord, когда меняется что-то значимое, отвечает на команды вроде /brief и /sweep с вашего телефона и генерирует действенные торговые идеи, основанные на реальных междисциплинарных данных. Ваш собственный аналитик, который наблюдает за миром, пока вы спите.

Сначала попробуйте живую демонстрацию на https://www.crucix.live/, затем клонируйте репозиторий, когда захотите полноценный локальный стек.

Без облака. Без телеметрии. Без подписок. Просто node server.mjs и вы работаете.

Token / Asset Warning

[!WARNING] Crucix не запускал никаких официальных токенов, монет, NFT, airdropов, presale или других активов на блокчейне. Любой токен или цифровой актив, использующий имя, логотип или бренд Crucix, не связан с Crucix и не одобрен им. Не покупайте его, не продвигайте, не подключайте кошелек для его получения, не подписывайте транзакции и не отправляйте средства на основе публикаций третьих лиц, личных сообщений или веб-сайтов.


Зачем Это Существует

Большая часть разведывательной информации в реальном времени — спутниковые снимки, уровни радиации, события конфликтов, экономические индикаторы, отслеживание рейсов, морская активность — находится в открытом доступе. Но она разбросана по десяткам государственных API, исследовательских институтов и открытых каналов данных, которые никто не успевает проверять по отдельности.

Crucix объединяет всё это в одном месте. Не за платёжным барьером, не заперто в корпоративной платформе, не требует допуска к секретности. Просто открытые данные, агрегированные и взаимно скоррелированные на вашей собственной машине, обновляемые каждые 15 минут.

Он создан для всех, кто хочет понять, что на самом деле происходит в мире прямо сейчас — исследователей, журналистов, трейдеров, OSINT-аналитиков или просто любопытных людей, которые считают, что доступ к информации не должен зависеть от вашего бюджета.


Quick Start```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:~
> **Если `npm run dev` молча завершается с ошибкой** (выходит без вывода), запустите Node напрямую:
> ```bash
> node --trace-warnings server.mjs
> ```
> Это обходит менеджер скриптов npm, который может скрывать ошибки в некоторых системах (особенно в PowerShell на Windows). Вы также можете запустить `node diag.mjs`, чтобы диагностировать точную проблему — он проверяет версию Node, тестирует каждый импорт модуля по отдельности и проверяет доступность порта. См. [Устранение неполадок](#troubleshooting) для получения дополнительной информации.

Панель управления открывается автоматически по адресу `http://localhost:3117` и сразу начинает первый сбор разведывательных данных. Этот начальный сбор опрашивает все 27 источников параллельно и обычно занимает 30–60 секунд — панель управления будет выглядеть пустой, пока сбор не завершится и не отправит первое обновление данных. После этого она автоматически обновляется каждые 15 минут через SSE (Server-Sent Events). Ручное обновление страницы не требуется.

**Требования:** Node.js 22+ (использует встроенный `fetch`, `await` верхнего уровня, 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 по адресу http://localhost:3117. Данные обхода сохраняются в ./runs/ через монтирование тома. Включает эндпоинт проверки работоспособности.


Что вы получаете

Живая панель мониторинга

Автономный HUD в стиле Jarvis с:

  • 3D WebGL глобусом (Globe.gl) с атмосферным свечением, звездным полем и плавным вращением — плюс классическое переключение на плоскую карту
  • 9 типами маркеров в обоих видах: обнаружения пожаров, авиатрафик, радиационные зоны, морские узкие места, SDR-приемники, события OSINT, оповещения о здоровье, геолоцированные новости, конфликтные события
  • Анимированными 3D дугами авиакоридоров между горячими точками авиатрафика и мировыми хабами
  • Фильтрами регионов (Мир, Америка, Европа, Ближний Восток, Азиатско-Тихоокеанский регион, Африка) — вращает глобус или масштабирует плоскую карту
  • Живыми рыночными данными — индексы, криптовалюта, энергия, сырьевые товары через Yahoo Finance (ключ API не требуется)
  • Индикаторами риска — VIX, спред высокодоходных облигаций, индекс давления в цепочках поставок
  • Лентой OSINT — англоязычные посты из 17 Telegram-каналов разведки (расширяемая)
  • Бегущей строкой новостей — объединённые заголовки RSS + GDELT + посты Telegram, с автопрокруткой
  • Дельта-панелью обхода — живая панель, показывающая, что изменилось с последнего обхода (новые сигналы, эскалации, деэскалации с уровнем серьезности)
  • Кросс-источниковыми сигналами — коррелированная разведка по спутниковым, экономическим, конфликтным и социальным доменам
  • Ядерным мониторингом — показания радиации в реальном времени от Safecast + EPA RadNet
  • Космическим мониторингом — отслеживание спутников CelesTrak: недавние запуски, МКС, военные группировки, количество Starlink/OneWeb
  • Реализуемыми идеями — AI-сгенерированные торговые идеи (с LLM) или идеи, коррелирующие с сигналами (без LLM)

Режимы производительности

Кнопка VISUALS FULL / VISUALS LITE в верхней панели меняет только поведение рендеринга — она не удаляет источники данных и не сокращает охват обхода.

Когда вы переключаетесь на VISUALS LITE, панель управления:

  • Отключает декоративные фоновые эффекты, такие как радиальные/сетчатые наложения и строки сканирования
  • Убирает дорогие эффекты размытия/backdrop-filter на панелях и наложениях
  • Останавливает необязательные анимации, такие как мерцание кольца логотипа, кольца конфликтов и эффекты потока в коридорах
  • Отключает автоматическое вращение глобуса и выключает анимированные пунктирные линии полетных дуг
  • Преобразует горизонтальную бегущую строку новостей и поток OSINT в статические, прокручиваемые списки вместо непрерывно анимированных бегущих строк

Поведение на мобильных устройствах:

  • На мобильных устройствах VISUALS LITE также переключает панель управления в режим плоской карты, если вы находитесь на глобусе
  • Будущие загрузки на мобильных устройствах будут продолжать запускаться в плоском режиме, пока включен низкопроизводительный режим

Настройка сохраняется в локальном хранилище браузера, поэтому интерфейс запомнит вашу последнюю настройку.

Автообновление

Сервер выполняет цикл обхода каждые 15 минут (настраивается). Каждый цикл:

  1. Запрашивает все 27 источников параллельно (~30 секунд)
  2. Синтезирует необработанные данные в формат панели управления
  3. Вычисляет дельту по сравнению с предыдущим запуском (что изменилось, эскалировало, деэскалировало) — видно на панели Sweep Delta на дашборде
  4. Генерирует торговые идеи с помощью LLM (если настроено)
  5. Оценивает оповещения о важных новостях — многоуровневые (FLASH / PRIORITY / ROUTINE) с семантическим удалением дубликатов. Отправляет в Telegram и/или Discord, если настроено. Работает с оценкой LLM или использует механизм оповещений на основе правил, если LLM недоступна.
  6. Отправляет обновление всем подключенным браузерам через SSE

Telegram-бот (двусторонний)

Crucix также является интерактивным Telegram-ботом. Помимо отправки оповещений, он отвечает на команды прямо из вашего чата:

Для этого требуются TELEGRAM_BOT_TOKEN и TELEGRAM_CHAT_ID в .env. Бот опрашивает сообщения каждые 5 секунд (настраивается через TELEGRAM_POLL_INTERVAL).

Discord-бот (двусторонний)

Crucix также поддерживает Discord в качестве полнофункционального бота с слеш-командами и богатыми встроенными оповещениями. Он повторяет возможности Telegram-бота, используя форматирование Discord.

КомандаЧто делает
/statusСостояние системы, время последнего обхода, статус источников, статус LLM

Оповещения доставляются в виде богатых встроенных сообщений с цветными боковыми панелями: красный для FLASH, желтый для PRIORITY, синий для ROUTINE. Каждое встроенное сообщение включает детали сигнала, оценки уверенности и кросс-доменные корреляции.

Настройка требует: DISCORD_BOT_TOKEN, DISCORD_CHANNEL_ID и опционально DISCORD_GUILD_ID для мгновенной регистрации слеш-команд. См. Настройка API-ключей для подробностей.

Резервный вебхук: Если вы не хотите запускать полноценного бота, установите DISCORD_WEBHOOK_URL вместо этого. Это включает односторонние оповещения (без слеш-команд) с нулевыми зависимостями — не требуется discord.js.

Опциональная зависимость: Полноценный бот требует discord.js. Установите его с помощью npm install discord.js. Если он не установлен, Crucix автоматически переключается в режим только вебхука.

Опциональный слой LLM

Подключите любого из 8 провайдеров LLM для расширенного анализа:

  • AI торговые идеи — количественный аналитик, создающий 5–8 реализуемых идей со ссылками на конкретные данные
  • Более умная оценка оповещений — LLM классифицирует сигналы по уровням FLASH/PRIORITY/ROUTINE с кросс-доменной корреляцией и оценкой уверенности
  • Провайдеры: Anthropic Claude, OpenAI, Google Gemini, OpenRouter (Unified API), OpenAI Codex (подписка ChatGPT), MiniMax, Mistral, Grok
  • Плавное резервирование — когда LLM недоступна, вступает в дело механизм на основе правил. Сбои LLM никогда не приводят к краху цикла обхода.

Настройка API-ключей

Скопируйте .env.example в .env в корне проекта:```bash cp .env.example .env

root@kitploit:~
### Необходимо для наилучших результатов (все бесплатно)

| Ключ | Источник | Как получить |
|------|----------|-------------|
| `FRED_API_KEY` | Экономические данные Федеральной резервной системы | [fred.stlouisfed.org](https://fred.stlouisfed.org/docs/api/api_key.html) — мгновенно, бесплатно |
| `FIRMS_MAP_KEY` | NASA FIRMS (спутниковые данные о пожарах) | [firms.modaps.eosdis.nasa.gov](https://firms.modaps.eosdis.nasa.gov/api/area/) — мгновенно, бесплатно |
| `EIA_API_KEY` | Управление энергетической информации США | [api.eia.gov](https://www.eia.gov/opendata/register.php) — мгновенно, бесплатно |

Эти три ключа открывают доступ к наиболее ценной экономической и спутниковой информации. Регистрация каждого занимает около 60 секунд.

### Опционально (включает дополнительные источники)

| Ключ | Источник | Как получить |
|------|----------|-------------|
| `ACLED_EMAIL` + `ACLED_PASSWORD` | Данные о вооружённых конфликтах | [acleddata.com/register](https://acleddata.com/register/) — бесплатно, OAuth2 |
| `AISSTREAM_API_KEY` | Морское судоходство AIS | [aisstream.io](https://aisstream.io/) — бесплатно |
| `ADSB_API_KEY` | Нефильтрованное отслеживание полётов | [RapidAPI](https://rapidapi.com/adsbexchange/api/adsbexchange-com1) — ~$10/мес |

### LLM-провайдер (опционально, для ИИ-улучшенных идей)

Укажите `LLM_PROVIDER` как один из: `anthropic`, `openai`, `gemini`, `codex`, `openrouter`, `minimax`, `mistral`, `grok`

| Провайдер | Требуется ключ | Модель по умолчанию |
|-----------|----------------|---------------------|
| `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` | Нет (использует `~/.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 |

Для Codex выполните `npx @openai/codex login`, чтобы пройти аутентификацию через вашу подписку ChatGPT.

### Telegram Bot + Оповещения (опционально)

| Ключ | Как получить |
|------|--------------|
| `TELEGRAM_BOT_TOKEN` | Создайте через [@BotFather](https://t.me/BotFather) в Telegram |
| `TELEGRAM_CHAT_ID` | Получите через [@userinfobot](https://t.me/userinfobot) |
| `TELEGRAM_CHANNELS` | *(Опционально)* Дополнительные ID каналов (через запятую) для мониторинга, помимо 17 встроенных каналов |
| `TELEGRAM_POLL_INTERVAL` | *(Опционально)* Интервал опроса команд бота в мс (по умолчанию: 5000) |

### Discord Bot + Оповещения (опционально)

| Ключ | Как получить |
|------|--------------|
| `DISCORD_BOT_TOKEN` | Создайте на [Discord Developer Portal](https://discord.com/developers/applications) → Bot → Token |
| `DISCORD_CHANNEL_ID` | Правый клик по каналу в Discord (включён режим разработчика) → Копировать ID канала |
| `DISCORD_GUILD_ID` | *(Опционально)* Правый клик по серверу → Копировать ID сервера. Включает мгновенную регистрацию слеш-команд (иначе требуется до 1 часа для глобальных команд) |
| `DISCORD_WEBHOOK_URL` | *(Опционально)* Настройки канала → Интеграции → Webhooks → Новый Webhook → Копировать URL. Используйте это для режима только оповещений без бота |

**Настройка Discord бота:**
1. Перейдите на [Discord Developer Portal](https://discord.com/developers/applications) и создайте новое приложение
2. Перейдите в **Bot** → нажмите **Reset Token** → скопируйте токен в `DISCORD_BOT_TOKEN`
3. В разделе **Privileged Gateway Intents** включите **Message Content Intent**
4. Перейдите в **OAuth2** → **URL Generator** → выберите области `bot` + `applications.commands` → выберите разрешения `Send Messages` + `Embed Links`
5. Скопируйте сгенерированный URL и откройте его в браузере, чтобы пригласить бота на ваш сервер
6. Установите зависимость: `npm install discord.js`

Оповещения работают как с LLM, так и без него на Telegram и Discord. С настроенным LLM оценка сигнала становится более насыщенной и контекстно-зависимой. Без LLM детерминированный механизм правил оценивает сигналы на основе критичности, междоменной корреляции и количества сигналов.

### Без каких-либо ключей

Crucix всё ещё работает без API-ключей. 18+ источников вообще не требуют аутентификации. Источники, требующие ключи, возвращают структурированные ошибки, а остальной обход продолжается в обычном режиме.

---

## Архитектура```
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)

Принципы проектирования

  • Pure ESM — каждый файл имеет расширение .mjs с явными импортами
  • Минимальные зависимости — Express — единственная зависимость времени выполнения. discord.js опциональна (для Discord-бота). Поставщики LLM используют сырой fetch(), без SDK.
  • Параллельное выполнение — Promise.allSettled() запускает все 27 источников одновременно
  • Изящная деградация — отсутствующие ключи вызывают ошибки, а не сбои. Сбои LLM не прерывают циклы сбора.
  • Каждый источник независим — запустите node apis/sources/gdelt.mjs для тестирования любого источника отдельно
  • Самодостаточная панель управления — HTML-файл работает как с сервером, так и без него

Источники данных (27)

Уровень 1: Основные OSINT и геополитические (11)

Уровень 2: Экономические и финансовые (7)

Уровень 3: Погода, окружающая среда, технологии, социальные сети, SIGINT (7)

Уровень 4: Космос и спутники (1)

ИсточникЧто отслеживаетАутентификация
CelesTrakЗапуски спутников, отслеживание МКС, военные группировки, количество Starlink/OneWebНет

Уровень 5: Рыночные данные в реальном времени (1)

ИсточникЧто отслеживаетАутентификация
Yahoo FinanceЦены в реальном времени: SPY, QQQ, BTC, Gold, WTI, VIX + ещё 9Нет

npm-скрипты


Конфигурация

Все настройки находятся в .env с разумными значениями по умолчанию:

Пороги дельта-движка (насколько система чувствительна к изменениям между циклами сбора) можно настроить в crucix.config.mjs в разделе delta.thresholds. Значения по умолчанию настроены на фильтрацию шума при захвате значимых изменений.


API-эндпоинты

При запуске npm run dev:

ЭндпоинтОписание
GET /Панель управления Jarvis HUD
GET /api/data

Устранение неполадок

npm run dev завершается без вывода (ни вывода, ни ошибки)

Это известная проблема, когда программа запуска скриптов npm может проглатывать ошибки, особенно в Windows PowerShell. Попробуйте следующее по порядку:

1. Запустите Node напрямую (в обход npm):```bash node --trace-warnings server.mjs

root@kitploit:~
Это функционально идентично `npm run dev`, но предоставляет полный вывод ошибок.

**2. Запустите диагностический сценарий:**```bash
node diag.mjs

Это проверяет каждый импорт по отдельности, проверяет вашу версию Node.js и проверяет доступность порта 3117. Он скажет вам, что именно не работает.

3. Проверьте, не занят ли порт 3117:

Предыдущий экземпляр Crucix всё ещё может работать в фоновом режиме.```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:~
Главный эксперт по телекоммуникациям в Ruselectronics (Государственная корпорация «Ростех»), дальновидный лидер в области сетевой безопасности, доцент с более чем 50 научными работами. Пионер создания устойчивой критической инфраструктуры...```bash
# macOS / Linux
lsof -ti:3117 | xargs kill

Затем попробуйте запустить снова. Вы также можете изменить порт, установив PORT=3118 в вашем файле .env.

4. Проверьте версию Node.js:```bash node --version

root@kitploit:~
Crucix требует Node.js 22 или новее. Если у вас более старая версия, загрузите последнюю LTS с [nodejs.org](https://nodejs.org/).

### Панель управления отображает пустые панели после первого запуска

Это нормально — первый сбор данных занимает 30–60 секунд, чтобы опросить все 27 источников. Панель управления заполнится автоматически, как только сбор завершится. Смотрите в терминале логи прогресса сбора.

### Некоторые источники показывают ошибки

Ожидаемое поведение. Источники, требующие API-ключи, вернут структурированные ошибки, если ключ не задан. Остальная часть сбора продолжается нормально. Проверьте раздел «Целостность источников» на панели управления (или логи сервера), чтобы увидеть, какие источники не удалось опросить и почему. Три наиболее полезных бесплатных ключа, которые стоит добавить: `FRED_API_KEY`, `FIRMS_MAP_KEY` и `EIA_API_KEY`.

OpenSky также может возвращать `HTTP 429`, когда его публичные «горячие точки» опрашиваются слишком агрессивно. Crucix не пытается обойти это ограничение. Вместо этого он отображает ошибку/ограничение в состоянии источника и сохраняет последний непустой снимок воздушного трафика из `runs/`, чтобы слой полётов на панели управления не становился пустым при ограниченном сборе.

### Telegram-бот не отвечает на команды

Убедитесь, что в `.env` заданы как `TELEGRAM_BOT_TOKEN`, так и `TELEGRAM_CHAT_ID`. Бот отвечает только на сообщения от настроенного ID чата (мера безопасности). При запуске в логах сервера должно появиться `[Crucix] Telegram alerts enabled` и `[Crucix] Bot command polling started`. Если нет, проверьте токен с помощью `curl https://api.telegram.org/bot<YOUR_TOKEN>/getMe`.

### Discord-бот не отвечает на слеш-команды

Проверьте по порядку:
1. Убедитесь, что в `.env` заданы `DISCORD_BOT_TOKEN` и `DISCORD_CHANNEL_ID`
2. Проверьте, установлен ли `discord.js`: `npm ls discord.js`. Если отсутствует, выполните `npm install discord.js`
3. Если слеш-команды не отображаются, задайте `DISCORD_GUILD_ID` — без него глобальные команды могут распространяться до 1 часа. Команды для конкретного сервера регистрируются мгновенно
4. Убедитесь, что бот был приглашён с областями `bot` + `applications.commands` и имеет права `Send Messages` + `Embed Links` в целевом канале
5. Проверьте логи сервера на наличие `[Discord] Bot logged in as ...` при запуске. Если видите `[Discord] discord.js not installed`, установите его и перезапустите
6. **Запасной вариант через вебхук:** Если вам нужны только оповещения без слеш-команд, задайте `DISCORD_WEBHOOK_URL` вместо токена бота. Устанавливать `discord.js` не требуется.

---

## Скриншоты

Папка `docs/` содержит скриншоты панели управления, на которые есть ссылки в этом README:

| Файл | Описание |
|------|----------|
| `docs/dashboard.png` | Полная панель управления — главное изображение вверху этого README |
| `docs/boot.png` | Анимация кинематографической загрузки |
| `docs/map.png` | Карта мира на D3 с типами маркеров и дугами полётов |
| `docs/globe.png` | 3D-глобус WebGL с атмосферным свечением и маркерами |

Чтобы обновить их: запустите панель, дождитесь завершения сбора данных, затем используйте инструменты разработчика браузера (`F12` → `Ctrl+Shift+P` → «Capture full size screenshot») или утилиту вроде [LICEcap](https://www.cockos.com/licecap/) для GIF.

---

## Разработка (Contributing)

Нашли ошибку? Хотите добавить 28-й источник? PR приветствуются. Каждый источник — это отдельный модуль в `apis/sources/` — просто экспортируйте функцию `briefing()`, возвращающую структурированные данные, и добавьте её в оркестратор в `apis/briefing.mjs`.

Если этот проект оказался для вас полезным, поставьте звёздочку — это поможет другим его найти.

За рекомендациями по вкладу, критериями ревью и правилами добавления источников обращайтесь к `CONTRIBUTING.md`. По вопросам безопасности — к `SECURITY.md`.

## Контакты

По вопросам партнёрства, интеграции или другим не связанным с багами запросам пишите на `[email protected]`.

Для сообщений об ошибках и запросов функций, пожалуйста, используйте GitHub Issues, чтобы обсуждение оставалось на виду и было действенным.

---

## История звёзд

<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="График истории звёзд" src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" />
  </picture>
</a>

---

## Лицензия

AGPL-3.0
Скачать инструмент
3D вид глобуса
Глобус
КомандаЧто делает
/statusСостояние системы, время последнего обхода, статус источников, статус LLM
/sweepЗапустить ручной цикл обхода
/briefКомпактное текстовое резюме последней разведки (направление, ключевые метрики, топ OSINT)
/portfolioСостояние портфеля (если подключен Alpaca)
/alertsНедавняя история оповещений с уровнями
/mute / /mute 2hОтключить оповещения на 1 час (или на заданный период)
/unmuteВозобновить оповещения
/helpПоказать все доступные команды
/sweep
Запустить ручной цикл обхода
/briefКомпактное текстовое резюме последней разведки
/portfolioСостояние портфеля (если подключен Alpaca)
ИсточникЧто отслеживаетАутентификация
GDELTГлобальные новостные события, картографирование конфликтов (100+ языков)Нет
OpenSkyОтслеживание ADS-B-полётов в реальном времени в 6 горячих точкахНет
NASA FIRMSОбнаружение пожаров и тепловых аномалий со спутников (задержка 3 часа)Бесплатный ключ
Maritime/AISОтслеживание судов, «тёмные» корабли, обход санкцийБесплатный ключ
SafecastГражданский мониторинг радиации у 6 ядерных объектовНет
ACLEDСобытия вооружённых конфликтов: бои, взрывы, протестыБесплатно (OAuth2)
ReliefWebОтслеживание гуманитарных кризисов ООННет
WHOВспышки заболеваний и чрезвычайные ситуации в области здравоохраненияНет
OFACСанкции Министерства финансов США (список SDN)Нет
OpenSanctionsАгрегированные глобальные санкции (30+ источников)Частично
ADS-B ExchangeНефильтрованное отслеживание полётов, включая военныеПлатный
ИсточникЧто отслеживаетАутентификация
FRED22 ключевых индикатора: кривая доходности, CPI, VIX, ставка по федеральным фондам, M2Бесплатный ключ
US TreasuryГосударственный долг, доходность, фискальные данныеНет
BLSCPI, безработица, занятость в несельскохозяйственном секторе, PPIНет
EIAНефть WTI/Brent, природный газ, запасыБесплатный ключ
GSCPIИндекс глобального давления в цепочках поставок ФРБ Нью-ЙоркаНет
USAspendingФедеральные расходы и оборонные контрактыНет
UN ComtradeТорговые потоки стратегических товаров между крупными державамиНет
ИсточникЧто отслеживаетАутентификация
NOAA/NWSАктивные погодные предупреждения СШАНет
EPA RadNetМониторинг радиации правительства СШАНет
USPTO PatentsПатентные заявки в 7 стратегических технологических областяхНет
BlueskyСоциальные настроения по геополитическим/рыночным темамНет
RedditСоциальные настроения из ключевых сабреддитовOAuth
Telegram17 курируемых OSINT/конфликтных/финансовых каналов (веб-скрейпинг, расширяется через конфигурацию)Нет
KiwiSDRГлобальная сеть КВ-радиоприёмников (~600 приёмников)Нет
СкриптКомандаОписание
npm run devnode --trace-warnings server.mjsЗапуск панели управления с автообновлением
npm run sweepnode apis/briefing.mjsВыполнить один цикл сбора, вывести JSON в stdout
npm run injectnode dashboard/inject.mjsВставить последние данные в статический HTML
npm run brief:savenode apis/save-briefing.mjsВыполнить сбор + сохранить JSON с меткой времени
npm run diagnode diag.mjsЗапустить диагностику (версия Node, импорты, проверка порта)
ПеременнаяПо умолчаниюОписание
PORT3117Порт сервера панели управления
REFRESH_INTERVAL_MINUTES15Интервал автообновления
LLM_PROVIDERотключенanthropic, openai, gemini, codex, openrouter, minimax, mistral или grok
LLM_API_KEY—Ключ API (не требуется для codex)
LLM_MODELпо умолчанию для провайдераПереопределение выбора модели
TELEGRAM_BOT_TOKENотключенДля оповещений Telegram + команд бота
TELEGRAM_CHAT_ID—Ваш Telegram chat ID
TELEGRAM_CHANNELS—Дополнительные ID каналов для мониторинга (через запятую)
TELEGRAM_POLL_INTERVAL5000Интервал опроса команд бота (мс)
DISCORD_BOT_TOKENотключенДля оповещений Discord + slash-команд
DISCORD_CHANNEL_ID—Канал Discord для оповещений
DISCORD_GUILD_ID—ID сервера (мгновенная регистрация slash-команд)
DISCORD_WEBHOOK_URL—URL вебхука (резервный вариант только для оповещений, бот не требуется)
Текущие синтезированные аналитические данные (JSON)
GET /api/healthСтатус сервера, время работы, количество источников, статус LLM
GET /eventsSSE-поток для обновлений в реальном времени