Skip to content
PrivateAI
← Back to Home
Local AI

Air-Gapped AI Workstation Setup Guide: Run LLMs With Zero Network Exposure

12 min readBy PrivateAI Team

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:

  1. Save AI outputs to a designated air-gap-outbox folder on the machine
  2. Copy to USB drive
  3. Transfer physically to connected workstation
  4. 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