Air-gapped deployment - the complete guide
Requirements, license and identity model, registry mirroring, the install pipeline, data tier options, sign-in, and upgrades
Architecture
Air-gapped deployment. Everything - UI, sign-in, API, Agent Controller, the execution tier, AI Gateway, data tier, license verification - runs in your network. No xpander Cloud, no PrivateLink, no deployment-manager sync.
- Everything runs in your cluster - the web UI (Xpander Chat), local sign-in, the API, the Agent Controller, the execution tier (the
agent-workerservice), the AI Gateway, and the control plane services that Hybrid would host in xpander Cloud. - Users reach xpander over whatever path your network provides: internal DNS, VPN, or a private load balancer. See Domains, Ingress & DNS.
- The data tier is in-cluster by default - PostgreSQL, Redis (queues, cache, and knowledge-base vectors), and MongoDB - or your own Postgres/Redis. See Data tier options.
- Model calls go to your LLM endpoint: in-network vLLM, Ollama, or NVIDIA NIM, or Amazon Bedrock over a PrivateLink VPC endpoint to AWS (not xpander), or a hosted provider if your policy allows it. See Local LLM inference.
- Skill calls target the systems you connect - private Salesforce, internal GitLab, self-managed Jira, databases. Egress is your policy.
- No xpander Cloud. There is no deployment-manager sync, no PrivateLink to xpander, no agent-catalog pull. Agent configuration is authored and stored in your cluster.
What leaves the environment
Nothing is sent to xpander Cloud. All xpander data stays local:
Every connection that leaves the perimeter is optional and yours to allow, deny or point at an endpoint inside your network. With OpenCode and an open-weight model served in-network, nothing leaves.
The hosts and ports behind each row are listed in What Talks to What.
Entitlement: signed license, verified in-cluster
There is no cloud entitlement check. The license is a signed file (Ed25519), validated three times: by the installer locally, by the chart’s preflight hook, and by the in-cluster deployment manager at boot. It refuses to start on a bad signature. Renewal is a Secret update plushelm upgrade. See The License.
Sign-in is local
Authentication runs in your cluster with no external dependency: bootstrap admin password, email OTP (works without SMTP; codes print via a chart script), or SSO with your own OIDC identity provider. See Signing In.Operations stay yours
- Observability: metrics are scraped from xpander’s
/metricsendpoints by your Prometheus; logs stream fromkubectl logsinto your aggregation stack (Loki, ELK, Splunk). - Updates are explicit. Nothing auto-updates: you mirror the new release bundle into your registry, then run the upgrade. For security-critical patches, xpander publishes advisories with the patched chart version.
- Skills target your systems. Anything that would need a public service is simply not offered under the sealed posture.
Air-Gapped vs. Hybrid
Choose Air-Gapped when policy forbids outbound traffic, you operate in classified or no-egress networks, or data sovereignty rules out hosted LLM providers entirely. Tradeoff: operational weight - you run local model infrastructure and mirror releases yourself. Choose Hybrid when the goal is data residency and audit rather than zero egress: operationally lighter, the same data-plane isolation, and hosted LLMs reachable - including over PrivateLink. Decision check: can your workload tolerate calls to hosted LLM providers over a private network? If yes, Hybrid. If no, Air-Gapped.Related
Security Architecture
Permission model, credential isolation, encryption, and safety controls
Air-gapped deployment Guide
Install, mirroring, license, data tier, and upgrades
Hybrid Architecture
AWS network boundary, PrivateLink, and what leaves your VPC
Certifications & Compliance
SOC 2 Type II, GDPR, and deployment patterns by industry

