- Implementación de volúmenes persistentes en Docker para evitar la pérdida de datos al actualizar el contenedor.
- Respaldo exhaustivo del archivo webui.db y la carpeta vector_db para conservar chats y bases de conocimiento.
- Procedimiento seguro de actualización mediante la descarga de imágenes recientes y el reinicio de los servicios.

¿Cómo hacer una copia de seguridad de Open WebUI y restaurarla? Si te has lanzado a la aventura de montar tu propia IA en casa, probablemente ya sepas que Open WebUI y Ollama forman un equipo imbatible. Mientras que el primero nos regala esa interfaz tan pulida y familiar estilo ChatGPT, el segundo es el motor que hace que todo funcione conectando Open WebUI con Ollama moviendo los modelos en tu propio hardware. Es una maravilla poder chatear sin que tus datos salgan de tu máquina, pero claro, llega un momento en que el miedo a perder el historial de conversaciones o las configuraciones nos hace pensar en cómo blindar esa información.
Para los que están empezando, especialmente en entornos como macOS Sequoia, puede generar cierta incertidumbre el tema de los contenedores Docker. A veces vemos que hay una actualización disponible y nos entra el pánico: ¿si actualizo el contenedor, se borran mis chats? La respuesta corta es que no, siempre y cuando tengamos bien configurada la persistencia de datos. En este sentido, vamos a desgranar paso a paso cómo asegurar que tu configuración sea a prueba de fallos y cómo gestionar las copias de seguridad para dormir tranquilos.
La base de todo: Asegurar que los datos no se evaporen
Antes de hablar de backups, hay que entender que los contenedores de Docker son, por naturaleza, efímeros. Si guardas los datos dentro del contenedor, al borrarlo para actualizar la versión, todo desaparece. Por eso es vital usar volúmenes persistentes. Si has usado el Docker Compose oficial del repositorio de GitHub, ya tienes esto resuelto, pero si has hecho tu propia mezcla, asegúrate de que el volumen open-webui esté correctamente mapeado a una ruta en tu sistema de archivos del host.
Para saber exactamente dónde están aterrizando tus datos en el disco duro, puedes ejecutar el comando docker volume inspect open-webui. Esto te dará la ruta real en tu Mac o servidor. Si prefieres usar bind mounts directos (rutas fijas que tú eliges), es fundamental que anotes esas rutas, ya que serán el objetivo principal de cualquier script de respaldo que decidas implementar.

¿Qué es exactamente lo que debemos respaldar?
Si echamos un vistazo a la carpeta de datos persistentes, veremos varios elementos. El más crítico es el archivo webui.db, que es una base de datos SQLite donde se guarda todo el historial de chats, los usuarios y los ajustes. Sin embargo, no es lo único importante. También tenemos la carpeta uploads/ con los archivos que hemos subido y vector_db/, que contiene la base de datos de ChromaDB necesaria para que el RAG (generación aumentada por recuperación) funcione correctamente.
Además, encontramos el audit.log para eventos de auditoría y la carpeta de cache/. Para un respaldo exhaustivo, lo ideal es copiar todo el directorio de datos. Si quieres ser más selectivo, podrías priorizar la base de datos y los documentos subidos, pero hacer un clon completo de la carpeta de persistencia es la forma más sencilla de evitar sorpresas desagradables, especialmente si necesitas migrar tus chats de ChatGPT a Open WebUI.
Estrategias para realizar copias de seguridad efectivas
Una de las formas más clásicas y eficientes de hacer esto es mediante rsync, que permite copias incrementales muy rápidas. Puedes programar un trabajo que mueva los datos a un NAS local o a la nube (como S3 o Backblaze B2). Para garantizar que los datos sean coherentes, lo más recomendable es realizar el backup en un sistema de archivos en frío, es decir, deteniendo el contenedor brevemente antes de copiar y levantándolo justo después.
Para los usuarios más avanzados, existen opciones como usar el comando .backup nativo de SQLite para obtener una copia consistente de la base de datos sin detener el servicio. También se pueden emplear herramientas como borgbackup o restic, que ofrecen deduplicación y cifrado, añadiendo una capa extra de seguridad a tu información privada.
Cómo actualizar Open WebUI sin perder ni un solo chat
Cuando el sistema te avise de que hay una nueva versión, no te asustes. El proceso es bastante mecánico. Primero, debes descargar la imagen más reciente ejecutando docker pull ghcr.io/open-webui/open-webui:main. Después, detienes y eliminas el contenedor actual con docker stop open-webui y docker rm open-webui. Finalmente, vuelves a lanzar el comando docker run original que utilizaste para instalarlo.
Gracias a que los datos viven en el volumen nombrado y no dentro de la imagen del software, el nuevo contenedor reconocerá inmediatamente tu base de datos anterior. Si usas Docker Compose, el proceso es todavía más sencillo: basta con hacer un docker compose pull seguido de un docker compose up -d para que todo se actualice de forma automática y limpia.
Optimización y extras: RAG, Audio y MCP
Para sacar el máximo provecho a tu instancia, recuerda que puedes potenciar el RAG subiendo tus propios PDFs en la sección de Conocimiento. Para que esto vuele, es imprescindible descargar el modelo nomic-embed-text mediante Ollama. Si notas que el modelo se confunde, prueba a bajar el tamaño de los fragmentos (chunk size) a unos 800 tokens, especialmente si usas modelos pequeños como Llama 3.2.
En cuanto a la voz, Open WebUI permite integrar Whisper para el reconocimiento de voz y OpenAI TTS o Coqui-TTS para la síntesis. Por último, la llegada del Model Context Protocol (MCP) es un cambio de juego total, permitiendo que tu IA local interactúe con herramientas externas como GitHub o Slack, convirtiendo un simple chat en un asistente productivo real.
Mantener el control total de nuestra inteligencia artificial local pasa por una buena gestión de los volúmenes de Docker, la realización de copias periódicas de la base de datos SQLite y la carpeta de vectores, y seguir el flujo correcto de actualización de imágenes para no comprometer la integridad de nuestras conversaciones y configuraciones personalizadas.
Apasionado de la tecnología desde pequeñito. Me encanta estar a la última en el sector y sobre todo, comunicarlo. Por eso me dedico a la comunicación en webs de tecnología y videojuegos desde hace ya muchos años. Podrás encontrarme escribiendo sobre Android, Windows, MacOS, iOS, Nintendo o cualquier otro tema relacionado que se te pase por la cabeza.
