Skip to content

Air-gapped установка

Ongrid спроектирован для полностью offline-установки. Каждый release-tarball отгружает:

  • ongrid manager docker-образ,
  • ongrid-web (frontend + nginx) docker-образ,
  • singchia/frontier broker docker-образ,
  • Четыре edge plugin-бинаря (promtail, otelcol-contrib, node_exporter, process_exporter) для linux/amd64 и linux/arm64,
  • Per-arch ongrid-edge бинари,
  • Опциональную offline embedding-модель (fast-bge-small-zh-v1.5) для базы знаний, если вы запустили make fetch-embedding-model до make package.

Ничто не pulls из Docker Hub, GitHub или любого vendor API во время установки. Единственные внешние зависимости в рантайме — это LLM API эндпоинты, которые вы сконфигурировали — для полностью air-gapped setup направьте их на on-prem vLLM / Ollama / OpenRouter relay.

Эта страница покрывает workflow для окружений, которые не могут дотянуться до публичного интернета.

Скачать tarball на подключённом хосте

На рабочей станции с интернетом:

bash
VER=v0.7.159

gh release download "$VER" \
    --repo ongridio/ongrid \
    -p 'ongrid-*-linux-amd64.tar.xz*'

Вы получите два файла:

ongrid-v0.7.159-linux-amd64.tar.xz          # ~380 MB (xz compressed)
ongrid-v0.7.159-linux-amd64.tar.xz.sha256   # sidecar

GitHub-загрузки через Clash

Большие release-assets ресетятся на полпути через Clash-прокси. Если вы скачиваете и tarball заканчивается коротким, попробуйте NO_PROXY=objects.githubusercontent.com напрямую. Всегда верифицируйте sha256 (см. следующий шаг).

Верифицировать sha256

До того как делать что-либо ещё:

bash
sha256sum -c ongrid-v0.7.159-linux-amd64.tar.xz.sha256
# → ongrid-v0.7.159-linux-amd64.tar.xz: OK

Если это падает, не продолжайте. Перескачайте.

Перенести на air-gapped хост

Какой путь одобрен на вашем сайте. USB-ключ, внутренний artefact- репозиторий, SFTP через jumpbox. Два файла путешествуют вместе; вы можете перепроверить sha256 после переноса.

bash
# On the destination host:
sha256sum -c ongrid-v0.7.159-linux-amd64.tar.xz.sha256

Установить

Так же, как установка сервера — флаги не требуются для air-gapped, installer никогда не дотягивается наружу:

bash
tar xf ongrid-v0.7.159-linux-amd64.tar.xz
cd     ongrid-v0.7.159-linux-amd64
sudo ./install.sh

install.sh делает:

  • docker load трёх bundled-образов (images/ongrid.tar, images/frontier.tar, images/ongrid-web.tar).
  • Stage'ит конфиги, настраивает host data dirs, генерирует self-signed TLS- сертификат (использует локальный openssl; внешний CA не нужен).
  • Подключает .env из template, генерирует сильные случайные секреты in-place, спрашивает ONGRID_PUBLIC_URL.
  • docker compose up -d, polls /healthz.

Вы не должны видеть никаких строк лога «downloading...».

Hosting install URL on-prem

Когда edge'и устанавливают сами себя, они curl https://<manager>/install.sh | bash. install.sh, который они fetch'ат, сервится самим manager — конкретно nginx из /opt/ongrid/edge/install.sh. В пути edge-установки нет GitHub или другой внешней зависимости.

Тот же nginx сервит:

Путь на nginxЧто
/install.shEdge install.sh скрипт.
/edge/ongrid-edge-linux-amd64Бинарь edge-агента.
/edge/ongrid-edge-linux-arm64То же, arm64.
/edge/promtail-linux-amd64Plugin-бинарь.
/edge/otelcol-contrib-linux-amd64Plugin-бинарь.
/edge/node_exporter-linux-amd64Plugin-бинарь.
/edge/process_exporter-linux-amd64Plugin-бинарь.
/edge/apply-pending-upgrade.shADR-024 ExecStartPre hook.
/edge/edge-bundle-linux-amd64-<ver>.tar.gzUpgrade-bundle.
/edge/edge-bundle-linux-amd64-<ver>.tar.gz.sha256Sidecar.

Все они приземляются в /opt/ongrid/edge/, когда install.sh запускается, и сервятся read-only nginx-контейнером. Больше ничего не требуется.

Edge-установка (air-gapped)

Стандартный однострочник работает, пока edge может дотянуться до manager:

