Skip to content

Развёртывание клиента и сервера сканирования

Эта страница описывает состав и порядок запуска основного контура NRunner через файл compose/main/docker-compose.prod.server-client.yml.

Для полного сценария установки используйте один из вариантов:

Что входит в развёртку

Docker Compose-файл основного контура запускает:

СервисНазначение
nrunner-clientWeb-интерфейс NRunner
nrunner-serverОсновной backend и HTTP/gRPC API
dbОсновная PostgreSQL БД
db-migrateОднократное выполнение миграций основной БД
cacheRedis для кэша и служебного состояния
nrunner-agent-exportКопирование агентских бинарных файлов в общий том

Подготовка переменных окружения

Создайте рабочие env-файлы:

shell
cp compose/main/env.server.example compose/main/env.server
cp compose/main/env.client.example compose/main/env.client

Минимально проверьте следующие переменные в compose/main/env.server и compose/main/env.client.

В env.server

ПеременнаяЧто задать перед запуском
JWT_SECRETСекрет подписи JWT. Используйте длинную непредсказуемую строку.
CREDENTIALS_MASTER_KEYКлюч шифрования сохранённых учётных данных. Используйте отдельный секрет, не тестовое значение.
REDIS_PASSWORDПароль для встроенного Redis.
SERVER_PUBLIC_HOSTПубличный IP или DNS-имя хоста с nrunner-server.
AGENT_DEPLOYMENT_SERVER_HOSTТот же стабильный адрес, который будут использовать агенты.
AGENT_DEPLOYMENT_SERVER_GRPCАдрес gRPC endpoint в формате <host>:<port>, например scanner.example.com:50051.
VULN_SERVICE_URLURL vulnerability-сервиса. По умолчанию используется публичный сервис https://vulndb.nrunner.ru.

WARNING

Не используйте значения секретов из шаблонов в production-среде. Замените JWT_SECRET, CREDENTIALS_MASTER_KEY и REDIS_PASSWORD на уникальные значения до ввода системы в эксплуатацию.

В env.client

ПеременнаяЧто задать перед запуском
NRUNNER_API_URLПолный URL backend API, обязательно с суффиксом /api/v1, например http://scanner.example.com:3002/api/v1.
NRUNNER_CLIENT_HTTP_PORTВнешний порт web UI

Загрузка образов

Если на хосте отсутствуют необходимые образы или выполняется обновление, загрузите их из registry:

bash
docker compose \
  --env-file compose/main/env.server \
  --env-file compose/main/env.client \
  -f compose/main/docker-compose.prod.server-client.yml \
  pull

TIP

Образы загружаются из официального registry registry.legionsecurity.ru. Для закрытых контуров допускается предварительная доставка образов средствами docker save и docker load.

Запуск системы

bash
docker compose \
  --env-file compose/main/env.server \
  --env-file compose/main/env.client \
  -f compose/main/docker-compose.prod.server-client.yml \
  up -d

При первом запуске Docker Compose:

  • создаёт постоянные тома;
  • запускает db и cache;
  • выполняет db-migrate;
  • выполняет nrunner-agent-export;
  • после успешного завершения зависимостей запускает nrunner-server;
  • запускает nrunner-client.

Обновление компонентов

Потенциально на данном этапе продукта возможны обновления существующих образов Docker. Рекомендуется проверять обновления с помощью команды:

bash
docker compose \
  --env-file compose/main/env.server \
  --env-file compose/main/env.client \
  -f compose/main/docker-compose.prod.server-client.yml \
  pull

Проверка состояния

Проверьте состояние контейнеров:

bash
docker compose \
  --env-file compose/main/env.server \
  --env-file compose/main/env.client \
  -f compose/main/docker-compose.prod.server-client.yml \
  ps

Проверка результата

При значениях по умолчанию должны быть доступны:

АдресСервисОписание
http://localhost:3002/api/v1NRunner ServerHTTP API backend
http://localhost:8080/NRunner ClientWeb-интерфейс

Дополнительные команды

Просмотр журналов сервиса:

bash
docker compose \
  --env-file compose/main/env.server \
  --env-file compose/main/env.client \
  -f compose/main/docker-compose.prod.server-client.yml \
  logs -f <имя-сервиса>

Остановка системы без удаления данных:

bash
docker compose \
  --env-file compose/main/env.server \
  --env-file compose/main/env.client \
  -f compose/main/docker-compose.prod.server-client.yml \
  down

Удаление контейнеров и томов:

bash
docker compose \
  --env-file compose/main/env.server \
  --env-file compose/main/env.client \
  -f compose/main/docker-compose.prod.server-client.yml \
  down -v

Команда с флагом -v удаляет Docker-тома основного контура. Перед её применением в production-среде необходимо выполнить резервное копирование данных.

Документация NRunner