vsantos

vsantos / Compose Ollama

Last active 6 days ago

Like 0

Compose para el docker de Ollama junto Open-WebUI

ollama-compose.yml Raw
1services:
2# =============================================================================
3# docker-compose.yml — Laboratorio IA Local
4# =============================================================================
5#
6# Uso:
7# docker compose up -d # Levantar todos los servicios
8# docker compose down # Detener todos los servicios
9# docker compose logs -f # Ver logs en tiempo real
10#
11# Servicios:
12# - ollama: Gestor de modelos de lenguaje (API en :11434)
13# - open-webui: Interfaz gráfica web (web en :3000)
14#
15# Requisitos:
16# - Docker Engine 24+ o Podman 4+
17# - Docker Compose v2+
18#
19# Notas:
20# - Los modelos descargados se guardan en ./ollama/models (persistente)
21# - Los datos de Open WebUI se guardan en ./open-webui/data (persistente)
22# - Si tienes GPU NVIDIA, descomenta la sección 'deploy' en ollama
23# - Las redes están separadas para aislamiento entre servicios
24#
25# =============================================================================
26 # ---------------------------------------------------------------------------
27 # Ollama — Gestor de modelos de lenguaje
28 # ---------------------------------------------------------------------------
29 ollama:
30 image: ollama/ollama:latest
31 container_name: ollama
32 hostname: ollama
33 restart: unless-stopped
34 networks:
35 - ia-local
36 ports:
37 # API REST de Ollama
38 - "11434:11434"
39 volumes:
40 # Persistencia de modelos descargados
41 - /mnt/user/lab-ia/modelos:/root/.ollama
42 environment:
43 # Mantener el modelo en memoria para respuestas más rápidas
44 - OLLAMA_KEEP_ALIVE=5m
45 # Número máximo de modelos cargados simultáneamente
46 - OLLAMA_NUM_PARALLEL=1
47 # Límite de contexto (ventana de tokens)
48 - OLLAMA_CONTEXT_LENGTH=8192
49 healthcheck:
50 test: kill -0 1
51 interval: 60s
52 start_period: 120s
53 # ---------------------------------------------------------------------------
54 # Open WebUI — Interfaz gráfica para chatear con modelos
55 # ---------------------------------------------------------------------------
56 open-webui:
57 image: ghcr.io/open-webui/open-webui:main
58 container_name: open-webui
59 restart: unless-stopped
60 networks:
61 - ia-local
62 ports:
63 # Interfaz web
64 - "3000:8080"
65 depends_on:
66 ollama:
67 condition: service_healthy
68 volumes:
69 # Persistencia de conversaciones, configuraciones, archivos subidos
70 - /mnt/user/lab-ia/open-webui:/app/backend/data
71 environment:
72 # URL del servicio Ollama (nombre del contenedor, no localhost)
73 - OLLAMA_BASE_URL=http://ollama:11434
74 # Tiempo máximo de espera para respuestas largas
75 - WEBUI_TIMEOUT=300
76 # Descomenta para requerir autenticación:
77 # - WEBUI_AUTH=true
78 healthcheck:
79 test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
80 interval: 30s
81 timeout: 10s
82 retries: 3
83 start_period: 60s
84# ---------------------------------------------------------------------------
85# Redes
86# ---------------------------------------------------------------------------
87networks:
88 ia-local:
89 name: ia-local-network
90 driver: bridge