Docker Compose para stack completo de IA local
Un stack local útil no debe ser una carpeta llena de comandos sueltos. Docker Compose te permite levantar interfaz, automatización y base vectorial con volúmenes, perfiles y una ruta clara de backup.
Objetivos de aprendizaje
- Separar servicios base de servicios opcionales con perfiles.
- Guardar estado en volúmenes persistentes.
- Evitar el clásico “funciona en mi terminal, pero no sé repetirlo”.
En cristiano: perfil de Compose. Un perfil permite activar servicios opcionales solo cuando los necesitas. Por ejemplo: base, RAG, automatización o GPU.
Terminal
services:
qdrant:
image: qdrant/qdrant:latest
ports: ["6333:6333"]
volumes:
- qdrant_data:/qdrant/storage
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports: ["3000:8080"]
volumes:
- open_webui_data:/app/backend/data
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:11434
n8n:
image: n8nio/n8n:latest
profiles: ["automation"]
ports: ["5678:5678"]
volumes:
- n8n_data:/home/node/.n8n
environment:
- N8N_ENCRYPTION_KEY=change-me
volumes:
qdrant_data:
open_webui_data:
n8n_data: Idea clave. En portátiles y Windows suele ir mejor ejecutar Ollama nativo en el host y dejar Docker para Open WebUI, n8n y Qdrant. Así reduces fricción de GPU dentro de contenedores.
Terminal
# Base: Qdrant + Open WebUI docker compose up -d # Añadir automatización con n8n docker compose --profile automation up -d # Ver estado y logs docker compose ps docker compose logs -f open-webui # Backup mínimo docker run --rm -v open_webui_data:/data -v "$PWD:/backup" alpine tar czf /backup/open-webui-backup.tgz /data
Cuidado. No publiques este stack directamente a internet. Antes necesitas HTTPS, autenticación, backups probados, secretos fuera del repo y revisar qué puertos quedan expuestos.
Comprueba que funciona. Reinicia el ordenador y vuelve a levantar el stack. Si pierdes usuarios, chats o colecciones, tus volúmenes no están bien montados.
Guardar y reabrir el proyecto.
Un buen compose no es el más grande. Es el que puedes parar, actualizar, restaurar y explicar seis meses después.