Конфигурация¶
Конфигурация делится на переменные окружения сервера (секреты, rate limits, перевод) и localStorage браузера (стек, настройки UI, кэш скана).
Окружение сервера¶
Скопируйте .env.example в .env. Ключи читает dotenv только процессом Express.
| Переменная | По умолчанию | Описание |
|---|---|---|
PORT |
3001 |
Порт HTTP |
SCAN_DAYS |
60 |
Окно look-back лент |
API_SECRET |
— | Опциональный shared secret; при задании — X-Api-Key или Bearer на /api/* кроме health |
VITE_API_KEY |
— | Ключ UI на этапе сборки (тот же API_SECRET для single-tenant) |
NVD_API_KEY |
— | Ключ rate limit NVD (GET /api/health?detailed=true → feeds.nvd) |
GITHUB_TOKEN |
— | GitHub advisory — classic PAT с public_repo |
OSV_TIMEOUT_MS |
15000 |
Таймаут OSV (мс); retry при 429/503 |
GITHUB_MAX_PAGES |
3 |
Глубина prefetch advisory |
TRANSLATE_ENABLED |
true |
Главный переключатель перевода |
TRANSLATE_MAX_ITEMS |
50 |
Лимит перевода на скан |
TRANSLATE_BATCH_MAX |
40 |
На запрос /api/translate |
TRANSLATE_CONCURRENCY |
3 |
Параллельные воркеры перевода |
MYMEMORY_EMAIL |
— | Идентификатор MyMemory |
LIBRETRANSLATE_URL |
— | Опциональный LibreTranslate |
OLLAMA_URL |
— | Локальный endpoint 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) |
Auth, RBAC, rate limits, data, K8s, metrics¶
Полные таблицы переменных (API_ROLE, DATABASE_URL, REDIS_URL, AIRGAPPED, K8S_*, METRICS_*, …) — глава Configuration (EN).
Окружение уведомлений сервера¶
Опциональные исходящие оповещения, когда watch находит новые CVE (см. Оповещения). Устаревшие переменные Slack webhook поддерживаются.
| Переменная | Описание |
|---|---|
ALERT_WEBHOOK_URL / ALERT_WEBHOOK_URL_FILE |
Legacy webhook, совместимый со Slack |
ALERT_MIN_SEVERITY |
Минимальная severity для legacy webhook |
ALERT_WEBHOOK_FORMAT |
JSON slack или generic |
NOTIFICATION_MIN_SEVERITY |
Глобальный минимум severity (по умолчанию ALERT_MIN_SEVERITY или HIGH) |
NOTIFICATION_DEDUP_MS |
Подавление повторных постов на канал (по умолчанию 15 мин) |
NOTIFICATION_SLACK_WEBHOOK_URL |
Отдельный Slack webhook |
NOTIFICATION_DISCORD_WEBHOOK_URL |
URL Discord webhook |
NOTIFICATION_TELEGRAM_BOT_TOKEN |
Токен Telegram bot |
NOTIFICATION_TELEGRAM_CHAT_ID |
Chat id Telegram |
NOTIFICATION_WEBHOOK_URL |
Универсальный JSON webhook (конверт, совместимый с Teams) |
NOTIFICATION_SMTP_HOST |
SMTP-хост для email |
NOTIFICATION_SMTP_PORT |
Порт SMTP (по умолчанию 587) |
NOTIFICATION_SMTP_USER / NOTIFICATION_SMTP_PASS |
SMTP auth (опционально) |
NOTIFICATION_SMTP_FROM / NOTIFICATION_SMTP_TO |
Отправитель и получатель email |
localStorage клиента¶
| Ключ | Назначение |
|---|---|
cve-radar:stack |
Имена отслеживаемых инструментов |
cve-radar:settings |
Оповещения, мониторинг, перевод, интервалы |
cve-radar:setup-complete |
Завершение мастера первого запуска (v1.1.0+) |
cve-radar:theme |
light / dark / system |
cve-radar:locale |
Код языка UI |
cve-radar:font-scale |
Масштаб текста 85–140 |
cve-radar:sidebar-collapsed |
Узкий режим SubNav |
cve-radar:last-scan |
Кэш vuln + summary (scanCache.ts, по ключу стека) |
cve-radar:known-ids |
ID CVE для dedup в watch |
cve-radar:sources-updated-at |
Метки времени по источникам |
cve-radar:source-config |
Переключатели встроенных и custom feed |
Никогда не коммитьте .env с реальными токенами.
URL обнаружения API¶
При работающем сервере интеграторы могут читать лимиты и контракты без разбора кода:
| URL | Назначение |
|---|---|
GET /api/health |
Liveness и флаги env |
GET /api/capabilities |
Числовые лимиты и feature flags |
GET /api/sources |
Каталог встроенных лент |
GET /api/openapi.json |
Документ OpenAPI 3.1 |
Версионированные эквиваленты: /api/v1/health и т.д. См. Справочник API.
Далее: Архитектура