Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Descripción general

Introducción al despliegue de LibreChat, ofreciendo una comparación de varios servicios de alojamiento y red

Bienvenido a la guía introductoria para implementar LibreChat. Este documento proporciona una visión general inicial, que incluye una tabla comparativa y referencias a guías detalladas, asegurando una comprensión exhaustiva de las estrategias de implementación.

En esta guía, explorará varias opciones para implementar LibreChat de manera eficiente en una variedad de entornos, personalizados para satisfacer sus requisitos específicos.

Requisitos mínimos

Los requisitos mínimos para ejecutar LibreChat:

  • 1 GiB de RAM
  • 1 vCPU

Nota: Con todo habilitado, podrías considerar aumentar la RAM a 2GB para un funcionamiento más fluido.

Tabla comparativa

Tenga en cuenta que la etiqueta "Recommended" indica que estos servicios están bien documentados, son ampliamente utilizados dentro de la comunidad o han sido implementados con éxito por un número significativo de usuarios. Como resultado, podemos ofrecer un mejor soporte para implementar LibreChat en estos servicios.

Servicios de alojamiento

ServicioDominioProsContrasComentariosRecomendado
DigitalOceanInfraestructura en la nubeInterfaz intuitiva, precios establesHuella de red más pequeñaÓptimo para entusiastas y pequeñas y medianas empresas✅ Bien conocido, confiable
HuggingFaceSoluciones de IA/MLEspecialización en ML/NLPEnfocado en aplicaciones de MLExcelente para iniciativas de IA/ML✅ Gratis
RailwayDespliegue de aplicacionesDespliegue de aplicaciones simplificadoAcceso limitado a contenedoresMuy fácil para empezar✅ Fácil

Servicios de red

ServicioDominioProsContrasComentarios
CloudflareRendimiento web y seguridadCDN global, protección DDoS, facilidad de usoEl soporte al cliente puede ser lentoLa mejor opción para mejoras de seguridad
NginxServidor web, proxy inversoAlto rendimiento, estabilidad, eficiencia de recursosConfiguración manual, extensiones limitadasMuy utilizado para alojamiento debido a su rendimiento
ngrokTúnel seguroFácil de usar, nivel gratuito disponible, túnel seguroRequiere descarga del cliente, enrutamiento de dominio complejoÚtil para pruebas de desarrollo local
TraefikProxy inverso, balanceador de cargaDescubrimiento automático de servicios, soporte nativo para clústeresLa configuración puede ser compleja para principiantesIdeal para microservicios y entornos dinámicos

Cloudflare es conocido por su extensa red que acelera y asegura los servicios de internet, con una interfaz de usuario intuitiva y opciones de seguridad robustas en los planes premium.

Ngrok es elogiado por su simplicidad y su capacidad para exponer rápidamente servidores locales a internet, lo que lo hace ideal para demostraciones y pruebas.

Nginx es un servidor web de alto rendimiento que es eficiente en el manejo de recursos y ofrece estabilidad. Sin embargo, requiere una configuración manual y tiene menos módulos y extensiones en comparación con otros servidores.

Traefik es reconocido por sus actualizaciones de configuración automáticas y su facilidad de despliegue en entornos de contenedores, resultando atractivo para DevOps por su integración con diversos back-ends y su reconfiguración dinámica. Prospera en arquitecturas de microservicios, pero puede presentar desafíos para aquellos que se inician en tecnologías nativas de la nube.

Integración y configuración de proveedores en la nube

El nivel de integración con proveedores de nube varía: desde plataformas que permiten despliegues de LibreChat con un solo clic como Railway, pasando por plataformas que aprovechan herramientas de Infraestructura como Código (IaC) como Azure con Terraform, hasta configuraciones de VM más tradicionales que requieren configuración manual, ejemplificadas por DigitalOcean, Linode y Hetzner.

Consideraciones de seguridad esenciales

Adentrarse en el panorama digital revela numerosas amenazas para la seguridad y la integridad de sus activos en línea. Para salvaguardar su dominio digital, es crucial implementar medidas de seguridad robustas.

