Skip to content

duotics/ollama-webui-docker

Repository files navigation

🤖 Ollama + Open WebUI - Docker Stack

Deploy completo de Ollama + Open WebUI con soporte para GPU NVIDIA. Perfecto para ejecutar LLMs localmente en tu computadora.

✨ Características

  • 🚀 Setup en 5 minutos - Un solo comando para iniciar
  • 🎮 Soporte GPU NVIDIA - Aceleración por hardware (Linux/WSL2)
  • 💻 Modo CPU - Funciona sin GPU (más lento)
  • 🌐 Interfaz web moderna - Open WebUI estilo ChatGPT
  • 🔒 100% local - Sin enviar datos a la nube
  • 📦 Múltiples configuraciones - Elige según tu hardware

📋 Requisitos

Mínimos (CPU solamente)

  • Docker + Docker Compose
  • 8 GB RAM
  • 20 GB espacio en disco

Recomendados (con GPU)

  • GPU NVIDIA con 6GB+ VRAM (GTX 1060 o superior)
  • Driver NVIDIA actualizado
  • NVIDIA Container Toolkit (ver Guía GPU)
  • 16 GB RAM
  • 50 GB espacio en disco

🚀 Inicio Rápido

1. Clonar el repositorio

git clone <tu-repo-url>
cd ollama

2. Elegir configuración

Tenemos 3 configuraciones según tu hardware:

Archivo Uso Requisitos
docker-compose.yml Por defecto - GPU Linux/WSL2 GPU NVIDIA + Container Toolkit
docker-compose.wsl2.yml GPU en Windows WSL2 Windows + WSL2 + Driver NVIDIA
docker-compose.cpu.yml Sin GPU (fallback) Solo CPU

3. Iniciar servicios

Con GPU (Linux o WSL2):

# Si tu GPU ya está configurada:
docker compose up -d

# Si usas WSL2 en Windows:
cp docker-compose.wsl2.yml docker-compose.yml
docker compose up -d

# Para Linux nativo con GPU:
cp docker-compose.gpu-linux.yml docker-compose.yml
docker compose up -d

Sin GPU (CPU):

cp docker-compose.cpu.yml docker-compose.yml
docker compose up -d

4. Acceder

En el primer acceso, crea una cuenta (solo local, no se envía a ningún servidor).

5. Descargar modelos

# Modelo pequeño (3B - 2GB VRAM)
docker exec ollama ollama pull llama3.2:3b

# Modelo mediano (8B - 5GB VRAM)
docker exec ollama ollama pull llama3.1:8b

# Modelo grande (70B - 40GB VRAM) - Solo GPUs potentes
docker exec ollama ollama pull llama3.1:70b

Ver más modelos en: https://ollama.ai/library

📁 Estructura del Proyecto

ollama/
├── docker-compose.yml              # Configuración principal (GPU)
├── docker-compose.wsl2.yml         # Para Windows WSL2
├── docker-compose.cpu.yml          # Sin GPU (fallback)
├── docker-compose.gpu-linux.yml    # GPU Linux nativo
│
├── data/                           # Volúmenes persistidos (auto-creado)
│   ├── ollama/                     # Modelos y config de Ollama
│   └── open-webui/                 # DB y uploads de Open WebUI
│
├── docs/                           # Documentación técnica
│   ├── GPU_SETUP_GUIDE.md          # Configurar GPU
│   ├── RECOMENDACION_MODELOS_RAG.md
│   └── ...
│
└── scripts/                        # Scripts útiles
    ├── verificar-gpu.sh            # Verificar GPU
    ├── diagnostico-gpu.sh          # Diagnóstico completo
    └── verificar-actualizaciones-modelos.sh

⚙️ Configuración

Variables de Entorno

Copia .env.example a .env y personaliza:

cp .env.example .env

Edita .env:

# Seguridad
WEBUI_SECRET_KEY=tu-clave-secreta-aquí

