Skip to content

エアギャップ / オンプレ

Ongrid はオフラインで動くようにまさに 1 つの自己完結タールボールとして出荷されます。apt install も、ターゲットホスト上のビルド時 Go モジュール fetch も、ランタイムでの Docker Hub プルもありません。タールボールを落として install.sh を実行すれば、動く manager + edge フリートが手に入ります。

エアギャップで遭遇するトレードオフは、LLM プロバイダー、RAG 用埋め込みモデル、継続的なアップグレードを巡るものです。このページがそのチェックリストです。

ステップ 1:リリースタールボールのダウンロード

インターネットがあるホストから最新リリース asset を取得:

sh
gh release download v0.7.167 --repo ongridio/ongrid \
    --pattern 'ongrid-*-linux-amd64.tar.xz'
gh release download v0.7.167 --repo ongridio/ongrid \
    --pattern 'ongrid-*-linux-amd64.tar.xz.sha256'
sha256sum -c ongrid-v0.7.167-linux-amd64.tar.xz.sha256

または make package で自分でタールボールをビルド。いずれにせよアーティファクトは単一の .tar.xz + その .sha256 です。

エアギャップチャネル(USB スニーカーネット、内部アーティファクトサーバー、署名済み S3 バケットなど)でターゲットホストに両方のファイルを移動してください。

ステップ 2:タールボールインストール

タールボールは自己完結ディレクトリに展開されます:

text
ongrid-v0.7.167-linux-amd64/
  install.sh
  upgrade.sh
  docker-compose.yml
  images/
    ongrid.tar              # docker image, saved
    ongrid-web.tar
    frontier.tar
    mysql.tar               # bundled so no Docker Hub pull
    prometheus.tar
    loki.tar
    tempo.tar
    grafana.tar
    searxng.tar
  bin/
    linux-amd64/ongrid-edge
    linux-arm64/ongrid-edge
    darwin-amd64/ongrid-edge
    darwin-arm64/ongrid-edge
    linux-amd64/promtail
    linux-arm64/promtail
    linux-amd64/otelcol-contrib
    linux-arm64/otelcol-contrib
    linux-amd64/node_exporter
    linux-arm64/node_exporter
    linux-amd64/process_exporter
    linux-arm64/process_exporter
  edge/
    apply-pending-upgrade.sh
  .cache/
    bge-base-en-v1.5/       # optional offline RAG embedding model

実行:

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

install.sh は各 images/*.tar をローカル docker にロードし、賢明な .env を書き、docker compose up -d でスタックを上げ、新 manager の URL を表示します。ホストには Docker Engine + Compose v2 が必要 —— Linux(サーバー) を参照。

チェックサムと初回起動を含む完全な手順は エアギャップインストール を参照。

ステップ 3:プライベートレジストリへのミラー(オプション)

プライベートコンテナレジストリ(Harbor / Artifactory / ECR / GCR)があり、docker load より docker pull のほうがよければ、バンドルされたイメージを一度プッシュ:

sh
for img in images/*.tar; do
  name=$(docker load -i "$img" | awk -F': ' '/Loaded image/ {print $2}')
  registry_tag="registry.internal/${name}"
  docker tag "$name" "$registry_tag"
  docker push "$registry_tag"
done

そして各サービスを元イメージではなく registry.internal/... に向ける docker-compose.override.yml を書けば、タールボールを再出荷せずに N ホストにデプロイできます。将来のアップグレードは「新イメージタグを pull、docker compose up -d」になります。

ステップ 4:エアギャップネットワーク内の edge インストール

curl-pipe インストーラ(https://<manager>/install.sh | bash)は、edge が manager に届く限り(静的バンドル用ポート 443 + トンネル用ポート 40012)エアギャップネットワーク内でちゃんと動きます。インストーラはエージェントバイナリと 4 つのプラグインバイナリを https://<manager>/edge/ からダウンロードします。manager の nginx がバインドマウントされた ./bin/ ディレクトリから提供します。

edge が HTTPS で manager に届かないなら —— たとえば edge がポート 40012 のみ許可するネットワークセグメントにある場合 —— 手でバイナリをコピー:

sh
# on each edge host
sudo install -m 0755 ongrid-edge /usr/local/bin/ongrid-edge
sudo mkdir -p /usr/local/lib/ongrid-edge
sudo install -m 0755 promtail otelcol-contrib node_exporter process_exporter \
    /usr/local/lib/ongrid-edge/
# then write /etc/ongrid-edge/ongrid-edge.env and the systemd unit
# (see deploy/install/edge/install.sh for the exact unit content)

または、より堅牢には:./bin/linux-*/ のコピーを持つ小さな内部 HTTPS ミラーを立て、フォークした install.sh をそれに向けてください。

