Air-Gapped / On-Prem
Ongrid liefert als ein eigenständiges Tarball aus, genau weil es offline funktioniert. Es gibt kein apt install, kein Go-Module-Fetch-zur-Build-Zeit auf dem Target-Host, kein Docker-Hub-Pull zur Laufzeit. Tarball ablegen, install.sh laufen, und Sie haben einen funktionierenden Manager + Edge-Flotte.
Die Tradeoffs, die Sie air-gapped treffen werden, sind um den LLM-Provider, das Embedding-Modell für RAG und laufende Upgrades. Diese Seite ist die Checkliste.
Schritt 1: Das Release-Tarball herunterladen
Von einem Host mit Internet, greifen Sie das neueste Release-Asset:
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.sha256Oder bauen Sie das Tarball selbst mit make package. So oder so ist das Artefakt ein einzelnes .tar.xz plus sein .sha256.
Verschieben Sie beide Dateien zum Target-Host über welchen Air-Gap-Kanal auch immer Sie verwenden (Sneakernet USB, interner Artefakt-Server, signierte S3-Bucket, etc.).
Schritt 2: Tarball-Installation
Das Tarball expandiert zu einem eigenständigen Verzeichnis:
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 modelAusführen:
tar -xf ongrid-v0.7.167-linux-amd64.tar.xz
cd ongrid-v0.7.167-linux-amd64
sudo ./install.shinstall.sh lädt jedes images/*.tar in das lokale Docker, schreibt ein vernünftiges .env, bringt den Stack mit docker compose up -d hoch und druckt die URL des neuen Managers. Der Host braucht Docker Engine + Compose v2 — siehe Linux (Server).
Siehe Air-Gapped-Installation für die vollständige Schritt-für-Schritt mit Checksummen und Erst-Boot.
Schritt 3: In eine private Registry spiegeln (optional)
Wenn Sie eine private Container-Registry haben (Harbor / Artifactory / ECR / GCR), und Sie lieber docker pull als docker load machen, pushen Sie die gebündelten Images einmal:
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"
doneDann schreiben Sie eine docker-compose.override.yml, die jeden Service auf registry.internal/... statt das Original-Image ausrichtet, und Sie können auf N Hosts deployen, ohne das Tarball neu zu shippen. Zukünftige Upgrades werden zu „neuen Image-Tag pullen, docker compose up -d".
Schritt 4: Edge-Installation in einem Air-Gapped-Netzwerk
Der curl-pipe-Installer (https://<manager>/install.sh | bash) funktioniert innerhalb eines Air-Gapped-Netzwerks gut, solange die Edges den Manager erreichen können (Port 443 für das statische Bundle + Port 40012 für den Tunnel). Der Installer lädt das Agent-Binary und die vier Plugin-Binaries von https://<manager>/edge/ herunter, was der nginx des Managers aus dem bind-gemounteten ./bin/-Verzeichnis bedient.
Wenn Ihre Edges den Manager nicht über HTTPS erreichen können — zum Beispiel sind Edges in einem Netzwerksegment, das nur Port 40012 erlaubt — kopieren Sie die Binaries von Hand:
# 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)Oder, robuster: stellen Sie einen winzigen internen HTTPS-Mirror auf, der eine Kopie von ./bin/linux-*/ hält und richten Sie einen geforkten install.sh darauf aus.
Schritt 5: LLM-Provider
Ongrid bündelt kein LLM. Der Agent-Kernel ruft einen Upstream-Provider auf — Anthropic, OpenAI, Zhipu, DeepSeek, Gemini, Kimi oder jedes OpenAI-kompatible Relay — über die ausgehende Internet-Verbindung des Managers. In einem Air-Gapped-Netzwerk haben Sie drei Optionen:
- Ausgehender Proxy. Setzen Sie
HTTPS_PROXY=http://your-proxy:3128im env-Block des Managers. Alle Provider-Aufrufe fließen durch den Proxy. - Selbstgehostetes OpenAI-kompatibles Relay. Laufen Sie vLLM / TGI / Ollama / one-api innerhalb Ihres Netzwerks, richten Sie
ONGRID_OPENAI_BASE_URLdarauf aus, setzen SieONGRID_OPENAI_API_KEYauf was auch immer das Relay erwartet. Das ist das häufigste Muster für vollständig-getrennte Installationen. - Custom-Provider in der UI. Settings → Models → Custom (OpenAI-kompatibel) gibt Ihnen die gleiche Verdrahtung ohne Restart.
Wenn Sie Zhipu (GLM) gegen einen Tencent-Cloud-gehosteten Endpunkt innerhalb Chinas verwenden wollen, setzen Sie ONGRID_ZHIPU_BASE_URL auf den regionalen Endpunkt und ONGRID_ZHIPU_API_KEY auf Ihren Key — kein Proxy nötig, GLM ist innerhalb des China-Festland-Netzwerks erreichbar.
Schritt 6: Offline-RAG (das Embedding-Modell)
Wissensbasis-Ingestion braucht ein Embedding-Modell. Standardmäßig ruft der Manager die GLM-Embedding-API (embedding-3) auf, was Internet braucht. Für eine vollständig offline Bereitstellung wechseln Sie zum Lokal-Embedding-Profil:
ONGRID_EMBEDDING_PROVIDER=local
ONGRID_EMBEDDING_LOCAL_MODEL_PATH=/var/lib/ongrid/embeddings/bge-base-en-v1.5Das Release-Tarball liefert das BAAI/bge-base-en-v1.5-Modell unter .cache/bge-base-en-v1.5/ (~400 MB) aus. Das Install-Skript kopiert es beim ersten Boot in das benannte Volume. Wenn Sie make fetch-embedding-model beim Bauen des Tarballs übersprungen haben, ist das Modell abwesend und Embedding wird fehlschlagen — laufen Sie diesen Schritt einmal und neu-packen Sie.
Der Default-Ongrid-eingebaute-Vault (github.com/ongridio/vault) ist öffentlich und enthält Baseline-Runbooks, die im eingebetteten RAG-Seed ausgeliefert werden. Sie zu synchronisieren erfordert das Erreichen von GitHub. In einem Air-Gapped-Netzwerk können Sie:
- Den Vault in Ihren eigenen internen Git-Server vendoren und
ONGRID_VAULT_REPO_URLaktualisieren. - Oder, Vault-Sync vollständig überspringen — der eingebettete Seed (etwa 96 Playbooks) lebt innerhalb des Binarys und ist immer verfügbar.
Schritt 7: Upgrades
Zwei Pfade:
- Gleicher Tarball-Mechanismus. Laden Sie das neue Tarball auf einem internet-verbundenen Host herunter, sneakernet es rüber, führen Sie
./upgrade.shaus. Das istinstall.shminus dem Bootstrap — Image-Laden +docker compose up -d. Die Edge-Agenten holen das passende Agent- + Plugin-Binary beim nächsten Reconnect (ADR-024 Whole-Bundle-Staging). - Private-Registry-Pull. Wenn Sie die Images gespiegelt haben (Schritt 3), ist
docker compose pull && docker compose up -dgenug. Edges brauchen weiterhin das neue Agent- + Plugin-Binary, das sie aus dem statischen/edge/-Pfad des Managers fetchen — das aktualisiert automatisch, wenn Sie das Tarball-geliefertebin/-Verzeichnis tauschen.
Was air-gapped NICHT funktioniert
- Built-in-Vault-Auto-Sync ohne einen Mirror — das Vault-Repo lebt auf GitHub.
- Provider's gehostete LLMs ohne einen ausgehenden Proxy oder Relay — es gibt kein ausgeliefertes lokales LLM.
- Das Default-GLM-Embedding-Profil — wechseln Sie zu
local(siehe Schritt 6). - Öffentliche Marketplace-Skill-Installs (ADR-017) — richten Sie auf eine private Registry stattdessen aus.
Alles andere, einschließlich des vollständigen Agent-Kernels, des Alarm-Evaluators, der Telemetrie-Pipeline und der Chat-UI, läuft vollständig offline.