Me complace presentar mi último proyecto: el despliegue totalmente automatizado de LibreChat en AWS EC2, una solución de código abierto disponible en GitLab. Este proyecto ilustra mi experiencia en DevOps y ingeniería en la nube, apoyándose en Terraform para infraestructura como código (IaC), un script User-Data en Bash, una pipeline GitLab CI/CD y una gestión centralizada mediante AWS Systems Manager (SSM). Resultado: una instancia LibreChat operativa en menos de 6 minutos, con costos optimizados, mayor seguridad y accesibilidad máxima.
Este proyecto va más allá de un simple despliegue técnico: encarna una visión de automatización avanzada, pensada tanto para expertos como para principiantes. A continuación explico cómo diseñé esta solución.
1. Una Arquitectura Cloud Optimizada y Reproducible
La infraestructura se basa en Terraform, respetando los principios de Infrastructure as Code para una reproducibilidad y escalabilidad impecables. Los componentes principales incluyen:
- AWS VPC: Una red virtual aislada para asegurar la infraestructura.
- Subredes públicas: Tres subnets para garantizar alta disponibilidad.
- Instancia EC2 (t3a.small): Aloja LibreChat, con opción entre Spot Instances u On-Demand.
- Internet Gateway: Permite una conexión segura vía HTTPS.
- AWS SSM: Centraliza la gestión de las claves API y el seguimiento del despliegue.
El despliegue en EC2 está automatizado mediante un script User-Data en Bash que:
- Instala las dependencias (Docker, Git, Node.js) y actualiza el sistema.
- Clona LibreChat (versión 0.7.7) y configura los archivos
.envylibrechat.yaml. - Recupera las claves API desde SSM de forma segura.
- Configura Nginx con un certificado SSL autofirmado para HTTPS.
Este script, integrado vía Terraform, incluye gestión de errores (set -e, trap 'error_handler' ERR) y registro en /var/log/user-data.log, asegurando un proceso fiable y trazable.
2. Seguridad y Gestión Centralizada de las Claves API
La seguridad es una prioridad. Las claves API (OpenAI, Mistral AI, Anthropic, Google) se almacenan en AWS SSM Parameter Store, se recuperan dinámicamente y nunca están codificadas en el código. Las medidas incluyen:
- HTTPS obligatorio: Certificado autofirmado con redirección de 80 a 443.
- Gestión de errores: Parada del script en caso de problema, con actualización del estado en SSM.
- AWS Session Manager: Acceso a la instancia sin SSH para mayor seguridad.
Este enfoque garantiza una gestión segura y una supervisión en tiempo real.
3. Optimización de Costos con las Spot Instances
Para reducir costes, integré las Spot Instances de AWS, aprovechando recursos infrautilizados. Una variable de Terraform spot_enabled permite elegir entre Spot y On-Demand, haciendo el proyecto accesible para todos. Un script en Python, check_spot.py, ajusta automáticamente los precios en variables.tf para una optimización continua.
4. Una Pipeline CI/CD Completa con GitLab
Una pipeline GitLab CI/CD (definida en gitlab-ci.yml) orquesta el despliegue:
- Terraform: Planifica y aplica los cambios de infraestructura.
- Gestión de instancias: Inicia, detiene y verifica el estado vía SSM.
- Claves API: Añade o elimina las claves de forma segura.
- Inscripciones: Controla los accesos a LibreChat.
El script export.sh simplifica los comandos, ya sea en local o vía CI/CD, ofreciendo una experiencia fluida y profesional.
5. Accesibilidad Global gracias a la Internacionalización
Para alcanzar una audiencia global, el README está traducido a seis idiomas (inglés, alemán, español, japonés, coreano, chino) gracias a mi script de traducción IA. Esto hace el proyecto inclusivo y accesible para todos los usuarios.
6. Desafíos Técnicos Resueltos con Éxito
Adaptar LibreChat 0.7.6 requirió ajustes precisos:
- Soporte Mistral: Actualización de
librechat.yamlparamistral-large-latest. - Nginx: Corrección de las directivas SSL para HTTP/2.
- Spot/On-Demand: Gestión flexible mediante Terraform.
Estos desafíos se superaron con pruebas rigurosas y documentación detallada.
7. Por Qué Este Proyecto Destaca
Este proyecto se distingue por:
- Automatización completa: Todo está scriptado, desde la infraestructura hasta la instalación.
- Optimización: Costes reducidos y mayor rendimiento.
- Seguridad: Gestión centralizada y HTTPS por defecto.
- Accesibilidad: Documentación multilingüe y opciones sencillas.
Refleja mis competencias en Arquitectura AWS, DevOps, cloud y scripting, así como mi pasión por el código abierto.
Descubre y Participa
Explora este proyecto en GitLab, pruébalo y comparte tus comentarios. Tanto si eres experto como principiante, este proyecto es para ti. ¡Contribuye para que crezca!
Contacto: contact@jls42.org
Sobre mí: Soy Julien LS, apasionado por la arquitectura cloud en AWS, DevOps, IA y automatización. Este proyecto forma parte de mi trabajo junto a proyectos como BabelFish AI. Encuéntrame en GitLab.
Este documento ha sido traducido de la versión fr a la lengua es utilizando el modelo gpt-5-mini. Para más información sobre el proceso de traducción, consulte https://gitlab.com/jls42/ai-powered-markdown-translator