vsantos

vsantos / Compose Ollama

Last active 6 days ago

Like 0

Compose para el docker de Ollama junto Open-WebUI

vsantos revised this gist 6 days ago · b78b50b

1 file changed, 90 insertions

ollama-compose.yml (file created)
@@ -0,0 +1,90 @@
1 + services:
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 + # ---------------------------------------------------------------------------
87 + networks:
88 + ia-local:
89 + name: ia-local-network
90 + driver: bridge