# Ajustes según tu VRAM
OLLAMA_NUM_PARALLEL=2              # Requests paralelas (1-4)
OLLAMA_MAX_LOADED_MODELS=2         # Modelos en memoria (1-3)
OLLAMA_KEEP_ALIVE=5m               # Tiempo en memoria (2m-30m)

Ajustar según tu GPU

VRAM NUM_PARALLEL MAX_MODELS Modelos Recomendados
4-6 GB 1 1 llama3.2:3b, phi3:3b
8-12 GB 2 2 llama3.1:8b, mistral:7b
16+ GB 3 3 qwen2.5:14b, llama3.1:70b (quantized)

Ver guía completa en docs/GPU_SETUP_GUIDE.md

🛠️ Comandos Útiles

Gestión de Servicios

# Iniciar
docker compose up -d

# Ver logs
docker compose logs -f ollama
docker compose logs -f open-webui

# Reiniciar
docker compose restart

# Detener
docker compose down

# Detener y eliminar datos
docker compose down -v

Gestión de Modelos

# Listar modelos instalados
docker exec ollama ollama list

# Descargar modelo
docker exec ollama ollama pull <modelo>

# Ejecutar modelo (test)
docker exec ollama ollama run llama3.1:8b "Hello!"

# Ver modelos en memoria
docker exec ollama ollama ps

# Eliminar modelo
docker exec ollama ollama rm <modelo>

Verificar GPU

# GPU funcionando
nvidia-smi

# GPU en contenedor
docker exec ollama nvidia-smi

# Ver uso de GPU en tiempo real
watch -n 1 nvidia-smi

# Logs de GPU
docker logs ollama | grep -i "cuda\|gpu"

# Script de verificación
./scripts/verificar-gpu.sh

🔧 Troubleshooting

GPU no detectada

  1. Verifica driver NVIDIA:

    nvidia-smi  # Debe mostrar tu GPU
  2. Instala NVIDIA Container Toolkit:

    # Ver guía completa en docs/GPU_SETUP_GUIDE.md
    sudo apt install nvidia-container-toolkit
    sudo systemctl restart docker
  3. Verifica en Docker:

    docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi

Servicios no inician

# Ver errores
docker compose logs

# Verificar puertos en uso
sudo lsof -i :3000
sudo lsof -i :11434

# Limpiar y reiniciar
docker compose down
docker compose up -d

Modelos lentos

  • Con GPU: Verifica que Ollama esté usando GPU (docker logs ollama | grep -i gpu)
  • Con CPU: Es normal, usa modelos más pequeños (3b en vez de 8b)
  • Poco RAM: Reduce OLLAMA_MAX_LOADED_MODELS=1

Errores de memoria (GPU)

# En docker-compose.yml, reduce estos valores:
- OLLAMA_NUM_PARALLEL=1        # De 2 a 1
- OLLAMA_MAX_LOADED_MODELS=1   # De 2 a 1
- OLLAMA_KEEP_ALIVE=2m         # De 5m a 2m

📚 Documentación

🎯 Casos de Uso

Chat Personal

# Modelo conversacional rápido
docker exec ollama ollama pull llama3.1:8b
# Usa Open WebUI en http://localhost:3000

Programación

# Modelo especializado en código
docker exec ollama ollama pull codellama:13b

RAG (Retrieval Augmented Generation)

# Modelo de embeddings + LLM
docker exec ollama ollama pull nomic-embed-text
docker exec ollama ollama pull qwen2.5:7b

🤝 Contribuir

¿Encontraste un problema? ¿Tienes una mejora?

  1. Haz fork del repo
  2. Crea tu branch (git checkout -b feature/mejora)
  3. Commit cambios (git commit -am 'Agrega mejora')
  4. Push al branch (git push origin feature/mejora)
  5. Abre un Pull Request

📄 Licencia

MIT License - ver LICENSE para detalles.

🌟 Créditos


¿Preguntas? Abre un issue o consulta la documentación completa.

Star ⭐ este repo si te fue útil!

About

🤖 Ollama + Open WebUI Docker Stack with GPU support. Run LLMs locally with a ChatGPT-like interface.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages