Развёртывание клиента и сервера сканирования
Эта страница описывает состав и порядок запуска основного контура NRunner через файл compose/main/docker-compose.prod.server-client.yml.
Для полного сценария установки используйте один из вариантов:
Что входит в развёртку
Docker Compose-файл основного контура запускает:
| Сервис | Назначение |
|---|---|
nrunner-client | Web-интерфейс NRunner |
nrunner-server | Основной backend и HTTP/gRPC API |
db | Основная PostgreSQL БД |
db-migrate | Однократное выполнение миграций основной БД |
cache | Redis для кэша и служебного состояния |
nrunner-agent-export | Копирование агентских бинарных файлов в общий том |
Подготовка переменных окружения
Создайте рабочие env-файлы:
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_URL | URL 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:
docker compose \
--env-file compose/main/env.server \
--env-file compose/main/env.client \
-f compose/main/docker-compose.prod.server-client.yml \
pullTIP
Образы загружаются из официального registry registry.legionsecurity.ru. Для закрытых контуров допускается предварительная доставка образов средствами docker save и docker load.
Запуск системы
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. Рекомендуется проверять обновления с помощью команды:
docker compose \
--env-file compose/main/env.server \
--env-file compose/main/env.client \
-f compose/main/docker-compose.prod.server-client.yml \
pullПроверка состояния
Проверьте состояние контейнеров:
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/v1 | NRunner Server | HTTP API backend |
http://localhost:8080/ | NRunner Client | Web-интерфейс |
Дополнительные команды
Просмотр журналов сервиса:
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 <имя-сервиса>Остановка системы без удаления данных:
docker compose \
--env-file compose/main/env.server \
--env-file compose/main/env.client \
-f compose/main/docker-compose.prod.server-client.yml \
downУдаление контейнеров и томов:
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-среде необходимо выполнить резервное копирование данных.