
وكيل استخباراتك الشخصي. يراقب العالم من مصادر بيانات متعددة ويُنبهك عند حدوث أي تغيير.
محطة استخباراتك الخاصة. 27 مصدرًا. أمر واحد. بدون سحابة.
ادخل إلى شبكة الإشارة

| تسلسل الإقلاع | خريطة العالم |
|---|---|
![]() | ![]() |
الموقع المباشر: https://www.crucix.live/ استكشف العرض التجريبي العام أولاً، ثم استنسخ المستودع لتشغيل Crucix محليًا.
تجلب Crucix بيانات اكتشاف الحرائق عبر الأقمار الصناعية، وتتبع الرحلات الجوية، ورصد الإشعاع، وتتبع مجموعات الأقمار الصناعية، والمؤشرات الاقتصادية، وأسعار السوق المباشرة، وبيانات النزاعات، وقوائم العقوبات، والمشاعر الاجتماعية من 27 مصدرًا لذكاء المصادر المفتوحة — بالتوازي، كل 15 دقيقة — وتعرض كل ذلك على لوحة تحكم واحدة مكتفية ذاتيًا بأسلوب جارفيس (Jarvis).
اربطه بنموذج لغوي كبير (LLM) فيتحول إلى مساعد استخباراتي ثنائي الاتجاه — يرسل تنبيهات متعددة المستويات إلى تيليجرام وديسكورد عندما يتغير شيء مهم، ويستجيب لأوامر مثل /brief و /sweep من هاتفك، ويولّد أفكار تداول قابلة للتنفيذ مستندة إلى بيانات حقيقية متعددة المجالات. محللك الخاص الذي يراقب العالم بينما تنام.
جرّب العرض التجريبي المباشر أولاً على https://www.crucix.live/، ثم استنسخ المستودع عندما تريد الحزمة المحلية الكاملة.
لا سحابة. لا تتبع عن بُعد. لا اشتراكات. فقط node server.mjs وستكون قد بدأت.
[!WARNING] لم تطلق Crucix أي توكن رسمي، أو عملة رقمية، أو NFT، أو إسقاط جوي، أو بيع مسبق، أو أي أصل آخر قائم على البلوكتشين. أي توكن أو أصل رقمي يستخدم اسم Crucix أو شعارها أو علامتها التجارية ليس مرتبطًا بـ Crucix أو معتمدًا منها. لا تشترِه، ولا تروّج له، ولا تربط محفظتك للمطالبة به، ولا توقّع معاملات، ولا ترسل أموالًا بناءً على منشورات أو رسائل مباشرة أو مواقع أطراف ثالثة.
معظم بيانات الاستخبارات اللحظية في العالم — صور الأقمار الصناعية، مستويات الإشعاع، أحداث النزاعات، المؤشرات الاقتصادية، تتبع الرحلات الجوية، النشاط البحري — متاحة للعموم. لكنها مبعثرة عبر عشرات من واجهات برمجة التطبيقات الحكومية والمؤسسات البحثية وخلاصات البيانات المفتوحة التي لا يملك أحد وقتًا لفحصها فرديًا.
تجمع 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، والذي قد يبتلع الأخطاء على بعض الأنظمة (خاصة 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 at http://localhost:3117. Sweep data persists in ./runs/ via volume mount. Includes a health check endpoint.
واجهة HUD مكتفية ذاتيًا بأسلوب جارفيس، تضم:
زر VISUALS FULL / VISUALS LITE في الشريط العلوي يغيّر سلوك العرض فقط - وهو لا يزيل مصادر البيانات ولا يقلل من تغطية المسح.
عند التبديل إلى VISUALS LITE، تقوم لوحة التحكم بـ:
سلوك خاص بالجوال:
VISUALS LITE أيضًا دخول لوحة التحكم في وضع الخريطة المسطحة إذا كنت على الكرة الأرضية حاليًايتم حفظ التفضيل في التخزين المحلي للمتصفح، لذا ستتذكر الواجهة آخر إعداد لك.
يقوم الخادم بتشغيل دورة مسح كل 15 دقيقة (قابلة للتكوين). تتضمن كل دورة:
يعمل Crucix أيضًا كبوت Telegram تفاعلي. بالإضافة إلى إرسال التنبيهات، يستجيب للأوامر مباشرة من محادثتك:
يتطلب ذلك تعيين TELEGRAM_BOT_TOKEN وTELEGRAM_CHAT_ID في ملف .env. يستعلم البوت عن الرسائل كل 5 ثوانٍ (قابل للتكوين عبر TELEGRAM_POLL_INTERVAL).
يدعم Crucix أيضًا Discord كبوت كامل الميزات مع أوامر الشرطة المائلة وتنبيهات مضمّنة غنية. إنه يعكس قدرات بوت Telegram بتنسيق أصلي لـ Discord.
| الأمر | الوظيفة |
|---|---|
/status | صحة النظام، وقت آخر مسح، حالة المصادر، حالة LLM |
/sweep | تشغيل دورة مسح يدوية |
يتم تسليم التنبيهات كمضمّنات غنية مع أشرطة جانبية ملوّنة: أحمر لـ FLASH، أصفر لـ PRIORITY، أزرق لـ ROUTINE. يتضمن كل مضمّن تفاصيل الإشارة، ودرجات الثقة، والارتباطات عبر المجالات.
يتطلب الإعداد: DISCORD_BOT_TOKEN وDISCORD_CHANNEL_ID، واختياريًا DISCORD_GUILD_ID للتسجيل الفوري لأوامر الشرطة المائلة. راجع إعداد مفاتيح API للتفاصيل.
البديل عبر Webhook: إذا كنت لا تريد تشغيل بوت كامل، عيّن DISCORD_WEBHOOK_URL بدلاً من ذلك. هذا يتيح تنبيهات أحادية الاتجاه (بدون أوامر شرطة مائلة) بدون أي تبعيات — لا حاجة إلى discord.js.
تبعية اختيارية: يتطلب البوت الكامل discord.js. ثبّته باستخدام npm install discord.js. إذا لم يكن مثبتًا، يتراجع Crucix تلقائيًا إلى وضع الويب هوك فقط.
اربط أيًا من مزودي LLM الثمانية لتحليل محسّن:
انسخ .env.example إلى .env في جذر المشروع:```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 (اختياري، للأفكار المعززة بالذكاء الاصطناعي)
اضبط `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_TOKEN` | أنشئه عبر [@BotFather](https://t.me/BotFather) على تيليجرام |
| `TELEGRAM_CHAT_ID` | احصل عليه عبر [@userinfobot](https://t.me/userinfobot) |
| `TELEGRAM_CHANNELS` | *(اختياري)* معرّفات قنوات إضافية مفصولة بفواصل لمراقبتها إلى جانب القنوات الـ17 المدمجة |
| `TELEGRAM_POLL_INTERVAL` | *(اختياري)* فترة استقصاء أوامر البوت بالمللي ثانية (الافتراضي: 5000) |
### بوت ديسكورد + التنبيهات (اختياري)
| المفتاح | طريقة الحصول |
|-----|------------|
| `DISCORD_BOT_TOKEN` | أنشئه في [بوابة مطوري ديسكورد](https://discord.com/developers/applications) → Bot → Token |
| `DISCORD_CHANNEL_ID` | انقر بزر الفأرة الأيمن على القناة في ديسكورد (وضع المطور مفعّل) → Copy Channel ID |
| `DISCORD_GUILD_ID` | *(اختياري)* انقر بزر الفأرة الأيمن على الخادم → Copy Server ID. يتيح التسجيل الفوري لأوامر الشرطة المائلة (وإلا يستغرق الأمر حتى ساعة واحدة للأوامر العامة) |
| `DISCORD_WEBHOOK_URL` | *(اختياري)* إعدادات القناة → Integrations → Webhooks → New Webhook → Copy URL. استخدمه لوضع التنبيهات فقط بدون بوت |
**إعداد بوت ديسكورد:**
1. اذهب إلى [بوابة مطوري ديسكورد](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. انسخ الرابط المُنشأ وافتحه في متصفحك لدعوة البوت إلى خادمك
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 يستخدمون fetch() الخام، بدون SDKs.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
This is functionally identical to `npm run dev` but gives you full error output.
**2. Run the diagnostic script:**```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
### التبعيات
تستخدم ميزة الماسح **سير عمل Trickest** في الخلفية. فيما يلي تخطيط لمعرفات سير العمل لكل نوع من أنواع فحص أدوات الأمان:
| سير العمل | معرف سير العمل |
|--------------------------------|-----------------------------------------------------------------------|
| `nuclei` | `82ba235a-37bl-4b37-97b2-5a2b7615d158` |
| `semgrep` | `5c3314d5-7961-4cc6-b572-58e7c9c60db5` |
### التحميل المُصادق عليه
trickest-cli upload --help
تستخدم ميزة التحميل المتاحة في واجهة سطر الأوامر مساحة تخزين مُنشأة مسبقًا. لمصادقة التحميل، ستحتاج إلى استرداد رمز مميز لمساحة التخزين المُنشأة مسبقًا.
انتقل إلى لوحة تحكم Trickest الخاصة بك من [Trickest Dashboard](https://trickest.com/auth/login/)
- انتقل إلى Settings -> Storage
- انقر على زر `Show Shared Token````bash
# macOS / Linux
lsof -ti:3117 | xargs kill
ثم حاول البدء مرة أخرى. يمكنك أيضًا تغيير المنفذ عن طريق تعيين PORT=3118 في ملف .env الخاص بك.
4. تحقق من إصدار Node.js:```bash node --version
يتطلّب 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_BOT_TOKEN` و`TELEGRAM_CHAT_ID` في ملف `.env`. لا يستجيب البوت إلا للرسائل الواردة من معرّف الدردشة المُعدّ (إجراء أمني). يجب أن ترى `[Crucix] Telegram alerts enabled` و`[Crucix] Bot command polling started` في سجلات الخادم عند بدء التشغيل. إذا لم يكن الأمر كذلك، تحقق جيدًا من رمزك باستخدام `curl https://api.telegram.org/bot<YOUR_TOKEN>/getMe`.
### بوت ديسكورد لا يستجيب لأوامر الشرطة المائلة
تحقق من هذه الأمور بالترتيب:
1. تأكد من تعيين `DISCORD_BOT_TOKEN` و`DISCORD_CHANNEL_ID` في ملف `.env`
2. تحقق من تثبيت `discord.js`: `npm ls discord.js`. إذا كان مفقودًا، شغّل `npm install discord.js`
3. إذا لم تظهر أوامر الشرطة المائلة، عيّن `DISCORD_GUILD_ID` — فبدونه قد يستغرق انتشار الأوامر العامة حتى ساعة واحدة. أما أوامر الخادم المحدد فتُسجَّل فورًا
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/` على لقطات شاشة للوحة المعلومات المشار إليها في هذا الملف:
| File | Description |
|------|-------------|
| `docs/dashboard.png` | لوحة المعلومات الكاملة — الصورة الرئيسية في أعلى هذا الملف |
| `docs/boot.png` | رسوم متحركة سينمائية لتسلسل الإقلاع |
| `docs/map.png` | خريطة عالمية D3 مع أنواع العلامات وأقواس الرحلات |
| `docs/globe.png` | عرض كروي ثلاثي الأبعاد WebGL مع توهج الغلاف الجوي وعلامات |
لتحديثها: شغّل لوحة المعلومات، وانتظر اكتمال المسح، ثم استخدم أدوات المطور في متصفحك (`F12` → `Ctrl+Shift+P` → "Capture full size screenshot") أو أداة مثل [LICEcap](https://www.cockos.com/licecap/) لإنشاء ملفات GIF.
---
## المساهمة
وجدت خطأً؟ تريد إضافة مصدر ثامن وعشرين؟ طلبات السحب (PRs) مرحّب بها. كل مصدر هو وحدة مستقلة في `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/41561/7cd00fa07216305d19bb2b6ece0de2b2dd36eeb2786d065aef0359159e4598a8/43d9ce4f0049392bf903058716bccb8009e9bdf415dc7e9e892487d4c1f75365-display-v1.webp" />
</picture>
</a>
---
## الترخيص
AGPL-3.0
| عرض الكرة الأرضية ثلاثي الأبعاد |
|---|
![]() |
| الأمر | الوظيفة |
|---|
/status | صحة النظام، وقت آخر مسح، حالة المصادر، حالة LLM |
/sweep | تشغيل دورة مسح يدوية |
/brief | ملخص نصي مضغوط لأحدث الاستخبارات (الاتجاه، المقاييس الرئيسية، أبرز OSINT) |
/portfolio | حالة المحفظة (إذا كان Alpaca متصلًا) |
/alerts | سجل التنبيهات الأخير مع المستويات |
/mute / /mute 2h | كتم التنبيهات لمدة ساعة (أو مدة مخصصة) |
/unmute | استئناف التنبيهات |
/help | عرض جميع الأوامر المتاحة |
/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 | تتبع رحلات غير مصفى بما في ذلك الطائرات العسكرية | مدفوع |
| المصدر | ما يتتبعه | المصادقة |
|---|
| FRED | 22 مؤشرًا رئيسيًا: منحنى العائد، CPI، VIX، أموال الاحتياطي الفيدرالي، M2 | مفتاح مجاني |
| US Treasury | الدين الوطني، العوائد، البيانات المالية | لا شيء |
| BLS | CPI، البطالة، الرواتب غير الزراعية، PPI | لا شيء |
| EIA | خام WTI/Brent، الغاز الطبيعي، المخزونات | مفتاح مجاني |
| GSCPI | مؤشر ضغط سلسلة التوريد العالمية لبنك الاحتياطي الفيدرالي في نيويورك | لا شيء |
| USAspending | الإنفاق الفيدرالي وعقود الدفاع | لا شيء |
| UN Comtrade | تدفقات التجارة في السلع الاستراتيجية بين القوى الكبرى | لا شيء |
| المصدر | ما يتتبعه | المصادقة |
|---|
| NOAA/NWS | تنبيهات الطقس الأمريكية النشطة | لا شيء |
| EPA RadNet | مراقبة الإشعاع الحكومية الأمريكية | لا شيء |
| 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 | تشغيل مسح واحد، إخراج JSON إلى stdout |
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 الخاص بك |
TELEGRAM_CHANNELS | — | معرفات قنوات إضافية للمراقبة (مفصولة بفواصل) |
TELEGRAM_POLL_INTERVAL | 5000 | فترة استقصاء أوامر البوت (مللي ثانية) |
DISCORD_BOT_TOKEN | معطّل | لتنبيهات Discord وأوامر الشرطة المائلة |
DISCORD_CHANNEL_ID | — | قناة Discord للتنبيهات |
DISCORD_GUILD_ID | — | معرف الخادم (تسجيل فوري لأوامر الشرطة المائلة) |
DISCORD_WEBHOOK_URL | — | رابط Webhook (بديل للتنبيهات فقط، بدون بوت) |
GET /api/health | حالة الخادم، مدة التشغيل، عدد المصادر، حالة LLM |
GET /events | تدفق SSE للتحديثات المباشرة الفورية |