OpenClaw en Raspberry Pi

Objetivo

Ejecutar un Gateway persistente y siempre activo de OpenClaw en una Raspberry Pi por ~$35-80 de costo único (sin cuotas mensuales).

Perfecto para:

  • Asistente de IA personal 24/7
  • Hub de automatización del hogar
  • Bot de Telegram/WhatsApp siempre disponible y de bajo consumo

Requisitos de hardware

Modelo PiRAM¿Funciona?Notas
Pi 54GB/8GB✅ MejorEl más rápido, recomendado
Pi 44GB✅ BienPunto ideal para la mayoría
Pi 42GB✅ OKFunciona, añade swap
Pi 41GB⚠️ JustoPosible con swap, config mínima
Pi 3B+1GB⚠️ LentoFunciona pero es lento
Pi Zero 2 W512MBNo recomendado

Especificaciones mínimas: 1GB RAM, 1 core, 500MB disco Recomendado: 2GB+ RAM, SO 64-bit, tarjeta SD de 16GB+ (o SSD USB)

Lo que necesitarás

  • Raspberry Pi 4 o 5 (2GB+ recomendado)
  • Tarjeta MicroSD (16GB+) o SSD USB (mejor rendimiento)
  • Fuente de alimentación (se recomienda la oficial de Pi)
  • Conexión de red (Ethernet o WiFi)
  • ~30 minutos

1) Flashear el sistema operativo

Usa Raspberry Pi OS Lite (64-bit) — no se necesita escritorio para un servidor headless.

  1. Descarga Raspberry Pi Imager
  2. Elige SO: Raspberry Pi OS Lite (64-bit)
  3. Haz clic en el icono de engranaje (⚙️) para preconfigurar:
    • Establece hostname: gateway-host
    • Habilita SSH
    • Establece usuario/contraseña
    • Configura WiFi (si no usas Ethernet)
  4. Flashea en tu tarjeta SD / unidad USB
  5. Inserta y arranca la Pi

2) Conectar vía SSH

ssh user@gateway-host
# o usa la dirección IP
ssh [email protected]

3) Configuración del sistema

# Actualizar el sistema
sudo apt update && sudo apt upgrade -y

# Instalar paquetes esenciales
sudo apt install -y git curl build-essential

# Establecer zona horaria (importante para cron/recordatorios)
sudo timedatectl set-timezone America/Chicago  # Cambia a tu zona horaria

4) Instalar Node.js 24 (ARM64)

# Instalar Node.js vía NodeSource
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt install -y nodejs

# Verificar
node --version  # Debería mostrar v24.x.x
npm --version

5) Añadir swap (importante para 2GB o menos)

El swap previene cierres por falta de memoria:

# Crear archivo swap de 2GB
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Hacerlo permanente
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# Optimizar para baja RAM (reducir swappiness)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

6) Instalar OpenClaw

Opción A: Instalación estándar (recomendada)

curl -fsSL https://openclaw.ai/install.sh | bash

Opción B: Instalación hackeable (para experimentar)

git clone https://github.com/openclaw/openclaw.git
cd openclaw
npm install
npm run build
npm link

La instalación hackeable te da acceso directo a los logs y al código — útil para depurar problemas específicos de ARM.

7) Ejecutar el onboarding

openclaw onboard --install-daemon

Sigue el asistente:

  1. Modo Gateway: Local
  2. Auth: Claves API recomendadas (OAuth puede ser caprichoso en Pi headless)
  3. Canales: Telegram es lo más fácil para empezar
  4. Daemon: Sí (systemd)

8) Verificar la instalación

# Comprobar estado
openclaw status

# Comprobar el servicio
sudo systemctl status openclaw

# Ver logs
journalctl -u openclaw -f

9) Acceder al Panel de OpenClaw

Reemplaza user@gateway-host con tu nombre de usuario y hostname o dirección IP de la Pi.

En tu computadora, pide a la Pi que imprima una URL fresca del panel:

ssh user@gateway-host 'openclaw dashboard --no-open'

El comando imprime Dashboard URL:. Dependiendo de cómo esté configurado gateway.auth.token, la URL puede ser un enlace plano http://127.0.0.1:18789/ o uno que incluya #token=....

En otra terminal de tu computadora, crea el túnel SSH:

ssh -N -L 18789:127.0.0.1:18789 user@gateway-host

Luego abre la URL del Panel impresa en tu navegador local.

Si la UI pide autenticación, pega el token de gateway.auth.token (o OPENCLAW_GATEWAY_TOKEN) en los ajustes de la UI de control.

Para acceso remoto permanente, consulta Tailscale.


Optimizaciones de rendimiento

Usar un SSD USB (mejora enorme)

Las tarjetas SD son lentas y se desgastan. Un SSD USB mejora drásticamente el rendimiento:

# Comprobar si arranca desde USB
lsblk

Consulta la guía de arranque USB de Pi para la configuración.

Acelerar el inicio del CLI (caché de compilación de módulos)

En hosts Pi de menor potencia, habilita la caché de compilación de módulos de Node para que las ejecuciones repetidas del CLI sean más rápidas:

