Modo Offline Total: OpenClaw Sem Internet Nenhuma

Configure OpenClaw em ambientes sem internet. Baixe modelos antecipadamente, transfira via USB, rode 100% air-gapped. Para segurança máxima e compliance.

⏱️ 30 minutos · 🎯 Avançado · 🔒 Air-Gapped · ✈️ Sem Internet

Para quando “100% local” não basta — você precisa de zero conexão com internet. Nenhuma porta aberta, nenhum DNS, nenhum pacote baixado na máquina de produção.

Este guia mostra como preparar tudo em uma máquina conectada e transferir para uma máquina offline (air-gapped).

TL;DR — 3 Fases
  1. Máquina COM internet: Baixe Ollama, modelo, Node.js e OpenClaw
  2. Transfira via USB, SD card ou rede interna
  3. Máquina SEM internet: Instale tudo a partir dos arquivos locais

Quando Usar
  • Compliance — LGPD, GDPR, HIPAA exigem que dados não saiam da rede
  • Dados sensíveis — Código proprietário, documentos confidenciais, dados médicos
  • Ambientes restritos — Governo, militar, infraestrutura crítica
  • Trabalho em campo — Locais sem internet (embarcações, áreas rurais, eventos)
  • Segurança máxima — Zero superfície de ataque via rede

Dica: Se você tem internet mas quer privacidade, o Setup Simples é mais fácil. Este guia é para ambientes realmente sem internet.


Arquitetura
FASE 1                    FASE 2              FASE 3
┌──────────────────┐      ┌──────┐      ┌──────────────────┐
│ MÁQUINA ONLINE   │      │      │      │ MÁQUINA OFFLINE  │
│                  │      │ USB  │      │                  │
│ Baixar:          │ ───► │  ou  │ ───► │ Instalar:        │
│ - Ollama binary  │      │ SD   │      │ - Ollama binary  │
│ - Modelo (3-9GB) │      │ Card │      │ - Modelo IA      │
│ - Node.js tar    │      │      │      │ - Node.js        │
│ - OpenClaw .tgz  │      └──────┘      │ - OpenClaw       │
└──────────────────┘                     │                  │
                                         │ Resultado:       │
                                         │ IA funcionando   │
                                         │ sem internet     │
                                         └──────────────────┘

Fase 1: Na Máquina COM Internet

Vamos baixar tudo que precisamos. Use uma máquina com internet e o mesmo sistema operacional da máquina de destino (mesma arquitetura: x86_64 ou ARM64).

1.1 Criar pasta de transferência
mkdir -p ~/openclaw-offline && cd ~/openclaw-offline
1.2 Baixar Ollama
# Linux x86_64
curl -L https://ollama.com/download/ollama-linux-amd64 -o ollama

# Linux ARM64 (Raspberry Pi, etc)
curl -L https://ollama.com/download/ollama-linux-arm64 -o ollama

# macOS — baixe o .dmg do site
# https://ollama.com/download/mac

chmod +x ollama
1.3 Baixar modelo de IA
# Instale Ollama temporariamente para baixar o modelo
./ollama serve &
sleep 5

# Baixar modelo (escolha um)
./ollama pull llama3.2:3b      # 2GB — leve
# ./ollama pull llama3.1:8b    # 4.7GB — equilibrado
# ./ollama pull qwen2.5:7b     # 4.4GB — bom em português

# Parar o Ollama
pkill ollama

# Copiar os arquivos do modelo
cp -r ~/.ollama/models ./ollama-models/
1.4 Baixar Node.js
# Linux x86_64
curl -O https://nodejs.org/dist/v24.0.0/node-v24.0.0-linux-x64.tar.xz

# Linux ARM64
curl -O https://nodejs.org/dist/v24.0.0/node-v24.0.0-linux-arm64.tar.xz

# macOS ARM64 (M1/M2/M3)
curl -O https://nodejs.org/dist/v24.0.0/node-v24.0.0-darwin-arm64.tar.gz

Nota: Verifique a versão mais recente em nodejs.org/download

1.5 Baixar OpenClaw
# Empacotar OpenClaw para instalação offline
npm pack openclaw
# Isso cria: openclaw-x.x.x.tgz
1.6 Verificar pacote completo
ls -lh ~/openclaw-offline/
# Deve ter:
# ollama               (~100MB)
# ollama-models/       (2-9GB dependendo do modelo)
# node-v24.x.x-*.tar   (~30MB)
# openclaw-x.x.x.tgz   (~5MB)

Fase 2: Transferir

Copie a pasta inteira ~/openclaw-offline/ para a mídia de transferência:

# Para USB (ajuste /dev/sdX e ponto de montagem)
cp -r ~/openclaw-offline/ /media/usb/

# Para um pendrive já montado
cp -r ~/openclaw-offline/ /mnt/pendrive/

Tamanho total: 2-10GB dependendo do modelo escolhido.

Segurança: Se estiver transferindo para ambiente classificado, considere criptografar o USB com LUKS:

# Na máquina online
sudo cryptsetup luksFormat /dev/sdX1
sudo cryptsetup open /dev/sdX1 usb_crypt
sudo mkfs.ext4 /dev/mapper/usb_crypt
sudo mount /dev/mapper/usb_crypt /mnt/usb
cp -r ~/openclaw-offline/ /mnt/usb/

Fase 3: Na Máquina SEM Internet

Conecte o USB e monte:

# Montar USB
sudo mount /dev/sdX1 /mnt/usb
cd /mnt/usb/openclaw-offline/
3.1 Instalar Node.js
# Extrair Node.js para /usr/local
sudo tar xf node-v24.0.0-linux-x64.tar.xz -C /usr/local --strip-components=1

# Verificar
node --version   # v24.x.x
npm --version    # 10.x.x
3.2 Instalar Ollama
# Copiar binário
sudo cp ollama /usr/local/bin/ollama
sudo chmod +x /usr/local/bin/ollama

# Criar usuário do serviço
sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama

# Copiar modelos
sudo mkdir -p /usr/share/ollama/.ollama/
sudo cp -r ollama-models/ /usr/share/ollama/.ollama/models/
sudo chown -R ollama:ollama /usr/share/ollama/.ollama/

# Criar serviço systemd
sudo tee /etc/systemd/system/ollama.service > /dev/null << 'EOF'
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
User=ollama
Group=ollama
ExecStart=/usr/local/bin/ollama serve
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0"
Environment="HOME=/usr/share/ollama"

[Install]
WantedBy=default.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama
3.3 Verificar Ollama
ollama list
# Deve listar o modelo copiado (llama3.2:3b)

ollama run llama3.2:3b "Olá! Estou offline?"
# Deve responder normalmente
3.4 Instalar OpenClaw
# Instalar a partir do pacote local
sudo npm install -g ./openclaw-*.tgz

# Verificar
openclaw --version
3.5 Configurar
openclaw onboard --install-daemon
# Escolha: Ollama como provider
# Modelo: llama3.2:3b
# Canal: o que preferir

Ou configure manualmente:

# ~/clawd/config.yaml
agents:
  defaults:
    model:
      primary: "ollama/llama3.2:3b"

ollama:
  baseUrl: "http://localhost:11434"
  timeout: 120
3.6 Verificar
openclaw gateway status
# Deve mostrar: running

Envie uma mensagem de teste. Se respondeu — funciona 100% sem internet.

🎉 Air-Gapped e Funcionando!

Seu assistente IA roda sem nenhuma conexão com internet. Nenhum dado pode sair.


Desmontar USB e Bloquear

Depois de instalar tudo, remova o USB e (opcionalmente) bloqueie portas USB:

# Desmontar
sudo umount /mnt/usb

# Opcional: Desabilitar USB (segurança extrema)
# echo 'blacklist usb-storage' | sudo tee /etc/modprobe.d/block-usb.conf
# sudo update-initramfs -u

Atualizações em Ambiente Offline

Para atualizar, repita o processo:

  1. Na máquina online: npm pack openclaw + ollama pull modelo-novo
  2. Transfira via USB
  3. Na máquina offline: sudo npm install -g ./openclaw-*.tgz

Frequência recomendada: Uma vez por mês para patches de segurança.


Segurança AdicionalFirewall
# Bloquear TODO tráfego externo (só permitir loopback)
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT DROP
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4
Logs de auditoria
# Habilitar auditoria de acesso ao OpenClaw
sudo auditctl -w /home/$USER/clawd/ -p rwxa -k openclaw_access
Criptografia de disco

Para máxima segurança, use criptografia full-disk (LUKS) na máquina offline. Se alguém roubar o hardware, os dados ficam protegidos.


Para Empresas: Compliance
RegulaçãoComo o Air-Gap Atende
LGPDDados pessoais nunca saem do servidor controlado
GDPRSem transferência internacional de dados
HIPAAInformações de saúde permanecem on-premise
SOC 2Perímetro de segurança claramente definido

Dica: Documente o processo de air-gap como parte do seu relatório de compliance. O fato de que nenhum dado pode sair da rede é um diferencial forte.


Troubleshooting
Ollama não encontra o modelo copiado

Verifique a estrutura de pastas:

ls -la /usr/share/ollama/.ollama/models/
# Deve ter: blobs/ e manifests/

Se a estrutura está diferente, copie novamente:

sudo rm -rf /usr/share/ollama/.ollama/models/
sudo cp -r /mnt/usb/openclaw-offline/ollama-models/ /usr/share/ollama/.ollama/models/
sudo chown -R ollama:ollama /usr/share/ollama/.ollama/
sudo systemctl restart ollama
npm install falha offline (dependências)

O npm pack empacota o OpenClaw mas pode precisar de dependências nativas. Na máquina online, faça:

# Instalar todas as dependências offline
npm install --global-style openclaw@latest
cd $(npm root -g)/openclaw
npm pack

Isso garante que todas as dependências estão incluídas.

Arquitetura incompatível

Se a máquina online é x86_64 mas a offline é ARM64 (ou vice-versa), baixe os binários para a arquitetura correta:

# Verificar arquitetura da máquina de destino
uname -m
# x86_64 = amd64, aarch64 = arm64

Próximos Passos