Al implementar aplicaciones a escala global, es esencial considerar los siguientes factores clave para garantizar la protección de sus activos digitales:

  1. Cifrado de datos en tránsito: Implementar HTTPS con certificados SSL es vital para proteger sus datos contra ataques de interceptación y escuchas.
  2. Implicaciones de accesibilidad global: Comprenda las implicaciones de implementar su aplicación a nivel global, incluidos los requisitos legales y de cumplimiento que varían según la región.
  3. Configuración segura: Asegúrese de que su aplicación esté configurada de forma segura, incluyendo el uso de protocolos seguros, autenticación segura y mecanismos de autorización.

Si decides utilizar servicios IaaS o de túnel para tu despliegue, es posible que necesites utilizar un proxy inverso como Nginx, Traefik o Cloudflare, por nombrar algunos.

Invertir en las medidas de seguridad adecuadas es crucial para proteger sus activos digitales y garantizar el éxito de su despliegue global.

Elegir el proveedor de nube (p. ej., plataforma)

Elegir un proveedor de nube para la "implementación real" es crucial, ya que afecta el costo, el rendimiento, la seguridad y la escalabilidad. Debe considerar factores como las ubicaciones de los centros de datos, el cumplimiento de los estándares de la industria, la compatibilidad con las herramientas existentes y el soporte al cliente.

Hay muchas opciones que difieren en muchos aspectos. En esta sección puedes encontrar algunas opciones que el equipo y la comunidad utilizan y que pueden ayudarte en tu primer despliegue.

Una vez que obtengas más conocimiento sobre el uso de tu aplicación y tu audiencia, probablemente estarás en condiciones de decidir qué proveedor de nube se adapta mejor a ti a largo plazo.

Como se mencionó, los proveedores de nube / plataformas difieren en muchos aspectos. Para nuestro propósito, podemos asumir que en nuestro contexto sus principales preocupaciones serán la facilidad de uso, la seguridad y el costo (inicial). En caso de que tenga más preocupaciones como el escalado, experiencia previa con alguna de las plataformas o cualquier otra característica específica, entonces probablemente sepa mejor qué plataforma se adapta a usted y puede saltar directamente a la información que está buscando sin seguir ninguna guía específica.

Elegir la opción de despliegue adecuada para sus necesidades

Las opciones de despliegue se enumeran en orden, desde la que requiere mayor esfuerzo y control hasta la que requiere menor esfuerzo y control.

Cada opción de despliegue tiene sus ventajas y desventajas, y la elección depende en última instancia de las necesidades específicas de su proyecto.

1. IaaS (Infraestructura como Servicio)

Infrastructure as a Service (IaaS) se refiere a un modelo de computación en la nube que proporciona recursos informáticos fundamentales, tales como servidores virtuales, red y almacenamiento, bajo un esquema de pago por uso. IaaS permite a las organizaciones alquilar y acceder a estos recursos a través de internet, sin la necesidad de invertir en hardware físico ni mantenerlo. Este modelo proporciona escalabilidad, flexibilidad y ahorro de costos, así como la capacidad de implementar y gestionar recursos de infraestructura de manera rápida y sencilla en respuesta a las necesidades cambiantes del negocio.

  • DigitalOcean: Interfaz fácil de usar con precios predecibles.
  • Linode: Reconocido por su excelente atención al cliente y sus precios directos.

Para IaaS recomendamos Docker Compose

¿Por qué Docker Compose? Recomendamos Docker Compose para despliegues consistentes. Esta guía detalla claramente cada paso para una implementación sencilla: Guía de instalación remota de Docker en Linux

Nota: Hay dos archivos docker compose en el repositorio

  1. docker-compose.yml de Docker compose orientado al desarrollo
  2. deploy-compose.yml de Docker Compose orientado a despliegue

La diferencia principal es que deploy-compose.yml incluye Nginx, lo que hace que su configuración sea interna para Docker.

Consulta la Guía de Nginx para obtener más información

2. IaC (Infraestructura como código)

