Установка оффлайн

Обновлено 20.10.2026
Установка ProtoOBP Backend без доступа к интернету: перенос Docker-образов вручную.

На этой странице:

Если на целевом сервере ProtoOBP Backend отсутствует доступ в Интернет и к репозиторию образов вендора (registry.git.proto.group), Docker образы можно перенести вручную: скачать их на промежуточной машине с доступом в Интернет, сохранить в архив командой docker save, перенести архив на целевой сервер и загрузить командой docker load.

Понадобятся:

  • Промежуточная машина с установленным Docker и доступом в Интернет к репозиторию вендора (например, рабочий ноутбук или сервер сборки).
  • Целевой сервер ProtoOBP Backend с установленным Docker (требования см. в разделе Подготовка сервера).

1. Скачайте и упакуйте образы на промежуточной машине

Авторизуйтесь в репозитории вендора (<USERNAME> и пароль указаны в лицензионном сертификате в разделе “Учетные данные”):

docker login --username <USERNAME> registry.git.proto.group

Сохраните приведённый ниже скрипт в файл protoobp-save-images.sh и запустите его (bash protoobp-save-images.sh). Скрипт скачает все образы и упакует их в один сжатый архив protoobp-images-203.tar.gz:

#!/usr/bin/env bash
#
# Скачивает образы ProtoOBP Backend и упаковывает их в один архив
# для переноса на сервер без доступа в Интернет.
# Перед запуском выполните: docker login registry.git.proto.group
#
set -euo pipefail

REGISTRY="registry.git.proto.group/protoobp/protoobp-artifacts"
TAG="203"
ARCHIVE="protoobp-images-${TAG}.tar.gz"

IMAGES=(
  "proto-ai-agent-assistant:${TAG}"
  "proto-ai-agent-investigator:${TAG}"
  "proto-alert-monitor:${TAG}"
  "proto-alert-processor:${TAG}"
  "proto-alert-rule-manager:${TAG}"
  "proto-alertmanager:${TAG}"
  "proto-api-manager:${TAG}"
  "proto-auth:${TAG}"
  "proto-backend-logs-viewer:${TAG}"
  "proto-data-aggregator:${TAG}"
  "proto-data-analyzer-api:${TAG}"
  "proto-data-analyzer-refresh:${TAG}"
  "proto-data-analyzer-router:${TAG}-non-avx"
  "proto-data-analyzer-router:${TAG}"
  "proto-data-analyzer-worker-1:${TAG}-non-avx"
  "proto-data-analyzer-worker-1:${TAG}"
  "proto-data-analyzer-worker-2:${TAG}-non-avx"
  "proto-data-analyzer-worker-2:${TAG}"
  "proto-database:${TAG}"
  "proto-graph-builder:${TAG}"
  "proto-incident-manager:${TAG}"
  "proto-job-runner:${TAG}"
  "proto-kafka:${TAG}"
  "proto-log-storage:${TAG}"
  "proto-mcp:${TAG}"
  "proto-metric-adapter:${TAG}"
  "proto-metric-analyzer:${TAG}"
  "proto-metric-exporter:${TAG}"
  "proto-metric-receiver:${TAG}"
  "proto-metric-storage:${TAG}"
  "proto-nginx:${TAG}"
  "proto-otel-collector:${TAG}"
  "proto-postgresql:${TAG}"
  "proto-report-renderer:${TAG}"
  "proto-report-runner:${TAG}"
  "proto-storage:${TAG}"
  "proto-trace-processor:${TAG}"
  "proto-ui:${TAG}"
  "proto-zookeeper:${TAG}"
  "protoobp-agent:${TAG}"
)

# Полные имена образов (REGISTRY + имя:тег)
FULL=()
for img in "${IMAGES[@]}"; do
  FULL+=("${REGISTRY}/${img}")
done

echo ">>> Скачивание ${#FULL[@]} образов..."
for img in "${FULL[@]}"; do
  echo "    pull ${img}"
  docker pull "${img}"
done

echo ">>> Сохранение образов в ${ARCHIVE} (может занять несколько минут)..."
docker save "${FULL[@]}" | gzip > "${ARCHIVE}"

echo ">>> Готово: ${ARCHIVE} ($(du -h "${ARCHIVE}" | cut -f1))"

Дополнительно скачайте архив с файлами дистрибутива (docker-compose-203.yaml, шаблон .env и др.) — он также потребуется на целевом сервере:

curl --header "PRIVATE-TOKEN:<your_token>" \
"https://git.proto.group/api/v4/projects/100/packages/generic/protoobp-backend-dist/203/protoobp-backend-dist-singlehost-203.tar.gz" \
--output protoobp-backend-dist-singlehost-203.tar.gz

где <your_token> – ваш пароль, указанный в лицензионном сертификате.

2. Перенесите архивы на целевой сервер

Перенесите на целевой сервер оба файла — архив с образами и архив с дистрибутивом — любым доступным способом (scp, съёмный носитель и т.п.). Пример с scp:

scp protoobp-images-203.tar.gz protoobp-backend-dist-singlehost-203.tar.gz \
  user@protoobp-backend:/opt/protoobp/

3. Загрузите образы на целевом сервере

Сохраните скрипт в файл protoobp-load-images.sh и запустите его на целевом сервере (docker load автоматически распаковывает gzip):

#!/usr/bin/env bash
set -euo pipefail

ARCHIVE="${1:-protoobp-images-203.tar.gz}"

echo ">>> Загрузка образов из ${ARCHIVE}..."
docker load -i "${ARCHIVE}"

echo ">>> Загруженные образы ProtoOBP:"
docker images | grep protoobp-artifacts

Либо выполните команду напрямую:

docker load -i /opt/protoobp/protoobp-images-203.tar.gz

4. Продолжите установку

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

  • архив с дистрибутивом уже перенесён на сервер — распакуйте его в /opt/protoobp (шаг 1 инструкции), скачивать его повторно через curl не нужно;
  • пропустите шаг с docker login и командой docker compose -f docker-compose-203.yaml pull — образы уже загружены локально;
  • не изменяйте переменную DOCKER_REGISTRY в файле .env, чтобы имена образов совпадали с теми, которые использует docker-compose-203.yaml;
  • запустите систему командой:
    docker compose -f docker-compose-203.yaml up -d