Skip to content

Установка

В этой главе описано, как установить зависимости, настроить опциональные API-ключи и запустить CVE Intelligence Panel в режиме разработки или production. Успешная установка завершается веб-интерфейсом на порту 5173 (dev) или 3001 (production static).

Предварительные требования

Нужны Node.js 18+ и npm. Для отдельной сборки сайта документации требуется Python 3.10+ в каталоге extended-docs/. Само приложение не требует базы данных; состояние хранится в браузере и in-memory кэшах сервера.

  • Клон репозитория через Git
  • Исходящий HTTPS к хостам NVD, OSV, GitHub, CISA и RSS
  • Опционально: NVD_API_KEY, GITHUB_TOKEN для более высоких rate limit

Быстрый старт (разработка)

Из корня репозитория:

make setup    # npm install + .env из .env.example
make dev      # Vite :5173 + Express :3001

Откройте http://localhost:5173. Vite проксирует /api на API-сервер.

Первый запуск (v1.1.0+)

При новой установке сначала показывается юридический disclaimer, затем мастер настройки (стек, оповещения/мониторинг, источники данных). После завершения открывается дашборд. На последнем шаге мастера можно опционально запустить начальный полный scan.

Существующие пользователи с уже сохранённым стеком в localStorage мигрируют автоматически (setupComplete устанавливается без повторного мастера). Кэшированные результаты scan загружаются из предыдущей сессии, если стек совпадает.

Production

make build
make start    # NODE_ENV=production — раздаёт dist/ + API на PORT (по умолчанию 3001)

Задайте PORT в .env, если 3001 занят. В реальных развёртываниях размещайте приложение за HTTPS reverse proxy; не выставляйте endpoints перевода или сканирования в публичный интернет без аутентификации.

Сайт документации

Расширенная документация (этот сайт):

cd extended-docs && make install && make serve

Краткая legacy-документация: make docs-serve из корня репозитория (docs/mkdocs.yml).

Проверка работоспособности

curl -s http://localhost:3001/api/health | jq .

Ожидайте "ok": true и массив sources с id настроенных лент.

Далее: Интерфейс