¿Por qué alojar Open WebUI en un VPS en lugar de en local?
El alojamiento local sirve para hacer pruebas, pero tiene límites reales en producción: consume los recursos de su máquina, no ofrece acceso remoto y no aporta ninguna alta disponibilidad. Un VPS resuelve estos problemas: funciona 24/7, es accesible desde cualquier dispositivo y le deja el control total.
La diferencia con un servicio SaaS en la nube es igual de clara. Una herramienta de IA administrada factura por uso, almacena sus conversaciones en servidores de terceros y limita los modelos disponibles. Open WebUI auto-alojado elimina las tres restricciones a la vez: paga el VPS, no las peticiones, sus datos se quedan en su máquina y elige el modelo que más le conviene.
Local, VPS o SaaS: ¿qué solución para Open WebUI?
Desplace la tabla
| Criterio | Máquina local | VPS dedicado | SaaS en la nube |
|---|---|---|---|
| Acceso 24/7 desde cualquier lugar | No | Sí | Sí |
| Datos en su infraestructura | Sí | Sí | No |
| Libre elección del modelo LLM | Libre | Libre | Limitada a la oferta |
| Coste más allá de recursos fijos | Ninguno | Ninguno | Facturación por uso |
| Multi-usuario y roles | Difícil | Sí (integrado) | Según plan |
| Instalación y mantenimiento | Manual | Manual o Marketplace | Ninguno |
Lo que puede hacer con Open WebUI
- Conversar con modelos locales a través de Ollama (Mistral, LLaMA 3, Gemma, etc.) o con la API de OpenAI
- Gestionar varios modelos y pasar de uno a otro con un clic desde una interfaz unificada
- Crear y compartir asistentes personalizados con instrucciones de sistema a medida
- Subir y analizar documentos (PDF, texto) directamente en el chat gracias al soporte RAG integrado
- Abrir el acceso a su equipo con un sistema de cuentas de usuario y de roles
- Consultar el historial completo de sus conversaciones, almacenado en su propio servidor
Requisitos previos
Open WebUI necesita Docker para funcionar. Ollama (si quiere ejecutar un LLM localmente en el servidor) consume mucha RAM. Prevea al menos 4 GB de RAM para un modelo 7B y 8 GB para un modelo 13B. Si solo usa API externas (OpenAI, Anthropic), 2 GB de RAM bastan para la interfaz.
En cuanto al almacenamiento, los modelos de Ollama pesan entre 4 y 40 GB según su tamaño. Prevea un volumen SSD con al menos 20 GB libres si tiene intención de descargar un modelo 7B como Mistral o LLaMA 3.
Despliegue en 5 pasos
Prepare su VPS
Contrate un Cloud VPS con Ubuntu 22.04 LTS. Actualice el sistema:
apt update && apt upgrade -yActive el firewall UFW y abra los puertos SSH (22), HTTP (80) y HTTPS (443):
ufw allow 22 && ufw allow 80 && ufw allow 443 && ufw enableInstale Docker
Instale Docker Engine desde el repositorio oficial de Docker. Añada su usuario al grupo docker para evitar repetir los comandos sudo:
curl -fsSL https://get.docker.com | sh usermod -aG docker $USERCompruebe la instalación:
docker run hello-world.Arranque Open WebUI
Descargue la imagen Docker oficial y lance el contenedor exponiendo el puerto 3000. Monte un volumen para conservar los datos entre reinicios:
docker run -d \ --name open-webui \ --restart always \ -p 3000:8080 \ -v open-webui:/app/backend/data \ -e WEBUI_SECRET_KEY=$(openssl rand -hex 32) \ ghcr.io/open-webui/open-webui:mainOpen WebUI queda accesible en
http://su-ip:3000. La variableWEBUI_SECRET_KEYse genera aquí en el momento de la instalación — anote su valor o colóquela en un fichero.envantes de reiniciar el contenedor.Configure un reverse proxy (Nginx)
Instale Nginx y cree un host virtual que redirija las peticiones al puerto 3000:
apt install -y nginx certbot python3-certbot-nginxCree
/etc/nginx/sites-available/open-webuicon:server { server_name your-domain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }Active el vhost y obtenga un certificado SSL de Let's Encrypt:
certbot --nginx -d your-domain.com. Su interfaz quedará accesible por HTTPS en su dominio.Conecte sus modelos
En la interfaz de Open WebUI, configure sus conexiones de API: Ollama local, OpenAI, Anthropic o cualquier otro proveedor compatible. Para arrancar Ollama en el mismo VPS:
docker run -d \ --name ollama \ --restart always \ -v ollama:/root/.ollama \ -p 11434:11434 \ ollama/ollamaLuego descargue el modelo que desee:
docker exec ollama ollama pull mistral. En los ajustes de Open WebUI, la URL de Ollama eshttp://host.docker.internal:11434si ambos contenedores están en el mismo host. Cree las cuentas de usuario que necesite.
El atajo: instalar desde el Marketplace
Si su VPS es un VPS Cloud de ServOrbit, no tiene que recorrer los pasos anteriores. Desde su área de cliente, abra el Marketplace en el panel de gestión del servidor, busque Open WebUI y confirme la instalación: el contenedor y sus dependencias se despliegan por usted. Quedan dos gestos que nadie puede hacer en su lugar — crear la cuenta de administrador en la primera conexión (la primera cuenta creada asume ese rol, ábrala usted mismo sin esperar) y declarar su fuente de modelos en los ajustes de administración. Prevea al menos 4 GB de RAM y 2 vCPU si ejecuta Ollama en la misma máquina: la interfaz es ligera, lo que pesa son los modelos. La vía manual conserva su interés en cuanto quiera controlar la composición Docker, fijar una versión concreta o conectar Open WebUI a una infraestructura existente.
Fije la clave de firma desde el primer arranque
Open WebUI firma cada token de sesión con WEBUI_SECRET_KEY. Si no la declara, se genera al azar en el primer arranque y se escribe en el directorio de datos: mientras ese volumen persista, todo va bien. El día en que el volumen se recrea, la clave cambia — y obtiene un acceso denegado con credenciales perfectamente válidas, un síntoma engañoso que lleva a buscar por el lado de la contraseña. Esa misma clave cifra además los secretos almacenados (tokens OAuth, credenciales de API): perderla no solo corta las sesiones, también vuelve ilegibles esos secretos. Genérela una vez con openssl rand -hex 32, póngala en su fichero de entorno y trátela como un secreto de producción. Si ejecuta varias instancias detrás de un balanceador, todas deben llevar el mismo valor; de lo contrario, un token emitido por una es rechazado por otra.
Configurar el acceso multiusuario
Open WebUI incluye un sistema integrado de cuentas y roles que permite a varios miembros de un equipo compartir la misma instancia. Por defecto, la primera cuenta creada se convierte en administrador. Los usuarios siguientes se colocan en una cola de validación si ha activado la moderación de registros — una opción recomendada para evitar que un puerto 3000 expuesto a internet quede abierto a cualquiera.
Hay tres niveles de acceso disponibles: admin (acceso total a la configuración, los modelos y las cuentas), usuario (acceso a los chats y los asistentes compartidos) y pendiente (acceso bloqueado hasta aprobación manual). Para configurar la moderación:
1. Inicie sesión como administrador.
2. Vaya a Ajustes → Administración → Usuarios.
3. Active « Registro con aprobación del administrador ».
También puede crear asistentes (ajustes previos de modelo e instrucciones de sistema) y compartirlos con toda la instancia o con grupos concretos, sin que los usuarios tengan que reconfigurar su sesión.
Solución de problemas: los fallos más comunes
El contenedor no para de reiniciarse. Revise los registros: docker logs open-webui. La causa más frecuente es una WEBUI_SECRET_KEY ausente o mal formada — la variable debe ser una cadena hexadecimal no vacía. Si se genera en el arranque sin quedar en un volumen o un fichero .env, cambia en cada reinicio del contenedor.
Fallo de conexión con Ollama («Could not connect to Ollama»). La URL predeterminada http://localhost:11434 no funciona desde dentro de un contenedor Docker: localhost hace referencia al propio contenedor, no al host. Use http://host.docker.internal:11434 (en Linux: añada --add-host=host.docker.internal:host-gateway al comando docker run) o ejecute ambos contenedores en la misma red Docker y referencie el contenedor de Ollama por su nombre.
502 Bad Gateway después del reverse proxy. El proxy de Nginx apunta al puerto 3000 pero Open WebUI escucha internamente en el puerto 8080 — el comando docker run mapea 3000:8080. Compruebe que su vhost apunte a http://127.0.0.1:3000, no a 8080.
WebSocket desconectado (interfaz que se congela). Las cabeceras Upgrade y Connection son imprescindibles para los WebSockets que usa la interfaz. Compruebe que su bloque proxy_set_header las incluya a ambas.
Si quiere ejecutar un modelo de Ollama directamente en el mismo VPS, opte por un plan con al menos 8 GB de RAM y discos SSD para reducir los tiempos de carga de los modelos.
La documentación oficial
Para la configuración avanzada, las opciones propias de la herramienta y los cambios de versión, consulte la documentación oficial de Open WebUI. Esta guía cubre la puesta en línea en un VPS de ServOrbit; la documentación del editor sigue siendo la referencia para los ajustes finos.