¿Por qué correr IA en un mini PC en lugar de la nube?
Si has experimentado con ChatGPT o Claude por API, ya conoces los costos ocultos: facturación por token que sube rápido, límites de uso que frenan los trabajos por lotes y, lo más importante, que cada prompt que envías sale de tu red. Para quienes arman homelabs, desarrolladores y cualquiera con flujos de trabajo sensibles, eso último es un impedimento.
La buena noticia: los mini PC modernos ya cruzaron el umbral en el que correr modelos abiertos capaces en local es realmente práctico. Un equipo compacto con 16-32 GB de memoria puede servir modelos pequeños y medianos como Llama 3.1 8B, Mistral 7B, Gemma 2 9B o Phi-3 mini para tareas reales de productividad, no solo demos. Esta guía cubre el stack completo: hardware, Ollama, Open WebUI y los ajustes que lo hacen cómodo de usar en el día a día.
Hardware: lo que realmente necesitas
Para un mini PC de IA local en 2026, lo ideal es un mini PC con Intel serie N o AMD Ryzen 7, al menos 16 GB de RAM (32 GB muy recomendados) y un SSD NVMe rápido. La GPU es opcional: la inferencia en CPU con llama.cpp funciona con modelos cuantizados a 4 bits, aunque la velocidad depende mucho del procesador.
Un punto de entrada muy económico es el mini PC Beelink EQ12 (~$189). Trae un Intel N100 (4 núcleos, 6 W de TDP) y 16 GB de DDR4. Es silencioso y consume muy poco incluso corriendo modelos. Ten en cuenta que el N100 es un chip de bajo consumo: rinde bien con modelos pequeños (1-4B) y puede correr modelos de 7-8B, pero a pocos tokens por segundo. Si quieres más velocidad con modelos de 7-13B, apunta a un Ryzen 7 o superior.
La RAM de serie alcanza para modelos pequeños, pero si quieres más margen, sube a 32 GB de DDR4 SODIMM (~$59). El Beelink EQ12 tiene una ranura SODIMM accesible, así que cambias el módulo de 16 GB por uno de 32 GB. Cinco minutos con un destornillador.
En cuanto al almacenamiento, los archivos de modelos son grandes: Llama 3.1 8B en Q4_K_M ocupa unos 4.7 GB, y vas a querer tener 5-10 modelos en disco sin hacer malabares. Un NVMe WD Black SN850X de 2 TB (~$129) te da espacio de sobra y lecturas secuenciales rápidas que aceleran notablemente la carga de los modelos.
Sistema operativo: Ubuntu Server 24.04 LTS
Graba Ubuntu Server 24.04 LTS en una memoria USB con Rufus o Balena Etcher. Arranca, instala con los valores por defecto y activa OpenSSH durante la instalación. Una vez dentro:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git htop nvtop
Configura una IP fija con netplan para que la URL de Open WebUI nunca cambie:
# /etc/netplan/00-installer-config.yaml
network:
version: 2
ethernets:
enp1s0:
dhcp4: false
addresses:
- 192.168.1.50/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
sudo netplan apply
Si tu mini PC solo tiene un puerto de 1GbE y quieres transferencias más rápidas en tu red local para sincronizar modelos, el adaptador Ethernet USB TP-Link de 2.5G (~$22) se conecta por USB-A y funciona de entrada en Ubuntu 24.04, sin pelear con drivers.
Instala Ollama
Ollama es el motor que se encarga de descargar los modelos, elegir la cuantización y ofrecer una API local compatible con OpenAI. Se instala con un solo comando:
curl -fsSL https://ollama.com/install.sh | sh
Esto instala Ollama como servicio de systemd y lo arranca automáticamente. Verifica que esté corriendo:
systemctl status ollama
ollama --version
Por defecto, Ollama solo escucha en 127.0.0.1:11434. Como Open WebUI va a correr en Docker en la misma máquina, por ahora está bien. Si más adelante quieres exponer la API a otras máquinas de tu red, agrega esto al override de systemd:
sudo systemctl edit ollama
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
sudo systemctl daemon-reload && sudo systemctl restart ollama
Descarga tus primeros modelos
Descarga modelos con ollama pull. Esto es lo que recomiendo para el hardware de arriba:
# Fast general-purpose — great for chat and coding
ollama pull llama3.1:8b
# Excellent at structured output and function calling
ollama pull mistral:7b
# Strong reasoning, slightly slower
ollama pull gemma2:9b
# Coding assistant — beats Codestral on small hardware
ollama pull qwen2.5-coder:7b
# Tiny but surprisingly capable for quick tasks
ollama pull phi3:mini
Revisa qué tienes descargado y cuánto espacio ocupa:
ollama list
Haz una prueba rápida para confirmar que la inferencia funciona:
ollama run llama3.1:8b "Explain Proxmox LXC containers in one paragraph."
En un N100, un modelo de 8B responde, pero a una velocidad modesta: sirve para tareas por lotes con n8n y para consultas puntuales, mientras que para un chat interactivo fluido conviene un modelo más pequeño o un procesador más potente.
Instala Docker
Open WebUI se distribuye como contenedor Docker. Instala Docker CE:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
Despliega Open WebUI
Open WebUI es una interfaz de chat autoalojada y pulida que se conecta a tu instancia local de Ollama. Soporta cambio de modelos, historial de conversaciones, RAG (generación aumentada con recuperación) con subida de documentos, backends de generación de imágenes y cuentas de varios usuarios.
docker run -d \
--name open-webui \
--restart always \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host-gateway:11434 \
--add-host=host-gateway:host-gateway \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
Abre tu navegador en http://192.168.1.50:3000 (reemplaza con la IP fija de tu mini PC). La primera vez crearás una cuenta de administrador. Una vez dentro, tus modelos de Ollama aparecen automáticamente en el selector de modelos.
Mantén Open WebUI actualizado
Salen funciones nuevas cada semana. Actualiza con:
docker pull ghcr.io/open-webui/open-webui:main
docker stop open-webui && docker rm open-webui
# Re-run the docker run command above
Tus conversaciones, documentos de RAG y ajustes se conservan entre actualizaciones en el volumen de Docker open-webui.
Configuración útil de Open WebUI
RAG: conversa con tus documentos
En Settings → Documents puedes configurar RAG con un modelo de embeddings. Para embeddings locales, descarga nomic-embed-text:
ollama pull nomic-embed-text
Luego, en Settings → Documents de Open WebUI, define el modelo de embeddings como nomic-embed-text y el tamaño de fragmento en 512. Sube PDFs, archivos markdown o documentos de texto y haz preguntas sobre ellos directamente en el chat.
Prompts de sistema y modelos personalizados
Open WebUI te permite crear modelos personalizados: entradas que envuelven un modelo base con un prompt de sistema fijo. Ve a Admin → Models → Create a Model, elige tu modelo base y agrega un prompt de sistema. Es ideal para crear un "asistente de código" basado en qwen2.5-coder:7b o un "asistente de redacción" basado en llama3.1:8b.
Varios usuarios
Admin → Users → Add User. Cada usuario tiene su propio historial de conversaciones y acceso a modelos. Puedes limitar qué modelos ve cada usuario en su perfil, útil si compartes el equipo con tu familia o tu equipo de trabajo.
Solución de problemas comunes
Open WebUI no puede llegar a Ollama
Si Open WebUI muestra "Ollama connection failed", puede que el nombre DNS especial host-gateway no resuelva en tu versión de Docker. Usa directamente la IP del host:
docker run -d \
--name open-webui \
--restart always \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://192.168.1.50:11434 \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
El modelo carga y luego falla por "out of memory"
Estás corriendo un modelo que necesita más RAM de la disponible. Revisa el uso de memoria:
free -h
ollama ps
Si hay otro modelo cargado en memoria, Ollama no lo descarga automáticamente. Ejecuta ollama stop <model-name> para liberar memoria antes de cargar un modelo más grande. O define OLLAMA_MAX_LOADED_MODELS=1 en el override de systemd de Ollama para forzar un solo modelo a la vez.
Generación de tokens lenta
Asegúrate de usar un modelo cuantizado (sufijo Q4_K_M) y no la versión de precisión completa. La diferencia es grande: Q4_K_M es varias veces más rápido con una pérdida de calidad mínima en la mayoría de las tareas. Revisa qué variante tienes:
ollama show llama3.1:8b
ollama pull llama3.1:8b por defecto ya descarga Q4_K_M, pero si bajaste un GGUF específico a mano, revísalo.
El contenedor de Open WebUI se reinicia constantemente
Revisa primero los logs:
docker logs open-webui --tail 50
Una causa común es una base de datos SQLite corrupta en el volumen. Respáldala y vuelve a inicializar:
docker run --rm -v open-webui:/data alpine cp /data/webui.db /data/webui.db.bak
docker run --rm -v open-webui:/data alpine rm /data/webui.db
docker restart open-webui
Opcional: accede con Tailscale en lugar de abrir puertos
Si quieres acceder a tu stack de IA local desde fuera de casa sin abrir puertos, instala Tailscale en el mini PC. Tu Open WebUI queda accesible en su IP de Tailscale, puerto 3000, desde cualquier dispositivo de tu tailnet: teléfono, laptop, computadora del trabajo. Sin DNS dinámico ni reglas de firewall.
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
Revisa la IP de Tailscale asignada:
tailscale ip -4
Lo que sigue: conectarlo a n8n
Una vez que tu stack de IA local funciona, el siguiente paso obvio es automatizar. n8n tiene un nodo nativo de Ollama que te permite construir flujos donde la IA es un paso dentro de un proceso más grande: resumir correos entrantes, clasificar tickets de soporte, extraer datos estructurados de documentos o generar reportes semanales, todo sin tocar una API externa.
El nodo de Ollama se conecta a http://<your-mini-pc-ip>:11434 y te deja elegir cualquier modelo que hayas descargado. Con Open WebUI para el uso interactivo y n8n para la automatización por lotes, tienes un stack de IA local realmente completo por menos de $400 en hardware.
Alternativa: este stack en un contenedor LXC de Proxmox
Si ya usas Proxmox en una máquina más potente y no quieres un mini PC dedicado, puedes correr todo el stack de Ollama + Open WebUI en un contenedor LXC. La instalación es casi idéntica, pero además tienes los snapshots y respaldos de Proxmox.
Crea un contenedor LXC a partir de la plantilla de Ubuntu 24.04 en Proxmox, con al menos 8 GB de RAM (16 GB para modelos de 13B), 4 vCPU y 100 GB de almacenamiento. Luego entra por SSH y sigue exactamente los mismos pasos de arriba: Ollama se instala igual y Docker funciona bien en un contenedor sin privilegios con keyctl activado.
El único detalle: si tu host de Proxmox tiene GPU y quieres pasarla al LXC para acelerar la inferencia, necesitas un contenedor privilegiado y pasar el dispositivo en la configuración del LXC:
# In /etc/pve/lxc/<VMID>.conf on the Proxmox host
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
Con el passthrough de GPU, Ollama en el LXC usará automáticamente el driver de GPU del host si las bibliotecas CUDA o ROCm están instaladas dentro del contenedor. Quienes tienen Intel Arc o GPU integrada de Intel pueden usar el flag ollama run --gpu con el backend Intel OpenVINO.
Monitorea el uso de recursos
Después de unos días de uso, vas a querer saber qué tan exigido está el mini PC. Dos herramientas lo hacen fácil:
# CPU, RAM, processes — like top but better
htop
# Real-time GPU/NPU usage if you have one
nvtop
# Watch Ollama's active model and memory usage
watch -n2 "ollama ps"
Para un monitoreo persistente desde el navegador, agrega Beszel a tu stack de Docker. Es una herramienta liviana de monitoreo de servidores autoalojada que registra CPU, RAM, disco y red en el tiempo, con una interfaz limpia.
Descarga automática de modelos
Por defecto, Ollama mantiene un modelo cargado en memoria durante 5 minutos después de la última petición. En una máquina con 16 GB de RAM está bien. Pero si en esos 16 GB también corres Open WebUI, n8n y otros contenedores, quizás quieras acortar ese tiempo:
sudo systemctl edit ollama
[Service]
Environment="OLLAMA_KEEP_ALIVE=2m"
sudo systemctl daemon-reload && sudo systemctl restart ollama
Ponlo en 0 si quieres que Ollama descargue el modelo justo después de cada petición: útil cuando la RAM está justa y no haces chat interactivo.
Qué modelos elegir en un N100
Orientación general para un mini PC con N100 sin GPU, usando cuantización Q4_K_M:
- phi3:mini (3.8B) o modelos de 1-4B: la opción más ágil en este hardware. Muy buenos para tareas rápidas, completado de código y resúmenes cortos.
- llama3.1:8b: el mejor modelo de uso general de su tamaño; maneja bien código, redacción y razonamiento, pero en un N100 es lento para chat interactivo.
- mistral:7b: excelente siguiendo instrucciones, fuerte en salidas estructuradas y extracción de JSON.
- qwen2.5-coder:7b: hecho para código; supera a los modelos generales de 7B en tareas de programación.
- gemma2:9b: mejor razonamiento, pero más lento. Vale la pena para tareas complejas de varios pasos que no necesitan respuesta inmediata.
En la práctica, en un N100 los modelos pequeños son los más cómodos para el día a día, y los de 7-9B encajan mejor en trabajos por lotes. Obtienes una calidad útil con un costo marginal prácticamente cero por consulta, privacidad total de los datos y sin manejar API keys.
Que todo siga funcionando después de reiniciar
Ollama ya es un servicio de systemd que arranca solo. Para Open WebUI, el flag --restart always del comando docker run se encarga de los reinicios. Pero si Docker no arranca al encender:
sudo systemctl enable docker
sudo systemctl enable containerd
Para verificar que todo levante bien después de un reinicio:
sudo reboot
# After ~60 seconds...
ssh user@192.168.1.50
systemctl status ollama
docker ps
Ambos deberían aparecer funcionando. Si el contenedor de Open WebUI no está arriba, revisa docker logs open-webui para ver errores de arranque.
Resumen
El stack de IA local de esta guía (Ollama para la inferencia, Open WebUI como interfaz de chat, en un mini PC con N100) cuesta menos de $400 en hardware y consume muy poca electricidad. Cada consulta es local, privada y prácticamente gratis después de la instalación inicial.
No va a ganarle a los modelos de frontera en benchmarks de razonamiento difícil. Pero para la mayoría de las tareas que no necesitan ese nivel (resúmenes, revisión de código, ayuda con la redacción, extracción de datos, clasificación) es más que suficiente, y las ventajas de privacidad y costo son reales.
El siguiente paso es conectarlo a n8n para automatizar flujos de trabajo. Cuando puedes llamar a un LLM local desde un nodo de un flujo, la IA deja de ser una herramienta de chat y se convierte en un componente de infraestructura.
¿Quieres IA privada funcionando dentro de tu negocio?
Instalo LLMs locales (Ollama + Open WebUI) en tus propios equipos, para que tus datos nunca salgan de tu oficina. Instalación, seguridad y capacitación del equipo incluidas. Ver el stack de IA privada →
¿Tienes preguntas primero? Agenda una llamada gratis.