Autoalojar LobeHub: una plataforma de chat con IA para varias personas, con tus propias API de modelos
Despliega LobeHub junto con PostgreSQL, Redis y el almacenamiento de archivos RustFS en tu propio servidor con la plantilla de Zenavo, asocia dos dominios, limita qué correos pueden registrarse después de crear tu cuenta, conecta proveedores de modelos como OpenAI o Claude y prepara las copias de seguridad y las actualizaciones.
Este artículo también está disponible en English, 简体中文, 繁體中文, 日本語 y Bahasa Indonesia.
LobeHub (antes LobeChat) es una plataforma de chat con IA de código abierto: admite decenas de proveedores de modelos, como OpenAI, Anthropic, Google o DeepSeek, y tiene cuentas para varios usuarios, historial de conversaciones, subida de archivos, bases de conocimiento y agentes. Su interfaz es completa, así que encaja bien como punto de acceso a la IA compartido por un equipo o una familia.
La versión de servidor necesita una base de datos y almacenamiento de archivos, y montarla desde cero exige configurar bastantes cosas. La plantilla de LobeHub de Zenavo lo trae todo empaquetado; en esta guía vamos desde el despliegue hasta las copias de seguridad. Si prefieres una interfaz de chat más ligera, en un solo contenedor y con un único dominio, consulta Open WebUI.
El servidor, Zenavo y las API de los proveedores de modelos se facturan por separado. LobeHub no ofrece modelos propios: las conversaciones se envían a los proveedores que configures.
Qué incluye la plantilla
Abre la plantilla de LobeHub. Al desplegarla, el proyecto tendrá cuatro servicios:
| Servicio | Función |
|---|---|
| lobehub | La aplicación, con la imagen lobehub/lobehub:2.3.3 y el puerto HTTP 3210 |
| postgresql | Cuentas, conversaciones, ajustes y claves de API guardadas cifradas, con una extensión de búsqueda de texto completo (ParadeDB, PostgreSQL 17) |
| redis | Caché y sesiones |
| rustfs | Almacenamiento de archivos compatible con S3 para las imágenes y archivos subidos; el puerto 9000 es la API de S3 y el 9001, la consola de administración |
La plantilla recomienda reservar 2 GB de memoria. Las contraseñas de la base de datos, la clave de cifrado del inicio de sesión (AUTH_SECRET) y la clave de cifrado de las claves de API (KEY_VAULTS_SECRET) se generan automáticamente al desplegar.
Prepara dos dominios
LobeHub necesita dos direcciones públicas:
- la URL de la aplicación, como
https://chat.example.com, para abrir LobeHub; - la URL del almacenamiento de archivos, como
https://files.example.com, a la que el navegador accede directamente para subir y ver imágenes.
Primero crea en el DNS registros A para estos dos subdominios que apunten al servidor. Después conecta un servidor Linux a Zenavo, abre la plantilla, introduce las dos URL (sin barra al final), elige el servidor y despliega.
Asocia los dominios
Tras el despliegue, asocia cada uno:
- En la pestaña Red del servicio lobehub, asocia
chat.example.comal puerto3210; - En la pestaña Red del servicio rustfs, asocia
files.example.comal puerto9000.
Los dominios deben coincidir con los que introdujiste al desplegar. Cuando el HTTPS esté listo, abre https://chat.example.com. Los pasos están en Dominios y HTTPS.
El 9001 es la consola de administración de RustFS; no necesita dominio público y no recomendamos asociarle uno.
Crea tu cuenta y limita el registro
Abre la aplicación y registra la primera cuenta con correo y contraseña.
Por defecto, la plantilla permite que se registre cualquiera. Si es para uso interno de un equipo o una familia, añade en las Variable del servicio lobehub los correos o dominios que pueden registrarse, guarda y reinicia:
AUTH_ALLOWED_EMAILS=example.com,friend@gmail.com
Puedes poner direcciones completas o solo dominios, separados por comas. A partir de entonces, los correos que no estén en la lista no podrán registrarse.
Si necesitas verificación del correo o recuperación de contraseña, configura también SMTP:
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=noreply@example.com
SMTP_PASS=tu contraseña SMTP
AUTH_EMAIL_VERIFICATION=1
Si usas el puerto 465, cambia SMTP_SECURE a true. Sin SMTP el registro y el inicio de sesión funcionan con normalidad; solo no se pueden enviar los correos de verificación y de restablecimiento de contraseña.
Conecta los modelos
Hay dos formas, y puedes usar ambas a la vez.
Cada persona pone su propia clave. Tras iniciar sesión, abre Configuración → Proveedores de IA, elige un proveedor, introduce la clave de API y, si hace falta, la dirección del proxy, y haz clic en Comprobar. La clave se cifra con KEY_VAULTS_SECRET y se guarda en la base de datos; los demás usuarios no la ven.
El administrador las proporciona para todos. Define las claves de los proveedores en las Variable del servicio lobehub y todos los usuarios podrán usarlas directamente, sin poner las suyas:
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
DEEPSEEK_API_KEY=sk-...
Para proveedores o pasarelas compatibles con la API de OpenAI, puedes cambiar la dirección con OPENAI_PROXY_URL, por ejemplo para apuntar a tu propia pasarela New API, Magpie o LiteLLM en https://api.example.com/v1, y luego emitir desde la pasarela una clave aparte para LobeHub con un límite de cuota. Para añadir búsqueda web gratuita en tiempo real a LobeHub, despliega SearXNG en el mismo proyecto; y si también quieres hablar con un asistente desde Telegram o Discord, combínalo con OpenClaw.
Las claves que proporcionas para todos las usará cualquiera que pueda iniciar sesión, y consumirán tu cuota. Antes de definirlas, limita el registro como se explica en la sección anterior.
Sobre los archivos subidos
Las imágenes y los archivos subidos se guardan en el bucket lobe de rustfs. La plantilla configura este bucket como de lectura pública para que el navegador pueda mostrar las imágenes directamente: quien conozca la dirección de un archivo puede abrirlo sin iniciar sesión. Las direcciones incluyen una ruta aleatoria y no se pueden listar ni encontrar en buscadores, pero no subas archivos sensibles si no aceptarías que alguien los abriera con el enlace.
Las imágenes que se envían a los modelos se convierten a base64 y van dentro de la propia petición (la plantilla define LLM_VISION_IMAGE_USE_BASE64=1), así que el proveedor del modelo no necesita poder acceder a tu dominio de archivos.
Copias de seguridad
Hay que hacer copia de seguridad de dos partes:
- postgresql: aquí están las cuentas, las conversaciones, los ajustes y las claves cifradas. Desde su pestaña Copias de seguridad y restauración puedes hacer copias cuando quieras, sin detener nada, y también programar copias automáticas.
- rustfs: los archivos subidos. Es una copia de volumen, que requiere que el proyecto esté detenido, así que conviene hacerla en una ventana de mantenimiento.
Hay algo más que debes guardar por separado: KEY_VAULTS_SECRET, en las variables del servicio lobehub. Al restaurar la base de datos en un despliegue nuevo hay que usar el mismo valor; si no, las claves de API guardadas en la base de datos no se podrán descifrar. No lo cambies después de desplegar.
Una copia de seguridad solo es fiable cuando la has restaurado y comprobado. Para datos importantes, descarga además una copia para conservarla.
Actualizaciones
La plantilla fija lobehub/lobehub:2.3.3. Antes de actualizar, lee las notas de la versión de LobeHub, haz copia de seguridad de postgresql y después cambia la etiqueta de la imagen a la nueva versión en Origen, dentro de los Ajustes del servicio lobehub, y despliega. El esquema de la base de datos se migra automáticamente al arrancar, así que haz siempre la copia de seguridad antes de actualizar.
Preguntas frecuentes
¿Falla la redirección del inicio de sesión al abrir la página?
Comprueba que el dominio asociado a lobehub coincide exactamente con la URL de la aplicación que introdujiste al desplegar, https:// incluido y sin barra al final. Si has cambiado de dominio, actualiza APP_URL (para el almacenamiento de archivos, S3_ENDPOINT) con la nueva dirección en las Variable del servicio lobehub y reinicia.
¿No se pueden subir imágenes?
Lo más probable es que files.example.com no esté asociado al puerto 9000 de rustfs, o que el certificado HTTPS aún no esté activo. Abre ese dominio directamente en el navegador: si conecta (aunque muestre un mensaje de error), está bien asociado.
¿La IA responde vacío o da error?
Primero haz clic en Comprobar en Configuración → Proveedores de IA para confirmar que la clave y el modelo funcionan. Si usas un proxy de terceros, fíjate en si la dirección tiene que terminar en /v1.
¿Qué servidor necesito? La plantilla recomienda reservar 2 GB de memoria para LobeHub; sumando PostgreSQL, Redis y RustFS, te recomendamos un servidor con 4 GB de memoria o más. La inferencia de los modelos se hace en el proveedor y no consume CPU de tu servidor.
Empieza con la plantilla de LobeHub: prepara los dos dominios, limita el registro nada más desplegar y después conecta los modelos.
Esto es lo que leen los agentes de programación, en https://zenavo.app/es-ES/blog/self-host-lobehub.md.
No se pudo cargar el Markdown. Ábrelo directamente: https://zenavo.app/es-ES/blog/self-host-lobehub.md