Por qué alojar LibreChat en vez de usar ChatGPT Plus
ChatGPT Plus cuesta $20/mes por persona, no permite compartir una clave API, envía cada mensaje a los servidores de OpenAI y le ata a una sola interfaz. LibreChat autoalojado invierte esa relación: usted paga solo los tokens que consume de los proveedores que elige, sus conversaciones permanecen en su MongoDB y puede servir a diez o cien colaboradores desde un único VPS por menos de $15/mes. Las claves API se centralizan en el lado del servidor — sus usuarios nunca las ven. Usted decide qué modelos aparecen en la interfaz, puede desactivar ciertos endpoints para ciertos roles y conserva un registro completo de los intercambios para auditoría o cumplimiento normativo.
ChatGPT Plus vs LibreChat autoalojado
Desplace la tabla
| Criterio | ChatGPT Plus | LibreChat autoalojado |
|---|---|---|
| Precio por usuario | $20/mes | Compartido — coste VPS dividido entre N |
| Modelos disponibles | GPT-4o, o1 (solo OpenAI) | OpenAI, Anthropic, Google, Ollama, Groq… |
| Datos de las conversaciones | Almacenados en OpenAI | Almacenados en su MongoDB |
| Claves API | Gestionadas por OpenAI | Las suyas, nunca expuestas a los usuarios |
| Historial de conversaciones | En OpenAI, exportable | En su base de datos, con copia de seguridad libre |
| RAG sobre sus archivos | Limitado (My Files) | Configurable con su propio vectorstore |
| Personalización de la interfaz | Ninguna | Completa (presets, modelos visibles, roles) |
| Cumplimiento / auditoría | Depende de los términos de OpenAI | Bajo su control total |
Requisitos del servidor
LibreChat se apoya en varios servicios simultáneos: la aplicación principal (Node.js), MongoDB para conversaciones y usuarios, Meilisearch para la búsqueda en el historial y opcionalmente la API RAG para consultar documentos. Para un equipo de 5 a 20 personas que usan API en la nube (OpenAI, Anthropic), un VPS 2 vCPU 4 GB de RAM es suficiente — unos $10 a $15/mes en ServOrbit. Si ejecuta Ollama en el mismo servidor para modelos locales, pase a 4 vCPU 8 GB RAM mínimo. Prevea 20 GB de disco para MongoDB, los índices Meilisearch y las imágenes Docker.
Instalar LibreChat con Docker Compose
Clonar el repositorio oficial
Conéctese por SSH a su VPS y clone el repositorio:
git clone https://github.com/danny-avila/LibreChat && cd LibreChat. Copie el archivo de entorno de ejemplo:cp .env.example .env.Configurar el archivo .env
Abra
.envy rellene las variables esenciales. Genere primero dos secretos aleatorios:openssl rand -hex 32dos veces paraJWT_SECRETyCREDS_KEY. Añada sus claves API:OPENAI_API_KEY=sk-...y/oANTHROPIC_API_KEY=sk-ant-.... Para cerrar el registro público, establezcaALLOW_REGISTRATION=false. Para restringir a dominios de correo específicos, añadaALLOWED_DOMAINS=su-empresa.com.Lanzar la stack
Arranque todos los servicios en modo desacoplado:
docker compose up -d. Compruebe que todo está sano:docker compose ps— todos los servicios deben mostrarrunning (healthy).Crear la primera cuenta de administrador
Abra
http://localhost:3080en un navegador o mediante un túnel SSH. Haga clic en «Crear una cuenta» y regístrese con su correo electrónico profesional. Una vez conectado, vaya al panel de administración para promover su cuenta a admin.Verificar la conectividad con los LLM
En la interfaz, seleccione el modelo
gpt-4o(oclaude-3-5-sonnet) y envíe un mensaje de prueba. Si la respuesta llega correctamente, su clave API está bien reconocida. Ante un error 401, compruebe el valor en.envy reinicie:docker compose restart app.
Configurar varios proveedores LLM en librechat.yaml
El archivo librechat.yaml es el núcleo de la configuración multi-proveedor. Permite activar o desactivar endpoints, nombrar los modelos mostrados a los usuarios, definir parámetros por defecto (temperatura, max tokens) y controlar el acceso por rol. En la raíz del proyecto, copie la plantilla: cp librechat.example.yaml librechat.yaml.
Añadir OpenAI, Anthropic y un endpoint personalizado en librechat.yaml
Activar el endpoint de OpenAI
Bajo la clave
endpoints.openAI, establezcaenabled: truey liste los modelos:models: { default: [gpt-4o, gpt-4o-mini, o1-mini], fetch: false }.Activar el endpoint de Anthropic
Bajo
endpoints.anthropic, establezcaenabled: truey liste:models: { default: [claude-3-5-sonnet-20241022, claude-3-haiku-20240307] }.Añadir Google Gemini
Bajo
endpoints.google, establezcaenabled: truey relleneGOOGLE_KEYen.envcon su clave de API de Google AI Studio. Liste los modelos:gemini-1.5-pro, gemini-1.5-flash.Declarar Groq como endpoint personalizado
Los proveedores compatibles con OpenAI (Groq, Together AI…) se declaran bajo
endpoints.custom. Ejemplo para Groq:name: Groq,apiKey: ${GROQ_API_KEY},baseURL: https://api.groq.com/openai/v1,models: { default: [llama-3.1-70b-versatile] }.Aplicar la configuración
Tras cada modificación de
librechat.yaml, reinicie solo el servicio app:docker compose restart app. Compruebe en la interfaz que los nuevos endpoints aparecen en el selector de modelos.
Añadir Ollama para modelos locales (sin coste de API)
Ollama permite ejecutar modelos de código abierto (Llama 3, Mistral, Gemma, Phi-3…) directamente en su VPS, sin clave API y sin que los datos salgan del servidor. En un VPS 4 vCPU 8 GB RAM, los modelos de 3B a 7B de parámetros responden en pocos segundos.
Desplegar Ollama como servicio Docker y conectarlo a LibreChat
Añadir el servicio Ollama al docker-compose.yml
Abra su
docker-compose.override.yml(créelo si no existe) y añada:services: ollama: image: ollama/ollama:latest, volumes: [ollama:/root/.ollama], ports: ["11434:11434"]. Reinicie la stack:docker compose up -d ollama.Descargar un modelo
Con el contenedor Ollama en marcha, descargue un modelo:
docker compose exec ollama ollama pull llama3.2:3bpara Llama 3.2 3B (~2 GB), oollama pull mistral:7bpara Mistral 7B (~4 GB).Configurar el endpoint de Ollama en librechat.yaml
En
librechat.yaml, bajoendpoints.custom, añada:name: Ollama,apiKey: ollama,baseURL: http://ollama:11434/v1,models: { default: [llama3.2:3b, mistral:7b] }.Probar la inferencia local
En la interfaz de LibreChat, seleccione el endpoint «Ollama» y el modelo
llama3.2:3b. Envíe un mensaje. La respuesta se genera íntegramente en su VPS, sin ninguna llamada de red externa.
Autenticación y gestión de usuarios
LibreChat ofrece varios niveles de autenticación, desde el registro local simple hasta la integración OAuth2 con su proveedor de identidad. Para un equipo, la combinación ideal suele ser: registro cerrado (ALLOW_REGISTRATION=false), cuentas creadas por el administrador y opcionalmente un SSO mediante GitHub, Google o un proveedor OIDC propio (Authentik, Keycloak).
Opciones de autenticación disponibles
- Local (correo electrónico / contraseña): por defecto, funciona sin configuración adicional.
- OAuth2 GitHub:
GITHUB_CLIENT_ID+GITHUB_CLIENT_SECRETen.env. - OAuth2 Google:
GOOGLE_CLIENT_ID+GOOGLE_CLIENT_SECRET, mismo principio. - OIDC genérico: compatible con Authentik, Keycloak, Auth0 — definir
OPENID_CLIENT_IDy demás en.env. - Restricción por dominio de correo:
ALLOWED_DOMAINS=su-empresa.comen.env. - Desactivación del registro público:
ALLOW_REGISTRATION=false— solo el admin puede crear cuentas. - Roles: cada cuenta es
useroadmin; los admins acceden al panel de gestión de usuarios.
RAG con archivos: consultar sus documentos PDF
LibreChat incluye un servicio RAG opcional que permite a los usuarios subir PDFs, archivos de texto o páginas web y consultar su contenido en las conversaciones. Para activarlo, añada a .env: RAG_API_URL=http://rag_api:8000, luego ejecute: docker compose --profile rag up -d. Un VPS de 4 GB de RAM es suficiente para colecciones modestas (< 500 documentos).
Configurar nginx como reverse proxy con HTTPS
Crear el vhost de nginx
En el servidor, cree
/etc/nginx/sites-available/librechatcon:server { listen 80; server_name chat.su-dominio.com; location / { proxy_pass http://localhost:3080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 300s; } }. Active el sitio:ln -s /etc/nginx/sites-available/librechat /etc/nginx/sites-enabled/ && nginx -t && systemctl reload nginx.Obtener un certificado Let's Encrypt con Certbot
Instale Certbot si es necesario y obtenga el certificado:
certbot --nginx -d chat.su-dominio.com. Certbot modifica automáticamente el vhost para redirigir HTTP → HTTPS y configura la renovación automática.Verificar WebSocket y streaming
Abra
https://chat.su-dominio.com, inicie sesión y envíe un mensaje. Compruebe en las DevTools (pestaña Red) que la conexión pasa por WebSocket. Si las respuestas aparecen de golpe en lugar de hacer streaming, es probable que Cloudflare las esté tamponando: active «Disable buffering» en su configuración.Activar las actualizaciones automáticas (opcional)
Para mantener LibreChat actualizado sin intervención manual, cree un cron semanal:
docker compose pull && docker compose up -d --remove-orphans.
Gestionar los costes de LLM con LibreChat
LibreChat no factura los tokens por usted — usted paga directamente a los proveedores con sus propias claves. Algunas buenas prácticas: defina límites de tokens por petición (maxContextTokens) para modelos costosos como GPT-4o o Claude 3.5 Sonnet; ofrezca gpt-4o-mini o claude-3-haiku como modelos por defecto; active Ollama para peticiones de bajo valor (borradores, resúmenes) — coste real: 0 €. Para un equipo de 10 personas, un presupuesto mixto (GPT-4o para casos serios + Ollama para el día a día) suele costar entre $20 y $80/mes en tokens, frente a los $200 de 10 suscripciones a ChatGPT Plus.
LibreChat o AnythingLLM: ¿cuál elegir?
Desplace la tabla
| Criterio | LibreChat | AnythingLLM |
|---|---|---|
| Vocación principal | Interfaz de chat multiproveedor | Motor RAG sobre documentos |
| Multimodelo en una sola interfaz | Excelente (OpenAI, Anthropic, Google, local) | Bueno, pero centrado en un proveedor por workspace |
| RAG sobre documentos | Módulo adicional configurable | Núcleo del producto, listo para usar |
| Gestión multiusuario | Cuentas y roles nativos | Modo multiusuario y espacios aislados |
| Arquitectura de despliegue | Stack de varios contenedores (Mongo, Meili, RAG) | Contenedor único + base vectorial |
| Almacenamiento de los datos | MongoDB autoalojado | Volume storage + LanceDB/Qdrant |
| Caso de uso ideal | Asistente conversacional de equipo | Base de conocimiento consultable |
| Huella de recursos | Más pesada (varios servicios) | Más ligera de entrada |
Despliegue sin nube: 100 % local
Para un despliegue completamente fuera de la nube, combine LibreChat con Ollama en el mismo VPS y desactive todos los endpoints cloud en librechat.yaml. Ningún dato abandonará nunca el servidor. Añada ALLOW_REGISTRATION=false y un SSO OIDC interno (Authentik) para cerrar el perímetro de seguridad. Esta arquitectura es especialmente adecuada para despachos de abogados, equipos médicos o cualquier contexto sometido al RGPD donde los datos no pueden transitar por terceros. El coste total se reduce entonces al VPS — entre $10 y $25/mes según la potencia elegida en ServOrbit.