Air-gapped deployment means the AI assistant runs with zero external network access: the language model, embeddings, vector store and file storage all run inside your perimeter, and nothing is sent to any cloud service. DocsGPT supports this posture fully. A large Central European bank runs it this way on its existing NVIDIA T4 GPUs.
zero egress · local llm · local embeddings · local vector store · internal idp · telemetry off
Last updated:
Deployment posturesoperator · data boundary · LLM
Cloud
operatorArc53
data boundaryArc53 multi-tenant cloudEU region
network boundary
llm locationCloud provider
Managed
operatorArc53
data boundaryDedicated VPSyour region
network boundary
llm locationCloud provider or local engineor your own key (BYOM)
On-premises
operatorCustomer
data boundaryYour network
egress optional (hybrid)
llm locationLocal engineor your cloud LLM (hybrid)
Air-gapped
operatorCustomer
data boundaryYour networkno egress
no external network
llm locationLocal engine only
Text version
Cloud: Arc53 operates a multi-tenant service and the LLM runs at a cloud provider. Managed: Arc53 operates a dedicated instance in your chosen region; the LLM runs at a cloud provider, on a local engine on the instance, or with your own key (BYOM). On-premises: you operate DocsGPT inside your network; the LLM runs locally, or (hybrid) prompts cross the boundary to a cloud provider you choose. Air-gapped: zero external network; LLM, embeddings, vector store and storage all run inside your perimeter.
What is air-gapped deployment?
Zero external network: LLM, embeddings, vector store and object storage all run inside the customer's perimeter.
Air-gapped
Zero external network
Zero external network: LLM, embeddings, vector store and object storage all run inside the customer's perimeter. Nothing crosses the perimeter, in either direction.
local llm · local embeddings · local vector store · local storage · internal idp
DocsGPT runs inside your network but calls a cloud LLM provider you choose: prompts and retrieved passages leave to the provider. That is a hybrid on-premises deployment.
A self-hosted install configured with an OpenAI, Anthropic or other cloud key sends prompts to that provider. Local platform, cloud model — not air-gapped.
→ /deploy/self-hosted
The zero-external-network stack
Every component runs inside the perimeter and makes no outbound call. Only telemetry can ever export — to collectors you run inside, and only if you switch it on.
In an air-gapped DocsGPT deployment every component runs inside the customer's perimeter and makes no outbound call: the LLM on a local inference engine, local embeddings on FastEmbed with ONNX Runtime, a self-hosted vector store, local disk (or, on Kubernetes, an in-network S3-compatible store or a shared volume) for files, PostgreSQL, Redis and an internal OIDC identity provider. Telemetry is the one component that can ever export, and only to collectors inside the perimeter, when it is switched on; it is off by default.
Components of an air-gapped DocsGPT deployment and their outbound traffic
Local disk on Docker; on Kubernetes an in-network S3-compatible store (MinIO, Ceph) or a shared volume
None
User data
PostgreSQL
None
Queue and cache
Redis
None
Identity
Internal OIDC IdP (Authentik or Keycloak)
None
Telemetry
OpenTelemetry
Off by default; if enabled, exports only to internal collectors
The free DocsGPT public API mode (a hosted endpoint) is not configured in this posture; inference is served only by the local engine above.
Choosing and benchmarking a model for constrained hardware
The model is selected by running your benchmark suite against the candidates on the hardware you have.
docsgpt-cli bench runs a suite of assertions and LLM-as-judge rubrics with latency and token limits, compares candidates A/B and emits JUnit output for CI. In a bank proof of concept Qwen 3.6 was chosen from five-plus open-source candidates on custom benchmarks; in production the bank's pipeline is sized to legacy NVIDIA T4 GPUs.
PASS 01-refund-window answer.contains · sources ≥ 1 · 1.9 s
PASS 02-vat-rate-2026 json.rate · sources ≥ 1 · 2.4 s
PASS 03-escalation-tool tools.called create_ticket · 3.1 s
FAIL 04-contract-notice judge 0.42 < 0.70 — misstates the notice period
PASS … 8 more
11 passed · 1 failed · avg 2.6 s · vs baseline: 1 regression
junit → reports/bench.xml · exit 1
$
Approval gates and Activity export
Guardrails
Guardrails with a company-wide floor
PII, secrets, banned-term and prompt-injection checks flag, redact or block under a floor no agent can weaken; every decision shows in Guardrail activity.
Install, lock down and update without internet access
Five steps, and the same route for every update afterwards.
01
Bring the software in
Release images carry the default embedding models, so a container downloads nothing on first use: pull them on a connected machine, docker save them to one archive and docker load it inside, or push it to your internal registry. On Kubernetes, mirror the images the manifests list and point the kustomization at your registry. For pip, carry a wheelhouse and run docsgpt prefetch-models.
docker save · docker load · internal registry · prefetch-models
02
Point DocsGPT at your own LLM
Any local engine that serves an OpenAI-compatible API, such as vLLM, Ollama or llama.cpp; the free DocsGPT public API is never configured.
LLM_PROVIDER=openai · OPENAI_BASE_URL
03
Switch off what would call out
One set of settings turns off every feature that would reach the internet, and HF_HUB_OFFLINE=1 makes model loading read the local cache only.
HF_HUB_OFFLINE=1 · telemetry off
04
Block outbound traffic in the network
On Docker, start the stack with docker-compose.airgap.yaml on an internal network with no route out. On Kubernetes, a NetworkPolicy denies egress for the namespace except to its own pods and cluster DNS.
docker-compose.airgap.yaml · NetworkPolicy
05
Verify
docsgpt verify-offline confirms that tokenizers, embeddings and the defaults load with networking off.
docsgpt verify-offline
Updates take the same route: pull the new release on a connected machine, carry it in, start the stack on the new tag and run docsgpt verify-offline again. The air-gapped deployment guide lists every setting and the full Kubernetes image list. The supply-chain programme behind every release:
A large Central European commercial bank processes 10,000+ inbound documents a day; time-to-action fell from 24 hours to 16 minutes, with over 99.5 % classification accuracy, running fully air-gapped on the bank's existing NVIDIA T4 GPUs.
Source: EU bank, name under NDA
1–2 days → ~5 min
Transfer-document review that took 1–2 working days (P95) now completes in about 5 minutes, with 12 deterministic and agent checks and human approval for uncertain cases.
Source: Bank (POC), name under NDA
Government infrastructure, local inference
UK Department for Work and Pensions: an internal knowledge assistant on government infrastructure, with local inference.
The practical test is whether any component has a route out. If the model is called through a cloud provider's API, even under your own key, prompts and retrieved passages leave the network and the deployment is hybrid on-premises. Air-gapped means that route does not exist: inference, embeddings, retrieval, storage and sign-in all resolve to hosts inside your perimeter, so there is nothing to allow-list and nothing to audit for egress.
Can an LLM run completely offline?
Yes. Open-weight models run on local inference engines such as Ollama, vLLM or llama.cpp; DocsGPT connects to them as it would to a cloud provider, with no outbound traffic.
How are updates applied in an air-gapped environment?
The same way the software came in. On a connected machine, pull the release images and save them to one archive with docker save; carry the archive across and docker load it, or push it to your internal registry, then start the stack on the new tag and run docsgpt verify-offline. For pip installs, carry a wheelhouse and the models from docsgpt prefetch-models. Model weights move the same way, following the inference engine's own documentation. The procedure is written up in the air-gapped deployment guide.
What hardware does an air-gapped deployment need?
It depends on model size and document volume. The bank reference runs on existing NVIDIA T4 GPUs; see the hardware guide for sizing by model class.
Talk to the engineer who ran the bank deployment
A 30-minute demo with an engineer, or a free 30-minute on-premises review of your hardware and identity setup.