Por qué autoalojar LocalAI en un VPS
Mientras Ollama se centra en el texto, LocalAI apunta a una compatibilidad amplia con la API de OpenAI: expone /v1/chat/completions, /v1/embeddings, /v1/images/generations e incluso la transcripción de audio, en una sola API. Para un equipo que ya tiene código escrito contra el SDK de OpenAI, LocalAI es un reemplazo casi transparente: cambia la URL base y la clave, y el resto funciona. En un VPS obtiene esa polivalencia sin dependencia externa ni coste por llamada. Resulta especialmente pertinente cuando necesita a la vez generación de texto, vectores para RAG y, puntualmente, imágenes, sin multiplicar proveedores ni claves.
Los beneficios concretos de un LocalAI autoalojado
- Reemplazo directo de la API de OpenAI: ninguna reescritura del código cliente.
- Una sola API para el chat, los embeddings, las imágenes y el audio.
- Soporte de múltiples backends (llama.cpp, diffusers, whisper) bajo una interfaz unificada.
- Formatos de modelos abiertos (GGUF) descargables e intercambiables.
- Sin facturación por uso: un coste VPS fijo para todos los tipos de generación.
- Datos y generaciones conservados íntegramente en su servidor.
Requisitos de hardware y software
Como LocalAI es polivalente, sus necesidades dependen de las funciones activadas. Para chat 7B y embeddings en CPU, apunte a 8 GB de RAM y 4 vCPU. Si activa la generación de imágenes (Stable Diffusion) o el audio, la carga sube notablemente y un VPS con GPU pasa a ser muy recomendable. El disco es un punto clave: los modelos GGUF y de difusión pesan mucho, prevea de 30 a 50 GB. Se requieren Docker y Docker Compose, además de un subdominio (p. ej. ia.su-dominio.com) y el puerto 443. Prepare la lista de modelos que va a cargar según sus usos.
Desplegar LocalAI con Docker y HTTPS
Preparar la carpeta de modelos
Por SSH:
mkdir -p /opt/localai/models && cd /opt/localai. Esta carpetamodelsse montará en el contenedor y contendrá sus archivos GGUF y configuraciones YAML.Lanzar el contenedor LocalAI
Utilice la imagen oficial, por ejemplo
docker run -d -p 127.0.0.1:8080:8080 -v $PWD/models:/models --name localai localai/localai. Elija la etiqueta correspondiente a su hardware (CPU o GPU).Instalar un modelo desde la galería
LocalAI ofrece una galería:
curl http://127.0.0.1:8080/models/apply -d '{"id":"..."}', o deposite manualmente un GGUF enmodels/con su YAML de configuración. Después liste concurl http://127.0.0.1:8080/v1/models.Probar la compatibilidad con OpenAI
Valide con una llamada de chat:
curl http://127.0.0.1:8080/v1/chat/completions -d '{"model":"...","messages":[{"role":"user","content":"test"}]}'. Pruebe también/v1/embeddingssi prevé usar RAG.Configurar el reverse proxy y el SSL
Enrute
ia.su-dominio.comhacialocalhost:8080mediante Caddy o Nginx, con Let's Encrypt. Añada una protección por token, ya que LocalAI no impone ninguna clave por defecto en un despliegue desnudo.Migrar sus aplicaciones
En sus clientes OpenAI, cambie la URL base por
https://ia.su-dominio.com/v1y la clave por su token. Las llamadas de chat, embeddings e imágenes pasan a su infraestructura.
Active solo los backends que necesite. Cargar a la vez un modelo de chat, un modelo de embeddings y Stable Diffusion en un VPS CPU satura la RAM y hunde el rendimiento. Defina SINGLE_ACTIVE_BACKEND=true para mantener un único backend residente a la vez, y reserve la generación de imágenes a un VPS GPU si se convierte en un uso habitual.
LocalAI frente a Ollama: ¿qué servidor LLM local elegir?
Desplace la tabla
| LocalAI | Ollama | |
|---|---|---|
| GPU requerida | No (solo CPU por defecto) | No (solo CPU por defecto) |
| API compatible con OpenAI | Sí | Sí (parcial) |
| Generación de imágenes | Sí (Stable Diffusion) | No |
| Reconocimiento de voz | Sí (Whisper) | No |
| Biblioteca de modelos | Más de 200 modelos GGUF | Lista de modelos seleccionados |
| RAM (modelo 3B) | ~2 GB | ~2 GB |
| Licencia | MIT | MIT |