bash
curl -k -sSL https://manager.internal/install.sh | sudo bash -s -- \
    --access-key=AK_xxxxxxxxxxxxxxxx \
    --secret-key=SK_yyyyyyyyyyyyyyyy \
    --server-edge-addr=manager.internal:40012 \
    --server-http-addr=manager.internal:443

Если у вас есть edge-хост, который не может дотянуться до manager напрямую, но может дотянуться до внутреннего artefact-зеркала, вы можете:

  1. Зеркалировать пути /install.sh, /edge/* manager'а на ваш внутренний webserver.
  2. Запустить однострочник, указывающий на URL этого зеркала.
  3. Агенту всё ещё понадобятся --server-edge-addr и --server-http-addr, указывающие на реальный manager — зеркало hosts только install-артефакты, не туннель.

Это полезно для setup'ов «edge может разговаривать с manager только по TCP 40012 + curated-набор портов», где TCP 443 к manager недоступен, но корпоративный webserver — да.

Плоскости данных всё ещё нужен HTTPS к manager

Логи и трейсы пушат напрямую от каждого edge на https://<manager>/loki/api/v1/push и https://<manager>/v1/traces. Если ваш edge не может дотянуться до manager по 443, эти плагины завалятся. Сам агент будет выглядеть здоровым (ему нужен только 40012), но плоскость данных будет молчать — убедитесь, что 443 открыт на edge → manager пути.

Air-gapped model providers

Дефолтные ONGRID_*_API_KEY= slot'ы указывают на vendor-URL (OpenAI, Anthropic, Zhipu, …). Чтобы оставаться air-gapped, сконфигурируйте Custom (OpenAI-совместимый) provider в Settings → Models, указывающий на ваш on-prem relay:

  • vLLMOPENAI_API_BASE=http://vllm.internal:8000/v1 с dummy OPENAI_API_KEY.
  • OllamaOPENAI_API_BASE=http://ollama.internal:11434/v1.
  • LocalAI / LMStudio — тот же паттерн.
  • OpenRouter (on-prem) — вставьте base URL вашего relay.

Агенту неважно; OpenAI-совместимый wire-формат универсален. Затем поставьте новый provider как Default provider, чтобы все back-end вызовы (alert investigation, translate, summarize) использовали его.

См. запись Custom (OpenAI-совместимый) под Models в сайдбаре.

Air-gapped база знаний (синхронизация vault без GitHub)

Встроенный vault синхронизируется из github.com/ongridio/vault при первом запуске. Air-gapped сайты не могут дотянуться до GitHub. Два варианта:

Option A — отгрузить vault inline

Release-tarball включает baseline-snapshot vault как часть образа. При первом запуске manager копирует его в Qdrant напрямую — сеть не нужна. Вы получите baseline (последняя полностью публичная синхронизация на момент release-tag), но не увидите новые playbook, пока не апгрейдите manager.

Option B — зеркалировать vault-репозиторий внутренне

  1. На подключённом хосте, склонируйте публичный vault:
    bash
    git clone --bare https://github.com/ongridio/vault.git
  2. Push на ваш внутренний Git-сервер:
    bash
    git push --mirror git@git.internal:ops/vault.git
  3. В Settings → Knowledge → Vault поставьте sync URL на git@git.internal:ops/vault.git и вставьте SSH deploy key. Manager использует GIT_SSH_COMMAND, чтобы привязать ключ — см. ADR-023.

Manager пере-синхронизирует vault on demand из UI (кнопка «Sync vault»). Каждый pull — это git fetch против сконфигурированного remote; GitHub-специфичного кода в пути нет.

Апгрейды, air-gapped

Так же, как начальная установка, интернет не нужен во время установки. Поток:

  1. На подключённой рабочей станции: gh release download v0.7.160 ... и верифицировать sha256.
  2. Перенести tarball.
  3. На air-gapped хосте:
    bash
    tar xf ongrid-v0.7.160-linux-amd64.tar.xz
    cd     ongrid-v0.7.160-linux-amd64
    sudo ./upgrade.sh
  4. Из UI, Edges → Upgrade all — edge'и fetch'ат новый bundle с https://<manager>/edge/edge-bundle-linux-amd64-v0.7.160.tar.gz и применяют его через стандартный flow stage-then-swap ADR-024.

Нет шага, которому нужен интернет, кроме рабочей станции, которая скачивает tarball.

См. апгрейд для жутких деталей.

Что дальше

  • Models / Custom (OpenAI-совместимый) — подключение vLLM / Ollama / on-prem relay как default provider (см. Models в сайдбаре).
  • Возможность базы знаний — что vault содержит и как добавить свои runbook.
  • On-prem платформа — более широкие заметки про on-prem / air-gapped развёртывания, включая SELinux, кастомные CA, исходящий прокси.