Saltar al contenido principal

🔄 Actualizando Open WebUI

¿Por qué no se actualiza mi Open WebUI?

Para actualizar tu instalación local de Docker de Open WebUI a la última versión disponible, puedes usar Watchtower o actualizar manualmente el contenedor. Sigue cualquiera de los pasos proporcionados a continuación para actualizar la imagen existente de Open WebUI.

Actualización Manual

  1. Detén y elimina el contenedor actual:

    Esto detendrá el contenedor en ejecución y lo eliminará, pero no borrará los datos almacenados en el volumen de Docker. (Sustituye open-webui por el nombre de tu contenedor durante el proceso de actualización si es diferente para ti).

docker rm -f open-webui
  1. Descarga la última imagen de Docker:

    Esto actualizará la imagen de Docker, pero no actualizará el contenedor en ejecución ni sus datos.

docker pull ghcr.io/open-webui/open-webui:main
info

Elimina cualquier dato existente en el volumen de Docker (NO RECOMENDADO A MENOS QUE SEA ABSOLUTAMENTE NECESARIO). Omite este paso completamente si no es necesario y pasa al último paso:

Si deseas empezar desde cero, puedes eliminar los datos existentes en el volumen de Docker. Ten cuidado, ya que esto eliminará todos tus historiales de chat y otros datos.

Los datos se almacenan en un volumen de Docker llamado open-webui. Puedes eliminarlo con el siguiente comando:

docker volume rm open-webui
  1. Inicia nuevamente el contenedor con la imagen actualizada y el volumen existente adjunto:

    Si no eliminaste los datos existentes, esto iniciará el contenedor con la imagen actualizada y los datos existentes. Si eliminaste los datos existentes, esto iniciará el contenedor con la imagen actualizada y un volumen nuevo y vacío. Para soporte de GPU Nvidia, agrega --gpus all al comando docker run

docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main

¿Sigues siendo desconectado después de cada actualización?

Si te encuentras desconectado después de cada actualización, asegúrate de que WEBUI_SECRET_KEY esté configurado en tus variables de entorno. Sin esta clave definida de manera consistente, tus sesiones de autenticación pueden invalidarse después de las actualizaciones.

Para establecer WEBUI_SECRET_KEY de manera persistente, inclúyelo al ejecutar tu contenedor de Docker:

docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui -e WEBUI_SECRET_KEY=your_secret_key ghcr.io/open-webui/open-webui:main

O, si utilizas docker-compose, agrégalo bajo la sección environment:

version: '3'
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
environment:
- WEBUI_SECRET_KEY=your_secret_key

Para más detalles sobre la configuración de variables de entorno, consulta la documentación de Open WebUI sobre variables de seguridad.

Actualización Automática de Open WebUI con Watchtower

Puedes usar Watchtower para automatizar el proceso de actualización de Open WebUI. Aquí hay tres opciones:

Opción 1: Actualización única

Puedes ejecutar Watchtower como una actualización única para detener el contenedor actual, descargar la última imagen e iniciar un nuevo contenedor con la imagen actualizada y el volumen existente adjunto (Para soporte de GPU Nvidia, agrega --gpus all al comando docker run):

docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui

Opción 2: Ejecutar Watchtower como un contenedor separado

Puedes ejecutar Watchtower como un contenedor separado que observe y actualice tu contenedor de Open WebUI:

docker run -d --name watchtower \
--volume /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -i 300 open-webui

Esto iniciará Watchtower en modo separado, observando el contenedor de Open WebUI para actualizaciones cada 5 minutos.

Opción 3: Integrando Watchtower con un archivo docker-compose.yml

También puedes integrar Watchtower con tu archivo docker-compose.yml para automatizar las actualizaciones de Open WebUI (Para soporte de GPU Nvidia, agrega --gpus all al comando docker run):

version: '3'
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data

watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 300 open-webui
depends_on:
- open-webui

volumes:
open-webui:

En este ejemplo, Watchtower está integrado con el archivo docker-compose.yml y observa el contenedor de Open WebUI para actualizaciones cada 5 minutos.

Datos Persistentes en Volúmenes de Docker

Los datos se almacenan en un volumen de Docker llamado open-webui. La ruta al volumen no es directamente accesible, pero puedes inspeccionar el volumen con el siguiente comando:

docker volume inspect open-webui

Esto mostrará los detalles del volumen, incluido el punto de montaje, que generalmente se encuentra en /var/lib/docker/volumes/open-webui/_data.

En Windows 10 + WSL 2, los volúmenes de Docker se encuentran aquí (escribe en el explorador de archivos de Windows):

  • \\wsl$\docker-desktop\mnt\docker-desktop-disk\data\docker\volumes

Para versiones anteriores de Docker (antes de Docker v26.1.4):

  • \\wsl$\docker-desktop-data\data\docker\volumes
  • \\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes

(La respuesta de Windows es crédito del usuario sarye-haddadi de StackOverflow; enlace al post original en SO)