Air-Gapped Deployment
What you'll accomplish: Deploy Hoziron in environments without internet access using local models (Ollama or vLLM) and offline package transfer.
Overview
Air-gapped deployments use local inference servers instead of cloud LLM providers. Packages are transferred via archive files rather than registry downloads.
Local models with Ollama
[default_model]
provider = "ollama"
model_id = "llama3.1:70b"
[providers.ollama]
base_url = "http://ollama.internal:11434"
enabled = true
# Disable cloud providers
[providers.anthropic]
enabled = false
[providers.openai]
enabled = false
Start Ollama with OLLAMA_HOST=0.0.0.0 ollama serve if Hoziron connects from a different host or container.
Local models with vLLM
[default_model]
provider = "openai"
model_id = "meta-llama/Llama-3.1-70B-Instruct"
[providers.openai]
base_url = "http://vllm.internal:8000/v1"
api_key_env = "VLLM_API_KEY" # vLLM accepts any non-empty key
enabled = true
vLLM exposes an OpenAI-compatible API, so Hoziron treats it as an OpenAI provider with a custom base URL.
Docker networking for local models
When running both Hoziron and the inference server in containers:
services:
hoziron:
image: ghcr.io/hozironos/hoziron:latest
depends_on:
- ollama
# ...
ollama:
image: ollama/ollama:latest
ports:
- "11434:11434"
In config.toml, reference the service name:
[providers.ollama]
base_url = "http://ollama:11434"
enabled = true
Offline package transfer
Transfer packages without network access:
# On connected machine: export a package
hoziron catalog export claims-intake --output claims-intake.tar
# Transfer the .tar file to air-gapped environment
# (USB drive, SCP over internal network, etc.)
# On air-gapped machine: import
hoziron catalog import ./claims-intake.tar
The import verifies the content hash locally — no network required.
Offline collection transfer
For larger deployments, export entire collections:
# Export all packages in a collection
hoziron collection export insurance-starter --output insurance-starter.tar
# Import on air-gapped machine
hoziron catalog import ./insurance-starter.tar
Checklist
- Local inference server running and accessible
- Cloud providers disabled in config
- All required packages transferred and imported
- Health check passes:
hoziron health - Test an agent with a local model:
hoziron chat
Next steps
- Configuring local models in detail
- Complexity routing with local models
- Security hardening for isolated environments
Related: