Skip to content

Развёртывание server + client

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

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

Docker compose файл docker-compose.prod.server-client.yml разворачивает:

  • nrunner-client - Web клиент;
  • nrunner-server - основной сервис системы;
  • db - основная СУБД системы;
  • db-migrate - служба для обновления системы.
  • cache - быстрое хранилище временны данных для сервера сканирования;

Шаг 1. Подготовьте переменные окружения

Из директории установочных файлов скопируйте примеры конфигурационных фалов с новым названием:

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

Минимально проверьте и/или заполните следующие переменные в скопированных файлах env.server, env.client.

В env.server

ПеременнаяЧто задать перед запуском
JWT_SECRETСекрет подписи JWT. Используйте длинную непредсказуемую строку.
CREDENTIALS_MASTER_KEYКлюч шифрования сохранённых учётных данных. Используйте отдельный секрет, не тестовое значение.
REDIS_PASSWORDПароль для встроенного Redis.
SERVER_PUBLIC_HOSTПубличный IP или DNS-имя хоста с netrunner-server.
AGENT_DEPLOYMENT_SERVER_HOSTТот же стабильный адрес, который будут использовать агенты.
AGENT_DEPLOYMENT_SERVER_GRPCАдрес gRPC endpoint в формате <host>:<port>, например scanner.example.com:50051.
VULN_SERVICE_URLВнутренний или внешний URL vuln-api. Если оба контура в одной Docker-сети, можно оставить http://vuln-api:8081.

WARNING

Если используется публичная БД уязвимостей vulndb, то переменная JWT_SECRET должна иметь значение по умолчанию.

В env.client

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

Шаг 2. Загрузка образов

Загрузка с доступом в Интернет

Смените рабочую директорию:

shell
cd compose/main

Если на хосте ещё нет нужных image или вы выполняете обновление, получите их из registry c помощью команды:

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

TIP

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

Загрузка без доступа в интернет

Для загрузки образов на устройство без доступа в сеть необходимо воспользоваться официальным инструментарием docker: docker save, docker load

Шаг 3. Запуск системы

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

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

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

  • поднимет local-postgres и redis;
  • выполнит local-migrate;
  • после успешных зависимостей запустит nrunner-server;
  • затем поднимет nrunner-client.

Шаг 4. Проверка состояние

Для проверки состояния системы используется следующая команда:

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

Шаг 5. Проверка результата

После старта должны быть доступны по следующим адресам сервисы (с установленными переменными по умолчанию):

АдресСервисОписание
http://localhost:3002/api/v1Nrunner ServerAPI backend системы
http://localhost:8080/Nrunner ClientВеб интерфейс истемы

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

Для просмотра логов какого либо из развёрнутых сервисов воспользуйтесь следующей командой:

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

Для проверки состояния системы используется следующая команда:

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

Для выключения системы необходимо ввести следующую команду

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

Для того что бы удалить созданную Базу данных сервера и созданные в процессе развёртки docker компоненты (volumes, networks и т.д.) используется команда:

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

Для просмотра логов какого либо из развёрнутых сервисов воспользуйтесь следующей командой:

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

Названия сервисов описаны в docker-compose.prod.server-client.yml

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