الإعداد¶
ينقسم الإعداد إلى متغيرات بيئة الخادم (أسرار، حدود المعدل، الترجمة) وlocalStorage في المتصفح (المكدس، تفضيلات الواجهة، آخر فحص مخزّن).
بيئة الخادم¶
انسخ .env.example إلى .env. تقرأها dotenv في عملية Express فقط.
| المتغير | الافتراضي | الوصف |
|---|---|---|
PORT |
3001 |
منفذ الاستماع HTTP |
SCAN_DAYS |
60 |
نافذة البحث في الخلاصات |
API_SECRET |
— | سر مشترك اختياري؛ عند التعيين يتطلب X-Api-Key أو Bearer على /api/* ما عدا health |
API_SECRET_PREVIOUS |
— | السر السابق أثناء التدوير (اختياري؛ SECRETS.md) |
VITE_API_KEY |
— | مفتاح build-time للواجهة (نفس API_SECRET للأدوات أحادية المستأجر) |
NVD_API_KEY |
— | مفتاح حد معدل NVD (GET /api/health?detailed=true → feeds.nvd) |
GITHUB_TOKEN |
— | API مشورات GitHub — PAT كلاسيكي public_repo |
OSV_TIMEOUT_MS |
15000 |
مهلة OSV (ms)؛ retry عند 429/503 |
GITHUB_MAX_PAGES |
3 |
عمق التحميل المسبق للمشورات |
TRANSLATE_ENABLED |
true |
مفتاح رئيسي للترجمة |
TRANSLATE_MAX_ITEMS |
50 |
سقف الترجمة لكل فحص |
TRANSLATE_BATCH_MAX |
40 |
لكل طلب /api/translate |
TRANSLATE_CONCURRENCY |
3 |
عمال ترجمة متوازيون |
MYMEMORY_EMAIL |
— | هوية MyMemory |
LIBRETRANSLATE_URL |
— | LibreTranslate اختياري |
OLLAMA_URL |
— | نقطة Ollama محلية |
OLLAMA_MODEL |
llama3.2 |
نموذج Ollama |
RATE_LIMIT_SCAN_PER_MIN |
12 |
أقصى طلبات POST /scan لكل IP في الدقيقة |
RATE_LIMIT_WATCH_PER_MIN |
120 |
أقصى طلبات POST /watch لكل IP في الدقيقة |
SCAN_TIMEOUT_MS |
— | إيقاف طلبات scan/watch الطويلة (راجع .env.example) |
متغیرات ops إضافية¶
راجع فصل Configuration (EN) — API_ROLE، DATABASE_URL، REDIS_URL، JOB_QUEUE_ENABLED، WORKER_CONCURRENCY، JOB_RESULT_TTL_SEC، AIRGAPPED، K8S_*، METRICS_*.
البيانات والذاكرة المؤقتة وتعدد المستأجرين¶
| المتغير | الافتراضي | الوصف |
|---|---|---|
DATABASE_URL |
— | PostgreSQL لتاريخ المسح والمستأجرين والمكدسات المحفوظة |
DATA_DIR |
./data |
مجلد بيانات الخادم (Docker: /app/data) |
REDIS_URL |
— | ذاكرة استجابة مشتركة بين النسخ؛ يفعّل أيضاً مهام مسح BullMQ عند تشغيل worker |
JOB_QUEUE_ENABLED |
مفعّل مع REDIS_URL |
اضبط false لاستخدام Redis للذاكرة المؤقتة فقط (بدون قائمة) |
WORKER_CONCURRENCY |
1 |
مهام مسح متوازية لكل عملية worker |
JOB_RESULT_TTL_SEC |
3600 |
TTL Redis لحمولات نتائج المهام المكتملة |
CACHE_MAX_ENTRIES |
2000 |
سقف الذاكرة المؤقتة في الذاكرة عندما Redis غير مضبوط |
أرسل X-Tenant-Id على /api/v1/* عند استخدام Postgres — المستأجرون.
بيئة إشعارات الخادم¶
تنبيهات صادرة اختيارية عندما تجد المراقبة CVE جديدة (انظر التنبيهات). تبقى متغيرات webhook Slack القديمة مدعومة.
| المتغير | الوصف |
|---|---|
ALERT_WEBHOOK_URL / ALERT_WEBHOOK_URL_FILE |
webhook متوافق مع Slack (legacy) |
ALERT_MIN_SEVERITY |
الحد الأدنى للخطورة لـ webhook القديم |
ALERT_WEBHOOK_FORMAT |
JSON بقالب slack أو generic |
NOTIFICATION_MIN_SEVERITY |
الحد الأدنى العام للخطورة (افتراضي ALERT_MIN_SEVERITY أو HIGH) |
NOTIFICATION_SLACK_MIN_SEVERITY |
تجاوز Slack فقط (يعود للعام) |
NOTIFICATION_DISCORD_MIN_SEVERITY |
تجاوز Discord |
NOTIFICATION_TEAMS_MIN_SEVERITY |
تجاوز Teams |
NOTIFICATION_TELEGRAM_MIN_SEVERITY |
تجاوز Telegram |
NOTIFICATION_EMAIL_MIN_SEVERITY |
تجاوز Email |
NOTIFICATION_WEBHOOK_MIN_SEVERITY |
تجاوز webhook عام |
NOTIFICATION_DEDUP_MS |
كبح منشورات مكررة لكل قناة (افتراضي 15 دقيقة) |
NOTIFICATION_RATE_LIMIT_PER_HOUR |
الحد الأقصى العالمي للإرسال الناجح/ساعة/قناة (0 = غير محدود) |
NOTIFICATION_SLACK_RATE_LIMIT_PER_HOUR |
حد Slack/ساعة (يعود للعام) |
NOTIFICATION_DISCORD_RATE_LIMIT_PER_HOUR |
حد Discord/ساعة |
NOTIFICATION_TEAMS_RATE_LIMIT_PER_HOUR |
حد Teams/ساعة |
NOTIFICATION_TELEGRAM_RATE_LIMIT_PER_HOUR |
حد Telegram/ساعة |
NOTIFICATION_EMAIL_RATE_LIMIT_PER_HOUR |
حد Email/ساعة |
NOTIFICATION_WEBHOOK_RATE_LIMIT_PER_HOUR |
حد webhook/ساعة |
NOTIFICATION_SLACK_WEBHOOK_URL |
webhook Slack مخصص |
NOTIFICATION_DISCORD_WEBHOOK_URL |
URL webhook Discord |
NOTIFICATION_TEAMS_WEBHOOK_URL |
Microsoft Teams Incoming Webhook (MessageCard) |
NOTIFICATION_TELEGRAM_BOT_TOKEN |
رمز bot تيليجرام |
NOTIFICATION_TELEGRAM_CHAT_ID |
معرّف محادثة تيليجرام |
SIEM_WEBHOOK_URL / SIEM_FORMAT |
SIEM JSON/CEF webhook |
OPA_URL / OPA_ENFORCE |
OPA sidecar + watch gate |
JIRA_* / SERVICENOW_* |
ITSM CRITICAL+KEV tickets |
NOTIFICATION_WEBHOOK_URL |
webhook JSON عام (غلاف متوافق مع Teams) |
NOTIFICATION_SMTP_HOST |
مضيف SMTP للبريد |
NOTIFICATION_SMTP_PORT |
منفذ SMTP (افتراضي 587) |
NOTIFICATION_SMTP_USER / NOTIFICATION_SMTP_PASS |
مصادقة SMTP (اختياري) |
NOTIFICATION_SMTP_FROM / NOTIFICATION_SMTP_TO |
مرسل ومستقبل البريد |
localStorage على العميل¶
| المفتاح | الغرض |
|---|---|
cve-radar:stack |
أسماء الأدوات المراقبة |
cve-radar:settings |
تنبيهات، مراقبة، ترجمة، فواصل |
cve-radar:setup-complete |
انتهاء معالج الإعداد الأول (v1.1.0+) |
cve-radar:theme |
light / dark / system |
cve-radar:locale |
رمز لغة الواجهة |
cve-radar:font-scale |
مقياس نص 85–140 |
cve-radar:sidebar-collapsed |
وضع SubNav الضيق |
cve-radar:last-scan |
vuln + ملخص مخزّن (scanCache.ts، مفتاح بالمكدس) |
cve-radar:known-ids |
معرّفات CVE لإزالة التكرار في المراقبة |
cve-radar:sources-updated-at |
طوابع زمن لكل مصدر |
cve-radar:source-config |
تبديل المصادر المدمجة والخلاصات المخصصة |
لا تلتزم .env بحقيقي رموز مميزة.
عناوين URL لاكتشاف API¶
عند تشغيل الخادم يمكن للمكاملين قراءة الحدود والعقود دون مسح الكود:
| URL | الغرض |
|---|---|
GET /api/health |
الحيوية وأعلام البيئة |
GET /api/capabilities |
حدود رقمية وأعلام ميزات |
GET /api/sources |
كتالوج الخلاصات المدمجة |
GET /api/openapi.json |
مستند OpenAPI 3.1 |
المكافئات المُصدَرة: /api/v1/health، إلخ. راجع مرجع API.
التالي: المعمارية