
आपका व्यक्तिगत खुफिया एजेंट। कई डेटा स्रोतों से दुनिया पर नज़र रखता है और जब कुछ बदलता है तो आपको सूचित करता है।
आपका अपना खुफिया टर्मिनल। 27 स्रोत। एक कमांड। शून्य क्लाउड।
सिग्नल नेटवर्क में प्रवेश करें

| बूट अनुक्रम | विश्व मानचित्र |
|---|---|
![]() | ![]() |
लाइव वेबसाइट: https://www.crucix.live/ पहले सार्वजनिक डेमो देखें, फिर Crucix को स्थानीय रूप से चलाने के लिए रिपॉजिटरी क्लोन करें।
Crucix सैटेलाइट आग का पता लगाने, उड़ान ट्रैकिंग, विकिरण निगरानी, उपग्रह समूह ट्रैकिंग, आर्थिक संकेतक, लाइव बाजार मूल्य, संघर्ष डेटा, प्रतिबंध सूचियाँ और सामाजिक भावना को 27 ओपन-सोर्स इंटेलिजेंस फीड से खींचता है — समानांतर में, हर 15 मिनट में — और सब कुछ एक एकल स्व-निहित Jarvis-शैली डैशबोर्ड पर प्रस्तुत करता है।
इसे किसी LLM से जोड़ें और यह दो-तरफा खुफिया सहायक बन जाता है — जब कुछ महत्वपूर्ण बदलता है तो Telegram और Discord पर मल्टी-टियर अलर्ट भेजना, आपके फोन से /brief और /sweep जैसे कमांड का जवाब देना, और वास्तविक क्रॉस-डोमेन डेटा के आधार पर कार्रवाई योग्य व्यापारिक विचार उत्पन्न करना। आपके अपने विश्लेषक जो दुनिया देखता है जब आप सोते हैं।
पहले लाइव डेमो देखें https://www.crucix.live/, फिर जब आप पूर्ण स्थानीय स्टैक चाहते हैं तो रिपॉजिटरी क्लोन करें।
कोई क्लाउड नहीं। कोई टेलीमेट्री नहीं। कोई सब्सक्रिप्शन नहीं। बस node server.mjs और आप चला रहे हैं।
[!WARNING] Crucix ने कोई आधिकारिक टोकन, सिक्का, NFT, एयरड्रॉप, प्रीसेल, या अन्य ब्लॉकचेन-आधारित एसेट लॉन्च नहीं किया है। कोई भी टोकन या डिजिटल एसेट जो Crucix नाम, लोगो या ब्रांडिंग का उपयोग करता है, Crucix से संबद्ध या समर्थित नहीं है। इसे न खरीदें, प्रचार न करें, इसे दावा करने के लिए वॉलेट कनेक्ट न करें, लेन-देन पर हस्ताक्षर न करें, या तीसरे पक्ष के पोस्ट, DMs या वेबसाइटों के आधार पर धन न भेजें।
दुनिया की अधिकांश रीयल-टाइम खुफिया जानकारी — उपग्रह इमेजरी, विकिरण स्तर, संघर्ष की घटनाएं, आर्थिक संकेतक, उड़ान ट्रैकिंग, समुद्री गतिविधि — सार्वजनिक रूप से उपलब्ध है। यह बस दर्जनों सरकारी APIs, अनुसंधान संस्थानों और ओपन डेटा फीड में बिखरा हुआ है जिन्हें व्यक्तिगत रूप से जांचने का समय किसी के पास नहीं है।
Crucix इसे एक ही स्थान पर लाता है। पेवॉल के पीछे नहीं, एंटरप्राइज प्लेटफ़ॉर्म में बंद नहीं, सुरक्षा मंजूरी की आवश्यकता नहीं। बस ओपन डेटा, आपकी अपनी मशीन पर एकत्रित और क्रॉस-सहसंबद्ध, हर 15 मिनट में अपडेट।
इसे किसी ऐसे व्यक्ति के लिए बनाया गया है जो जानना चाहता है कि इस समय दुनिया में वास्तव में क्या हो रहा है — शोधकर्ता, पत्रकार, व्यापारी, OSINT विश्लेषक, या बस जिज्ञासु लोग जो मानते हैं कि जानकारी तक पहुंच आपके बजट पर निर्भर नहीं होनी चाहिए।
git clone https://github.com/calesthio/Crucix.git cd Crucix
npm install
cp .env.example .env
npm run dev
> **यदि `npm run dev` चुपचाप विफल हो जाता है** (बिना आउटपुट के बंद हो जाता है), तो सीधे Node चलाएँ:
> ```bash
> node --trace-warnings server.mjs
> ```
> यह npm के स्क्रिप्ट रनर को बायपास करता है, जो कुछ सिस्टमों (विशेषकर Windows पर PowerShell) पर त्रुटियों को निगल सकता है। आप `node diag.mjs` भी चला सकते हैं ताकि सटीक समस्या का निदान हो सके — यह आपके Node संस्करण की जाँच करता है, प्रत्येक मॉड्यूल आयात का अलग-अलग परीक्षण करता है, और पोर्ट उपलब्धता की पुष्टि करता है। अधिक जानकारी के लिए [समस्या निवारण](#troubleshooting) देखें।
डैशबोर्ड स्वचालित रूप से `http://localhost:3117` पर खुलता है और तुरंत अपनी पहली खुफिया जाँच शुरू करता है। यह प्रारंभिक जाँच सभी 27 स्रोतों को समानांतर रूप से क्वेरी करती है और आमतौर पर 30–60 सेकंड लेती है — डैशबोर्ड तब तक खाली दिखाई देगा जब तक जाँच पूरी नहीं हो जाती और पहला डेटा अपडेट नहीं कर देती। उसके बाद, यह SSE (सर्वर-सेंट इवेंट्स) के माध्यम से हर 15 मिनट में ऑटो-रिफ्रेश होता है। मैन्युअल पेज रिफ्रेश की आवश्यकता नहीं है।
**आवश्यकताएँ:** 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 at http://localhost:3117. Sweep data persists in ./runs/ via volume mount. Includes a health check endpoint.
A self-contained Jarvis-style HUD with:
The VISUALS FULL / VISUALS LITE button in the top bar only changes rendering behavior - it does not remove data sources or reduce sweep coverage.
When you switch to VISUALS LITE, the dashboard:
Mobile-specific behavior:
VISUALS LITE also forces the dashboard into flat map mode if you are currently on the globeThe preference is saved in browser local storage, so the UI will remember your last setting.
The server runs a sweep cycle every 15 minutes (configurable). Each cycle:
Crucix doubles as an interactive Telegram bot. Beyond sending alerts, it responds to commands directly from your chat:
This requires TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID in .env. The bot polls for messages every 5 seconds (configurable via TELEGRAM_POLL_INTERVAL).
Crucix also supports Discord as a full-featured bot with slash commands and rich embed alerts. It mirrors the Telegram bot's capabilities with Discord-native formatting.
| Command | What It Does |
|---|---|
/status | System health, last sweep time, source status, LLM status |
/sweep |
Alerts are delivered as rich embeds with color-coded sidebars: red for FLASH, yellow for PRIORITY, blue for ROUTINE. Each embed includes signal details, confidence scores, and cross-domain correlations.
Setup requires: DISCORD_BOT_TOKEN, DISCORD_CHANNEL_ID, and optionally DISCORD_GUILD_ID for instant slash command registration. See API Keys Setup for details.
Webhook fallback: If you don't want to run a full bot, set DISCORD_WEBHOOK_URL instead. This enables one-way alerts (no slash commands) with zero dependencies — no discord.js needed.
Optional dependency: The full bot requires discord.js. Install it with npm install discord.js. If it's not installed, Crucix automatically falls back to webhook-only mode.
Connect any of 8 LLM providers for enhanced analysis:
Copy .env.example to .env at the project root:```bash
cp .env.example .env
### सर्वोत्तम परिणामों के लिए आवश्यक (सभी मुफ्त)
| कुंजी | स्रोत | कैसे प्राप्त करें |
|-----|--------|------------|
| `FRED_API_KEY` | संघीय रिजर्व आर्थिक डेटा | [fred.stlouisfed.org](https://fred.stlouisfed.org/docs/api/api_key.html) — तुरंत, मुफ्त |
| `FIRMS_MAP_KEY` | नासा 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 प्रदाता (वैकल्पिक, AI-संवर्धित विचारों के लिए)
`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 के लिए, अपने ChatGPT सब्सक्रिप्शन के माध्यम से प्रमाणित करने के लिए `npx @openai/codex login` चलाएँ।
### टेलीग्राम बॉट + अलर्ट (वैकल्पिक)
| कुंजी | कैसे प्राप्त करें |
|-----|------------|
| `TELEGRAM_BOT_TOKEN` | टेलीग्राम पर [@BotFather](https://t.me/BotFather) के माध्यम से बनाएँ |
| `TELEGRAM_CHAT_ID` | [@userinfobot](https://t.me/userinfobot) के माध्यम से प्राप्त करें |
| `TELEGRAM_CHANNELS` | *(वैकल्पिक)* 17 अंतर्निहित चैनलों के अलावा निगरानी के लिए अल्पविराम से अलग किए गए अतिरिक्त चैनल आईडी |
| `TELEGRAM_POLL_INTERVAL` | *(वैकल्पिक)* बॉट कमांड पोलिंग अंतराल ms में (डिफ़ॉल्ट: 5000) |
### डिस्कॉर्ड बॉट + अलर्ट (वैकल्पिक)
| कुंजी | कैसे प्राप्त करें |
|-----|------------|
| `DISCORD_BOT_TOKEN` | [Discord Developer Portal](https://discord.com/developers/applications) → Bot → Token पर बनाएँ |
| `DISCORD_CHANNEL_ID` | डिस्कॉर्ड में चैनल पर राइट-क्लिक करें (डेवलपर मोड चालू) → चैनल आईडी कॉपी करें |
| `DISCORD_GUILD_ID` | *(वैकल्पिक)* सर्वर पर राइट-क्लिक करें → सर्वर आईडी कॉपी करें। तत्काल स्लैश कमांड पंजीकरण सक्षम करता है (अन्यथा वैश्विक कमांड के लिए 1 घंटे तक का समय लगता है) |
| `DISCORD_WEBHOOK_URL` | *(वैकल्पिक)* चैनल सेटिंग्स → इंटीग्रेशन → वेबहुक → नया वेबहुक → URL कॉपी करें। बिना बॉट के केवल-अलर्ट मोड के लिए इसका उपयोग करें |
**डिस्कॉर्ड बॉट सेटअप:**
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 के साथ या बिना काम करते हैं। 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)
.mjs हैdiscord.js वैकल्पिक है (Discord बॉट के लिए)। LLM प्रदाता बिना SDK के, रॉ fetch() का उपयोग करते हैं।Promise.allSettled() सभी 27 स्रोतों को एक साथ चलाता हैnode apis/sources/gdelt.mjs चलाएँ| स्रोत | यह क्या ट्रैक करता है | प्रमाणीकरण |
|---|---|---|
| CelesTrak | उपग्रह प्रक्षेपण, ISS ट्रैकिंग, सैन्य तारामंडल, Starlink/OneWeb गणना | कोई नहीं |
| स्रोत | यह क्या ट्रैक करता है | प्रमाणीकरण |
|---|---|---|
| Yahoo Finance | रीयल-टाइम कीमतें: SPY, QQQ, BTC, Gold, WTI, VIX + 9 अधिक | कोई नहीं |
सभी सेटिंग्स उपयुक्त डिफ़ॉल्ट्स के साथ .env में हैं:
डेल्टा इंजन थ्रेसहोल्ड (स्वीप के बीच परिवर्तनों के प्रति सिस्टम कितना संवेदनशील है) को crucix.config.mjs में delta.thresholds अनुभाग के अंतर्गत अनुकूलित किया जा सकता है। डिफ़ॉल्ट शोर को फ़िल्टर करते हुए सार्थक हलचलों को पकड़ने के लिए ट्यून किए गए हैं।
जब npm run dev चल रहा हो:
| एंडपॉइंट | विवरण |
|---|---|
GET / | Jarvis HUD डैशबोर्ड |
GET /api/data | वर्तमान संश्लेषित खुफिया डेटा (JSON) |
npm run dev चुपचाप बाहर निकलता है (कोई आउटपुट नहीं, कोई त्रुटि नहीं)यह एक ज्ञात समस्या है जहाँ npm का स्क्रिप्ट रनर त्रुटियों को निगल सकता है, विशेष रूप से Windows PowerShell पर। क्रम में इन्हें आज़माएँ:
1. Node को सीधे चलाएँ (npm को बायपास करें):```bash node --trace-warnings server.mjs
यह कार्यात्मक रूप से `npm run dev` के समान है लेकिन पूर्ण त्रुटि आउटपुट देता है।
**2. निदान स्क्रिप्ट चलाएँ:**```bash
node diag.mjs
यह प्रत्येक आयात को एक-एक करके परीक्षण करता है, आपके Node.js संस्करण की जाँच करता है, और पुष्टि करता है कि पोर्ट 3117 उपलब्ध है। यह आपको बताएगा कि वास्तव में क्या विफल हो रहा है।
3. जाँच करें कि पोर्ट 3117 पहले से उपयोग में है या नहीं:
Crucix का एक पिछला इंस्टेंस पृष्ठभूमि में चल रहा हो सकता है।```powershell
netstat -ano | findstr 3117 taskkill /F /PID <the_PID_from_above>
taskkill /F /IM node.exe
- ✅ 14 способа для идентификации моделей процессоров и архитектуры
- ✅ Cross platform: поддерживает Windows, Linux, macOS
- ✅ Android 13 के लिए सीधा समर्थन
- ✅ Google Wifi और Google Nest WiFi के लिए समर्थन
- ✅ BruteForce подбор pin 3 digit, brute-force по алгоритму и фиксированным пинам
- ✅ Вывод WPS pin
- ✅ Вывод пароля от WiFi
- ✅ Установка подмены
- ✅ Возможность deautentification
- ✅ WPS लॉक का बाईपास
- ✅ Проверка на Pixie Dust vulnerability <sup>Название</sup>
- ✅ Обновление версии и инструментов```bash
# macOS / Linux
lsof -ti:3117 | xargs kill
फिर पुनः प्रारंभ करने का प्रयास करें। आप अपनी .env फ़ाइल में PORT=3118 सेट करके पोर्ट भी बदल सकते हैं।
4. Node.js संस्करण जांचें:```bash node --version
Crucix को Node.js 22 या उसके बाद के संस्करण की आवश्यकता है। यदि आपके पास पुराना संस्करण है, तो [nodejs.org](https://nodejs.org/) से नवीनतम LTS डाउनलोड करें।
### डैशबोर्ड पहले स्टार्ट के बाद खाली पैनल दिखाता है
यह सामान्य है — पहली स्वीप को सभी 27 स्रोतों से क्वेरी करने में 30–60 सेकंड लगते हैं। स्वीप पूरा होने पर डैशबोर्ड स्वचालित रूप से भर जाएगा। स्वीप प्रगति लॉग के लिए टर्मिनल देखें।
### कुछ स्रोत त्रुटियां दिखाते हैं
यह अपेक्षित व्यवहार है। जिन स्रोतों को API कुंजी की आवश्यकता होती है, वे यदि कुंजी सेट नहीं है तो संरचित त्रुटियां लौटाएंगे। बाकी स्वीप सामान्य रूप से जारी रहता है। कौन से स्रोत विफल हुए और क्यों, यह जानने के लिए डैशबोर्ड में Source Integrity अनुभाग (या सर्वर लॉग) देखें। जोड़ने के लिए 3 सबसे प्रभावशाली मुफ्त कुंजियाँ हैं `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 द्वारा संदर्भित डैशबोर्ड स्क्रीनशॉट हैं:
| File | Description |
|------|-------------|
| `docs/dashboard.png` | पूरा डैशबोर्ड — इस README के शीर्ष पर हीरो छवि |
| `docs/boot.png` | सिनेमाई बूट अनुक्रम एनीमेशन |
| `docs/map.png` | मार्कर प्रकार और उड़ान चापों के साथ D3 विश्व मानचित्र |
| `docs/globe.png` | वातावरण चमक और मार्करों के साथ 3D WebGL ग्लोब दृश्य |
उन्हें अपडेट करने के लिए: डैशबोर्ड चलाएँ, एक स्वीप पूरा होने तक प्रतीक्षा करें, फिर अपने ब्राउज़र के DevTools (`F12` → `Ctrl+Shift+P` → "Capture full size screenshot") या GIF के लिए [LICEcap](https://www.cockos.com/licecap/) जैसे टूल का उपयोग करें।
---
## योगदान
कोई बग मिला? 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="Star History Chart" src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" />
</picture>
</a>
---
## लाइसेंस
AGPL-3.0
| 3D ग्लोब दृश्य |
|---|
![]() |
| Command | What It Does |
|---|
/status | System health, last sweep time, source status, LLM status |
/sweep | Trigger a manual sweep cycle |
/brief | Compact text summary of the latest intelligence (direction, key metrics, top OSINT) |
/portfolio | Portfolio status (if Alpaca connected) |
/alerts | Recent alert history with tiers |
/mute / /mute 2h | Silence alerts for 1h (or custom duration) |
/unmute | Resume alerts |
/help | Show all available commands |
| Trigger a manual sweep cycle |
/brief | Compact text summary of the latest intelligence |
/portfolio | Portfolio status (if Alpaca connected) |
| स्रोत | यह क्या ट्रैक करता है | प्रमाणीकरण |
|---|
| GDELT | वैश्विक समाचार घटनाएँ, संघर्ष मानचित्रण (100+ भाषाएँ) | कोई नहीं |
| OpenSky | 6 हॉटस्पॉट क्षेत्रों में रीयल-टाइम ADS-B उड़ान ट्रैकिंग | कोई नहीं |
| NASA FIRMS | उपग्रह अग्नि/थर्मल विसंगति पहचान (3 घंटे विलंब) | मुफ्त कुंजी |
| Maritime/AIS | पोत ट्रैकिंग, डार्क शिप, प्रतिबंध उल्लंघन | मुफ्त कुंजी |
| Safecast | 6 परमाणु स्थलों के पास नागरिक-विज्ञान विकिरण निगरानी | कोई नहीं |
| ACLED | सशस्त्र संघर्ष घटनाएँ: लड़ाइयाँ, विस्फोट, विरोध | मुफ्त (OAuth2) |
| ReliefWeb | UN मानवीय संकट ट्रैकिंग | कोई नहीं |
| WHO | रोग प्रकोप और स्वास्थ्य आपात स्थितियाँ | कोई नहीं |
| OFAC | US ट्रेजरी प्रतिबंध (SDN सूची) | कोई नहीं |
| OpenSanctions | एकत्रित वैश्विक प्रतिबंध (30+ स्रोत) | आंशिक |
| ADS-B Exchange | सैन्य सहित अनफ़िल्टर्ड उड़ान ट्रैकिंग | भुगतान |
| स्रोत | यह क्या ट्रैक करता है | प्रमाणीकरण |
|---|
| FRED | 22 प्रमुख संकेतक: यील्ड कर्व, CPI, VIX, फेड फंड्स, M2 | मुफ्त कुंजी |
| US Treasury | राष्ट्रीय ऋण, यील्ड, राजकोषीय डेटा | कोई नहीं |
| BLS | CPI, बेरोज़गारी, गैर-कृषि पेरोल, PPI | कोई नहीं |
| EIA | WTI/Brent कच्चा तेल, प्राकृतिक गैस, इन्वेंटरी | मुफ्त कुंजी |
| GSCPI | NY Fed वैश्विक आपूर्ति श्रृंखला दबाव सूचकांक | कोई नहीं |
| USAspending | संघीय खर्च और रक्षा अनुबंध | कोई नहीं |
| UN Comtrade | प्रमुख शक्तियों के बीच रणनीतिक वस्तु व्यापार प्रवाह | कोई नहीं |
| स्रोत | यह क्या ट्रैक करता है | प्रमाणीकरण |
|---|
| NOAA/NWS | सक्रिय US मौसम अलर्ट | कोई नहीं |
| EPA RadNet | US सरकार विकिरण निगरानी | कोई नहीं |
| USPTO Patents | 7 रणनीतिक तकनीकी क्षेत्रों में पेटेंट फाइलिंग | कोई नहीं |
| Bluesky | भू-राजनैतिक/बाजार विषयों पर सामाजिक भावना | कोई नहीं |
| प्रमुख subreddits से सामाजिक भावना | OAuth | |
| Telegram | 17 क्यूरेटेड OSINT/संघर्ष/वित्त चैनल (वेब स्क्रैपिंग, कॉन्फ़िग के माध्यम से विस्तार योग्य) | कोई नहीं |
| KiwiSDR | वैश्विक HF रेडियो रिसीवर नेटवर्क (~600 रिसीवर) | कोई नहीं |
| स्क्रिप्ट | कमांड | विवरण |
|---|
npm run dev | node --trace-warnings server.mjs | ऑटो-रिफ्रेश के साथ डैशबोर्ड प्रारंभ करें |
npm run sweep | node apis/briefing.mjs | एकल स्वीप चलाएँ, stdout पर JSON आउटपुट करें |
npm run inject | node dashboard/inject.mjs | स्थिर HTML में नवीनतम डेटा इंजेक्ट करें |
npm run brief:save | node apis/save-briefing.mjs | स्वीप चलाएँ + टाइमस्टैम्प्ड JSON सहेजें |
npm run diag | node diag.mjs | डायग्नोस्टिक्स चलाएँ (Node संस्करण, इम्पोर्ट, पोर्ट जाँच) |
| चर | डिफ़ॉल्ट | विवरण |
|---|
PORT | 3117 | डैशबोर्ड सर्वर पोर्ट |
REFRESH_INTERVAL_MINUTES | 15 | ऑटो-रिफ्रेश अंतराल |
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 चैट ID |
TELEGRAM_CHANNELS | — | निगरानी के लिए अतिरिक्त चैनल ID (अल्पविराम-पृथक) |
TELEGRAM_POLL_INTERVAL | 5000 | बॉट कमांड पोलिंग अंतराल (ms) |
DISCORD_BOT_TOKEN | अक्षम | Discord अलर्ट + स्लैश कमांड के लिए |
DISCORD_CHANNEL_ID | — | अलर्ट के लिए Discord चैनल |
DISCORD_GUILD_ID | — | सर्वर ID (त्वरित स्लैश कमांड पंजीकरण) |
DISCORD_WEBHOOK_URL | — | वेबहुक URL (केवल-अलर्ट फ़ॉलबैक, बॉट की आवश्यकता नहीं) |
GET /api/health | सर्वर स्थिति, अपटाइम, स्रोत गणना, LLM स्थिति |
GET /events | लाइव पुश अपडेट के लिए SSE स्ट्रीम |