Infrastructure as Code (IaC) se refiere a la práctica de gestionar y aprovisionar infraestructuras informáticas a través de archivos de definición legibles por máquina, en lugar de la configuración de hardware físico o herramientas de configuración interactivas. Este enfoque promueve la reproducibilidad, la capacidad de eliminación y la escalabilidad, particularmente en entornos de nube modernos. IaC permite la automatización del despliegue, la configuración y la gestión de la infraestructura, lo que resulta en un aprovisionamiento de recursos más rápido, consistente y fiable.

  • Azure: Servicios integrales adecuados para implementaciones a nivel empresarial

Nota: Digital Ocean, Linode y Hetzner también admiten IaC. Aunque no contamos con una guía específica, puedes intentar adaptar la Azure Guide para Terraform y ayudarnos a contribuir a su mejora.

3. PaaS (Plataforma como Servicio)

Platform as a Service (PaaS) es un modelo de computación en la nube que ofrece un entorno de desarrollo y despliegue en la nube. Proporciona una plataforma para que los desarrolladores creen, prueben y desplieguen aplicaciones, sin la necesidad de gestionar la infraestructura subyacente. PaaS normalmente incluye una gama de recursos como bases de datos, middleware y herramientas de desarrollo, lo que permite a los usuarios entregar desde aplicaciones simples basadas en la nube hasta aplicaciones empresariales sofisticadas. Este modelo permite un tiempo de comercialización más rápido, menores costos y un mantenimiento y escalado más sencillos, ya que el proveedor del servicio es responsable de mantener la infraestructura y el cliente puede concentrarse en crear, desplegar y gestionar sus aplicaciones.

  • Hugging Face: Adaptado para proyectos de aprendizaje automático (machine learning) y PLN (NLP).
  • Render: Simplifica las implementaciones con pipelines de CI/CD integrados.
  • Heroku: Óptimo para startups y escenarios de despliegue rápido.

4. Despliegue con un solo clic (PaaS)

  • Railway: Solución popular de despliegue con un solo clic
  • Zeabur: Pioneros en soluciones de despliegue sin esfuerzo con un solo clic.

Otros / Servicios de red

1. Tunneling

Los servicios de túnel le permiten exponer un servidor de desarrollo local a Internet, haciéndolo accesible a través de una URL pública. Esto es particularmente útil para compartir trabajo, realizar pruebas e integrarse con servicios de terceros. Le permite implementar su computadora de desarrollo para pruebas o para una instalación local (on-prem).

  • Ngrok: Facilita el túnel local seguro hacia internet.
  • Cloudflare: Mejora el rendimiento y la seguridad web.

2. Servicio DNS

  • El servicio DNS de Cloudflare se utiliza para gestionar y enrutar el tráfico de internet hacia los destinos correctos, traduciendo nombres de dominio legibles por humanos a direcciones IP legibles por máquinas. Cloudflare es un proveedor de este servicio y ofrece una amplia gama de funciones como seguridad, rendimiento y fiabilidad. El servicio DNS de Cloudflare proporciona una interfaz fácil de usar para gestionar registros DNS y ofrece funciones avanzadas como gestión de tráfico, DNSSEC y protección contra DDoS.

ver también: Guía de Cloudflare

Conclusión

En conclusión, la introducción de nuestra guía de despliegue proporciona una visión general de las diversas opciones y consideraciones para desplegar LibreChat. Es importante evaluar cuidadosamente sus necesidades y elegir el camino que mejor se alinee con las metas y objetivos de su organización. Ya sea que priorice la facilidad de uso, la seguridad o la asequibilidad, nuestra guía proporciona la información necesaria para ayudarle a desplegar LibreChat con éxito y lograr el resultado deseado. Esperamos que esta guía le sirva como un recurso valioso a lo largo de su proceso de despliegue.

Recuerda, nuestra comunidad está aquí para ayudar. Si encuentras desafíos o tienes consultas, nuestro canal de Discord y la discusión de solución de problemas son excelentes recursos para obtener apoyo y asesoramiento.

¿Qué te parece esta guía?