Air-Gapped AI Workstation Setup Guide: Run LLMs With Zero Network Exposure
Bottom line up front: An air-gapped AI workstation runs a full LLM stack on hardware with no active network connection — no Wi-Fi, no Ethernet, no Bluetooth data channel. Your prompts and outputs never touch a network. Setup takes 90 minutes the first time. Here's the exact process.
Most "private AI" setups stop at local models with network access disabled in the app. That's better than cloud AI, but it still leaves your machine connected. An OS-level network connection means firmware telemetry, background processes, accidental app calls, and attack surface. For work that genuinely can't leave a machine — classified research, active litigation materials, unreleased source code, journalist source communications — a true network break is the only defensible posture.
This guide covers the full setup: hardware selection, model downloads, OS hardening, a secure file transfer protocol for getting documents in and out, and a day-to-day workflow that doesn't create friction.
Who Actually Needs This (Be Honest With Yourself)
An air-gapped setup is significant operational overhead. Before investing the time, verify your threat model actually warrants it.
You need air-gapping if:
- You handle classified or export-controlled information (ITAR, CUI, EAR)
- You're a lawyer running AI analysis on privileged client communications
- You're a security researcher reverse-engineering malware and can't risk beaconing
- You're a journalist protecting source identity on a story with nation-state-level adversaries
- You develop software under an NDA where even query patterns would reveal product direction
Standard local LLM (Ollama + network disabled) is sufficient if:
- You want to keep data off cloud servers but have no active adversary
- You're handling sensitive-but-not-classified business data
- You work at a startup where client NDAs are the primary concern
If you're in the second category, the OpenWebUI setup guide is the right starting point. Come back here when your threat model escalates.
Hardware Requirements
The air-gapped machine doesn't need to be powerful — it needs to be adequate and physically controllable.
Minimum viable:
- Any x86 laptop or desktop with 16GB RAM
- 100GB+ free storage (models are 4-8GB each; you'll want several)
- CPU with AVX2 support (2013 or newer — nearly everything qualifies)
Recommended:
- Apple Silicon Mac (M2/M3/M4) — Metal GPU acceleration for Ollama is exceptional, 32GB unified memory handles 70B models, and macOS has mature network control tools
- Or any NVIDIA GPU machine with 8GB+ VRAM for CUDA acceleration on Linux
What to avoid:
- Machines with cellular modems (some laptops have embedded LTE)
- Hardware with proprietary firmware that phones home during POST (some enterprise Dell/HP models have this)
- Shared machines where other users might reenable networking
For most setups, a refurbished M2 MacBook Air ($700-900) or a used ThinkPad with 32GB RAM ($400-500) is the right call. You don't need last year's hardware; you need hardware you control.
Phase 1: Download Everything While Connected
Do all your network operations on the designated machine before you pull the network plug. After this phase, the machine never connects again.
Pull Ollama and Your Models
Install Ollama normally while still connected:
```bash
macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh
Verify
ollama --version
```
Pull every model you'll want. You won't be able to add more later without reconnecting:
```bash
General purpose — 8GB RAM minimum
ollama pull llama3.2:3b # Fast, fits anywhere
ollama pull llama3.2:latest # 3B default, good balance
Strong reasoning — 16GB RAM
ollama pull llama3.1:8b # Best 8B class
Code tasks — 8GB RAM
ollama pull qwen2.5-coder:7b
Long context — 16GB+ RAM
ollama pull mistral:7b-instruct
Embeddings (for local document search)
ollama pull nomic-embed-text
```
Models download to ~/.ollama/models. Record the exact sizes — you'll need this for your transfer manifest if you're migrating models to the air-gapped machine from a different computer.
Download OpenWebUI (Optional but Recommended)
The raw ollama run terminal works, but for document analysis, multi-turn conversations, and team use on a LAN, OpenWebUI is worth it. Download the Docker image while connected:
```bash
docker pull ghcr.io/open-webui/open-webui:v0.5.20
docker save ghcr.io/open-webui/open-webui:v0.5.20 -o openwebui-v0520.tar
```
Save this .tar to a USB drive that you'll physically transfer to the air-gapped machine.
Prepare Your Document Transfer Protocol
You'll need a repeatable process for getting documents into the air-gapped machine after you cut the network. Physical media is the only option — USB drives. The security concern is USB-based attack vectors (BadUSB, malicious firmware), so keep a dedicated set of USB drives used only for this machine.
Before transferring any sensitive documents, encrypt them on your connected machine first. Tresorit is the right tool for this step — it gives you end-to-end encrypted containers you can prepare on your internet-connected workstation, then physically move to the air-gapped machine. Even if the USB drive is intercepted or the air-gapped machine is later seized, the files are encrypted at rest with keys only you hold.
Affiliate Disclosure: This article may contain affiliate links. If you make a purchase through these links, we may earn a small commission at no extra cost to you. We only recommend products we genuinely believe in. This helps support our work and allows us to continue providing free content.
Sending outputs out:
- Save AI outputs to a designated
air-gap-outboxfolder on the machine - Copy to USB drive
- Transfer physically to connected workstation
- Move to Tresorit for encrypted cloud backup or delivery
Document analysis workflow:
```bash
Upload document to OpenWebUI via the file icon in chat
Or from terminal using Ollama directly:
cat sensitive-contract.txt | ollama run llama3.1:8b \
"Extract all indemnification clauses and summarize the liability cap"
```
For batch processing, a simple shell loop works:
```bash
for f in ~/air-gap-inbox/*.txt; do
echo "=== Processing: $f ===" >> outputs/batch-summary.txt
cat "$f" | ollama run llama3.1:8b \
"Summarize the key obligations and any unusual terms" \
>> outputs/batch-summary.txt
echo "" >> outputs/batch-summary.txt
done
```
Comparing the Options: When Is Each Right?
| Setup | Privacy Level | Friction | Cost | Best For |
|---|---|---|---|---|
| Cloud AI (ChatGPT, Claude) | Low — server processed | None | $20-200/mo | Non-sensitive work |
| Local LLM, network enabled | Medium — app-level | Low | Hardware only | Most privacy-conscious users |
| Local LLM, network disabled | High — OS-level | Low | Hardware only | Business and NDA work |
| Air-gapped workstation | Maximum — physical | High | Hardware + process | Classified, legal privilege, source protection |
For most privacy-conscious tech workers, a standard Ollama setup with network access disabled is the right call. If you want web-connected research without sending your queries to Google or OpenAI, Perplexity Pro offers relatively transparent data practices and a session-level no-history mode — useful for the connected machine in your workflow where you're doing background research that doesn't touch the sensitive material.
Affiliate Disclosure: This article may contain affiliate links. If you make a purchase through these links, we may earn a small commission at no extra cost to you. We only recommend products we genuinely believe in. This helps support our work and allows us to continue providing free content.
Last updated: 2026-05-23