پیکربندی¶
پیکربندی به متغیرهای محیط سرور (رمزها، محدودیت نرخ، ترجمه) و localStorage مرورگر (پشته، ترجیحات UI، اسکن کششده) تقسیم میشود.
تغییر env نیاز به راهاندازی مجدد Express دارد؛ ترجیحات UI بلافاصله در مرورگر همان کاربر اعمال میشوند.
محیط سرور¶
.env.example را به .env کپی کنید. کلیدها فقط در فرایند Express خوانده میشوند.
| متغیر | پیشفرض | توضیح |
|---|---|---|
PORT |
3001 |
پورت HTTP |
SCAN_DAYS |
60 |
پنجرهٔ look-back فید |
API_SECRET |
— | راز مشترک اختیاری؛ با مقدار، همهٔ /api/* بهجز health نیاز به X-Api-Key یا Bearer دارند |
VITE_API_KEY |
— | کلید build-time UI (همان API_SECRET برای single-tenant) |
NVD_API_KEY |
— | کلید محدودیت NVD (جزئیات: GET /api/health?detailed=true → feeds.nvd) |
GITHUB_TOKEN |
— | API مشاوره GitHub — PAT کلاسیک با scope public_repo |
OSV_TIMEOUT_MS |
15000 |
تایماوت پرسوجوی OSV (ms)؛ retry روی 429/503 |
GITHUB_MAX_PAGES |
3 |
عمق prefetch |
TRANSLATE_ENABLED |
true |
کلید اصلی ترجمه |
TRANSLATE_MAX_ITEMS |
50 |
سقف ترجمه در اسکن |
TRANSLATE_BATCH_MAX |
40 |
هر درخواست /api/translate |
TRANSLATE_CONCURRENCY |
3 |
worker موازی |
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 (RBAC، Postgres، Redis، air-gap، K8s، metrics)¶
جدول کامل: فصل Configuration (EN) — شامل API_ROLE، DATABASE_URL، REDIS_URL، AIRGAPPED، K8S_*، METRICS_*، EPSS_* و X-Tenant-Id.
محیط اعلان سرور¶
هشدارهای خروجی اختیاری وقتی watch مورد CVE جدید پیدا میکند (به هشدارها مراجعه کنید). متغیرهای webhook قدیمی Slack همچنان پشتیبانی میشوند.
| متغیر | توضیح |
|---|---|
ALERT_WEBHOOK_URL / ALERT_WEBHOOK_URL_FILE |
webhook سازگار با Slack (legacy) |
ALERT_MIN_SEVERITY |
حداقل severity برای webhook قدیمی |
ALERT_WEBHOOK_FORMAT |
JSON با قالب slack یا generic |
NOTIFICATION_MIN_SEVERITY |
حداقل severity سراسری (پیشفرض ALERT_MIN_SEVERITY یا HIGH) |
NOTIFICATION_DEDUP_MS |
سرکوب پست تکراری در هر کانال (پیشفرض ۱۵ دقیقه) |
NOTIFICATION_SLACK_WEBHOOK_URL |
webhook اختصاصی Slack |
NOTIFICATION_DISCORD_WEBHOOK_URL |
URL webhook Discord |
NOTIFICATION_TELEGRAM_BOT_TOKEN |
توکن bot تلگرام |
NOTIFICATION_TELEGRAM_CHAT_ID |
chat id تلگرام |
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 |
هشدار، watch، ترجمه، بازهها |
cve-radar:setup-complete |
پایان ویزارد اولیه (v1.1.0+) |
cve-radar:theme |
light / dark / system |
cve-radar:locale |
کد زبان UI |
cve-radar:font-scale |
مقیاس ۸۵–۱۴۰ |
cve-radar:sidebar-collapsed |
SubNav باریک |
cve-radar:last-scan |
vuln + summary کش (scanCache.ts، کلیدشده با پشته) |
cve-radar:known-ids |
شناسههای CVE برای dedup در watch |
cve-radar:sources-updated-at |
مهر زمانی هر منبع |
cve-radar:source-config |
toggle منابع داخلی و فید سفارشی |
.env با توکن واقعی را commit نکنید.
URLهای کشف API¶
| URL | کاربرد |
|---|---|
GET /api/health |
زنده بودن و پرچم env |
GET /api/capabilities |
سقفها و feature flag |
GET /api/sources |
کاتالوگ فید داخلی |
GET /api/openapi.json |
OpenAPI 3.1 |
معادل نسخهدار: /api/v1/*. جزئیات در مرجع API.
بعدی: معماری