Hoy vamos a montar un docker compose qué es capaz de generar una web con interfaz de chat para cualquier modelo compatible con ollama.
Lo primero que tenemos que hacer es crear este docker-compose.yml basado en open-webui
open-webui-ollama: image: 'ghcr.io/open-webui/open-webui:main' restart: always container_name: open-webui-ollama volumes: - './open-webui:/app/backend/data' extra_hosts: - 'host.docker.internal:host-gateway' ports: - '3333:8080' networks: - docker_network networks: docker_network: external: true
En mi caso lo voy a acoplar en el mismo docker-compose.yml de ollama:
services: ollama: image: ollama/ollama container_name: ollama restart: unless-stopped ports: - "11434:11434" volumes: - ./models:/root/.ollama # Montar carpeta local en el contenedor networks: - docker_network open-webui-ollama: image: 'ghcr.io/open-webui/open-webui:main' restart: always container_name: open-webui-ollama volumes: - './open-webui:/app/backend/data' extra_hosts: - 'host.docker.internal:host-gateway' ports: - '3333:8080' networks: - docker_network networks: docker_network: external: true
Ahora será tan sencillo como levantarlo:
docker compose up -d
Para utilizar la web, tendremos que ir a http://localhost:3333
Una vez dentro, primero nos pedirá registrar una cuenta. Una vez registrada abriremos la web.
Ahora tendremos que añadir el endpoint de ollama, a veces lo obtiene solo, pero es mejor indicarlo.
Para ello vamos a configuración:
Ahora dentro de configuración tendremos que ir a configuración de administrador.
Y después a conexiones:
Y aquí dentro tendremos que poner en Ollama API:
http://ollama:11434
Ponemos el nombre del contenedor, que dentro de la red Docker es el dominio y el puerto por el que opera ollama.
Y ya lo tenemos listo.