Utoljára aktív 3 days ago

Script del Episodio 827 - atareao con Linux

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