Развёртывание 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. Подготовьте переменные окружения
Из директории установочных файлов скопируйте примеры конфигурационных фалов с новым названием:
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. Загрузка образов
Загрузка с доступом в Интернет
Смените рабочую директорию:
cd compose/mainЕсли на хосте ещё нет нужных image или вы выполняете обновление, получите их из registry c помощью команды:
docker compose \
-f docker-compose.prod.server-client.yml \
--env-file "env.server" \
--env-file "env.client" \
pullTIP
Образы загружается из официального репозитория registry.legionsecurity.ru. Для закрытых контуров используйте формат локальной установки.
Загрузка без доступа в интернет
Для загрузки образов на устройство без доступа в сеть необходимо воспользоваться официальным инструментарием docker: docker save, docker load
Шаг 3. Запуск системы
Для запуска системы используется следующая команда выполненная в директории файлов развёртки. В процессе запуска будут загружены необходимые docker образы с публичного репозитория находящегося по адресу registry.legionsecurity.ru
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. Проверка состояние
Для проверки состояния системы используется следующая команда:
docker compose \
-f docker-compose.prod.server-client.yml \
--env-file "env.server" \
--env-file "env.client" \
psШаг 5. Проверка результата
После старта должны быть доступны по следующим адресам сервисы (с установленными переменными по умолчанию):
| Адрес | Сервис | Описание |
|---|---|---|
http://localhost:3002/api/v1 | Nrunner Server | API backend системы |
http://localhost:8080/ | Nrunner Client | Веб интерфейс истемы |
Дополнительные команды
Для просмотра логов какого либо из развёрнутых сервисов воспользуйтесь следующей командой:
docker compose \
-f docker-compose.prod.server-client.yml \
--env-file "env.server" \
--env-file "env.client" \
logs -f <имя-сервиса>Для проверки состояния системы используется следующая команда:
docker compose \
-f docker-compose.prod.server-client.yml \
--env-file "env.server" \
--env-file "env.client" \
psДля выключения системы необходимо ввести следующую команду
docker compose \
-f docker-compose.prod.server-client.yml \
--env-file "env.server" \
--env-file "env.client" \
downДля того что бы удалить созданную Базу данных сервера и созданные в процессе развёртки docker компоненты (volumes, networks и т.д.) используется команда:
docker compose \
-f docker-compose.prod.server-client.yml \
--env-file "env.server" \
--env-file "env.client" \
down -vДля просмотра логов какого либо из развёрнутых сервисов воспользуйтесь следующей командой:
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