grep -q 'NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache' ~/.bashrc || cat >> ~/.bashrc <<'EOF' # pragma: allowlist secret
export NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache
mkdir -p /var/tmp/openclaw-compile-cache
export OPENCLAW_NO_RESPAWN=1
EOF
source ~/.bashrc

Notas:

  • NODE_COMPILE_CACHE acelera las ejecuciones subsiguientes (status, health, --help).
  • /var/tmp sobrevive a reinicios mejor que /tmp.
  • OPENCLAW_NO_RESPAWN=1 evita el costo extra de inicio del auto-respawn del CLI.
  • La primera ejecución calienta la caché; las posteriores se benefician más.

Ajuste de inicio systemd (opcional)

Si esta Pi ejecuta principalmente OpenClaw, añade un drop-in de servicio para reducir el jitter de reinicio y mantener estable el entorno de inicio:

sudo systemctl edit openclaw
[Service]
Environment=OPENCLAW_NO_RESPAWN=1
Environment=NODE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache
Restart=always
RestartSec=2
TimeoutStartSec=90

Luego aplica:

sudo systemctl daemon-reload
sudo systemctl restart openclaw

Si es posible, mantén el estado/caché de OpenClaw en almacenamiento respaldado por SSD para evitar cuellos de botella de I/O aleatorio de la tarjeta SD durante arranques en frío.

Cómo las políticas Restart= ayudan a la recuperación automatizada: systemd puede automatizar la recuperación de servicios.

Reducir el uso de memoria

# Deshabilitar la asignación de memoria GPU (headless)
echo 'gpu_mem=16' | sudo tee -a /boot/config.txt

# Deshabilitar Bluetooth si no se necesita
sudo systemctl disable bluetooth

Monitorear recursos

# Comprobar memoria
free -h

# Comprobar temperatura del CPU
vcgencmd measure_temp

# Monitoreo en vivo
htop

Notas específicas de ARM

Compatibilidad de binarios

La mayoría de las funciones de OpenClaw funcionan en ARM64, pero algunos binarios externos pueden necesitar builds ARM:

HerramientaEstado ARM64Notas
Node.jsFunciona perfecto
WhatsApp (Baileys)JS puro, sin problemas
TelegramJS puro, sin problemas
gog (Gmail CLI)⚠️Verifica si hay release ARM
Chromium (navegador)sudo apt install chromium-browser

Si un skill falla, verifica si su binario tiene un build ARM. Muchas herramientas Go/Rust lo tienen; algunas no.

32-bit vs 64-bit

Siempre usa SO de 64-bit. Node.js y muchas herramientas modernas lo requieren. Verifica con:

uname -m
# Debería mostrar: aarch64 (64-bit) no armv7l (32-bit)

Configuración de modelo recomendada

Como la Pi es solo el Gateway (los modelos se ejecutan en la nube), usa modelos basados en API:

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "anthropic/claude-sonnet-4-20250514",
        "fallbacks": ["openai/gpt-4o-mini"]
      }
    }
  }
}

No intentes ejecutar LLMs locales en una Pi — incluso los modelos pequeños son demasiado lentos. Deja que Claude/GPT hagan el trabajo pesado.


Inicio automático al arrancar

El asistente de onboarding configura esto, pero para verificar:

# Comprobar que el servicio está habilitado
sudo systemctl is-enabled openclaw

# Habilitar si no lo está
sudo systemctl enable openclaw

# Iniciar en el arranque
sudo systemctl start openclaw

Solución de problemas

Sin memoria (OOM)

# Comprobar memoria
free -h

# Añadir más swap (ver Paso 5)
# O reducir servicios ejecutándose en la Pi

Rendimiento lento

  • Usa SSD USB en lugar de tarjeta SD
  • Deshabilita servicios no usados: sudo systemctl disable cups bluetooth avahi-daemon
  • Verifica throttling del CPU: vcgencmd get_throttled (debería devolver 0x0)

El servicio no arranca

# Comprobar logs
journalctl -u openclaw --no-pager -n 100

# Solución común: recompilar
cd ~/openclaw  # si usas instalación hackeable
npm run build
sudo systemctl restart openclaw

Problemas con binarios ARM

Si un skill falla con “exec format error”:

  1. Verifica si el binario tiene un build ARM64
  2. Intenta compilar desde el código fuente
  3. O usa un contenedor Docker con soporte ARM

Caídas de WiFi

Para Pis headless en WiFi:

# Deshabilitar gestión de energía del WiFi
sudo iwconfig wlan0 power off

# Hacerlo permanente
echo 'wireless-power off' | sudo tee -a /etc/network/interfaces

Comparación de costos

ConfiguraciónCosto únicoCosto mensualNotas
Pi 4 (2GB)~$45$0+ electricidad (~$5/año)
Pi 4 (4GB)~$55$0Recomendada
Pi 5 (4GB)~$60$0Mejor rendimiento
Pi 5 (8GB)~$80$0Excesivo pero a prueba de futuro
DigitalOcean$0$6/mes$72/año
Hetzner$0€3.79/mes~$50/año

Punto de equilibrio: Una Pi se paga sola en ~6-12 meses vs un VPS en la nube.


Ver también