ステップ 5:LLM プロバイダー

Ongrid は LLM をバンドルしません。エージェントカーネルは上流プロバイダー —— Anthropic、OpenAI、Zhipu、DeepSeek、Gemini、Kimi、または任意の OpenAI 互換リレー —— を manager のアウトバウンドインターネット接続経由で呼びます。エアギャップネットワークでは 3 つの選択肢があります:

  1. アウトバウンドプロキシ。 manager の env ブロックで HTTPS_PROXY=http://your-proxy:3128 を設定。すべてのプロバイダー呼び出しがプロキシを通る。
  2. セルフホスト OpenAI 互換リレー。 vLLM / TGI / Ollama / one-api をネットワーク内で走らせ、ONGRID_OPENAI_BASE_URL をそれに向け、ONGRID_OPENAI_API_KEY をリレーが期待するものに設定。完全切断インストールで最も一般的なパターン。
  3. UI 内のカスタムプロバイダー。 Settings → Models → Custom (OpenAI 互換) で再起動なしで同じ配線。

中国内の Tencent Cloud ホスト型エンドポイントに対して Zhipu (GLM) を使いたければ、ONGRID_ZHIPU_BASE_URL をリージョナルエンドポイントに、ONGRID_ZHIPU_API_KEY をキーに設定 —— プロキシ不要、GLM は中国本土ネットワーク内で到達可能。

ステップ 6:オフライン RAG(埋め込みモデル)

ナレッジベース取り込みには埋め込みモデルが必要です。デフォルトで manager はインターネットを必要とする GLM 埋め込み API(embedding-3)を呼びます。完全オフラインデプロイメントには ローカル埋め込み プロファイルに切り替え:

sh
ONGRID_EMBEDDING_PROVIDER=local
ONGRID_EMBEDDING_LOCAL_MODEL_PATH=/var/lib/ongrid/embeddings/bge-base-en-v1.5

リリースタールボールは .cache/bge-base-en-v1.5/ 下に BAAI/bge-base-en-v1.5 モデル(〜400 MB)を出荷します。インストールスクリプトが初回起動で named ボリュームにコピーします。タールボールビルド時に make fetch-embedding-model をスキップするとモデルは欠落して埋め込みは失敗します —— そのステップを 1 回走らせて再パッケージしてください。

デフォルトの Ongrid 組み込み vault(github.com/ongridio/vault)は 公開 で、埋め込み RAG seed に出荷されるベースライン runbook を含みます。同期には GitHub に届く必要があります。エアギャップネットワークでは:

  • vault を自前の内部 Git サーバーにベンダリングして ONGRID_VAULT_REPO_URL を更新。
  • または、vault 同期を完全スキップ —— 埋め込み seed(およそ 96 プレイブック)はバイナリ内に住み、常に利用可能です。

ステップ 7:アップグレード

2 つのパス:

  1. 同じタールボールメカニズム。 インターネット接続ホストで新タールボールをダウンロード、スニーカーネットで送り、./upgrade.sh を実行。これはブートストラップを除いた install.sh です —— イメージロード + docker compose up -d。edge エージェントは次に再接続するときに、マッチするエージェント + プラグインバイナリを拾います(ADR-024 全バンドルステージング)。
  2. プライベートレジストリプル。 イメージをミラーしたなら(ステップ 3)、docker compose pull && docker compose up -d で十分。edge は依然新しいエージェント + プラグインバイナリが必要で、manager の /edge/ 静的パスから fetch します —— タールボール出荷の bin/ ディレクトリを入れ替えたとき自動更新されます。

エアギャップで動かないもの

  • 組み込み vault 自動同期 —— ミラーなし。vault リポは GitHub にある。
  • プロバイダーホスト型 LLM —— アウトバウンドプロキシまたはリレーなし。出荷されるローカル LLM はない。
  • デフォルトの GLM 埋め込みプロファイル —— local に切り替え(ステップ 6 参照)。
  • 公開マーケットプレーススキルインストール(ADR-017) —— プライベートレジストリに向ける。

完全エージェントカーネル、アラート evaluator、テレメトリパイプライン、チャット UI を含むそれ以外すべては完全オフラインで動きます。