Docker (Linux remoto)
Estas instrucciones están diseñadas para alguien que comienza desde cero para una instalación de Docker en un servidor Ubuntu remoto
Para utilizar esta guía, necesitas una computadora remota o una VM desplegada. Aunque puedes usar esta guía con una instalación local, ten en cuenta que fue escrita originalmente para despliegue en la nube.
⚠️ Esta guía fue diseñada originalmente para Digital Ocean, por lo que es posible que deba modificar las instrucciones para otras plataformas, pero la idea principal permanece sin cambios.
Parte I: Instalación de Docker y otras dependencias:
Existen muchas formas de configurar Docker en sistemas Linux. Te guiaré a través de la mejor y más recomendada forma basada en esta guía.
Tenga en cuenta que la "mejor" forma para la instalación de Docker en Ubuntu no significa la "más rápida" o la "más fácil". Significa la mejor manera de instalarlo para obtener beneficios a largo plazo (es decir, actualizaciones más rápidas, parches de seguridad, etc.).
1. Actualizar e instalar dependencias de Docker
Primero, actualicemos nuestra lista de paquetes e instalemos las dependencias de Docker requeridas.
Luego, utiliza el siguiente comando para instalar las dependencias o los paquetes de requisitos previos.
Notas de instalación
- Introduzca "Y" para todos los avisos de terminal [Y/n] (sí/no) a lo largo de toda esta guía.
- Después del primer prompt [Y/n], obtendrás la primera de unas cuantas pantallas moradas solicitando reiniciar los servicios.
- Cada vez que esto suceda, puede presionar ENTER de forma segura para seleccionar las opciones predeterminadas que ya están seleccionadas:
- Si en algún momento la consola de tu droplet se desconecta, haz lo siguiente y luego continúa desde donde te quedaste:
- Acceda a la consola de nuevo como se indica arriba
- Cambia al usuario que creaste con
su - <yourusername>
2. Agregar el repositorio de Docker a las fuentes de APT
Aunque instalar Docker Engine desde los repositorios de Ubuntu es más sencillo, añadir el repositorio oficial de docker le proporciona actualizaciones más rápidas. Por esta razón, este es el método recomendado.
Primero, obtengamos la clave GPG que es necesaria para conectarse al repositorio de Docker. Para ello, utilice el siguiente comando.
A continuación, añade el repositorio a la lista de fuentes. Aunque también puedes añadirlo manualmente, el siguiente comando lo hará automáticamente por ti.
El comando anterior completará automáticamente su nombre en clave de lanzamiento (jammy para 22.04, focal para 20.04 y bionic para 18.04).
Finalmente, actualiza tus paquetes de nuevo.
Si olvidas añadir la clave GPG, el paso anterior fallará con un mensaje de error. De lo contrario, continuemos con la instalación de Docker en Ubuntu.
3. Instalar Docker
¿Cuál es la diferencia entre docker.io y docker-ce?
docker.io es el paquete de docker que ofrecen algunas distribuciones populares de Linux (por ejemplo, Ubuntu/Debian). docker-ce, por otro lado, es el paquete de docker del repositorio oficial de Docker. Por lo general, docker-ce está más actualizado y es el preferido.
Ahora instalaremos docker-ce (y no el paquete docker.io)
La pantalla morada significa presionar ENTER. :)
Recomendado: debes asegurarte de que el usuario creado se añada al grupo docker para un uso fluido de los comandos:
Ahora reiniciemos el sistema para asegurarnos de que todo esté bien.
Después de reiniciar, si utiliza la consola del droplet del navegador, puede hacer clic en recargar y esperar para volver a entrar en la consola.
Recordatorio: Cada vez que reinicie con sudo reboot, debe cambiar al usuario que configuró anteriormente con su - <yourusername>.
4. Verificar que Docker se está ejecutando en Ubuntu
Hay muchas formas de comprobar si Docker se está ejecutando en Ubuntu. Una forma es utilizar el siguiente comando:
Deberías ver una salida que indique active (running) en el estado.
Salga de este registro presionando CTRL (o CMD) + C.
5. Instalar Docker Compose
Como ya añadimos el repositorio oficial de Docker en el paso 2, instalar Docker Compose es sencillo utilizando el plugin oficial de Compose:
Verificar la instalación:
Nota: Docker Compose v2 utiliza el comando
docker compose(sin guion) en lugar del antiguodocker-compose. Todos los comandos en esta guía utilizan la sintaxis moderna.
6. Como parte de esta guía, te recomiendo tener instalados git y npm:
Aunque no es técnicamente obligatorio, tener git y npm hará que la instalación/actualización sea muy sencilla:
Prepara las líneas de la matriz.
Puedes confirmar que estos paquetes se instalaron correctamente con lo siguiente:
Nota: esto puede instalar versiones antiguas de Node.js y npm. Si ejecuta LibreChat directamente en el host, utilice Node.js
v24.16.0con npmv11.16.0. Para esta guía basada en Docker, la versión de Node.js del host no importa porque LibreChat se ejecuta dentro de contenedores.
Ok, ahora que has configurado el Droplet, procederás a configurar la aplicación en sí
Parte II: Configuración de LibreChat
1. Clonar el repositorio
Desde la línea de comandos del droplet (como tu usuario, no como root):
2. Crear los archivos de configuración y entorno de LibreChat
Archivo de configuración (librechat.yaml)
A continuación, creamos el archivo de configuración de LibreChat, también conocido como librechat.yaml, que permite la personalización de los ajustes de la aplicación, así como endpoints personalizados.
Independientemente de si desea personalizar la aplicación aún más, es necesario para el archivo deploy-compose.yml que estamos utilizando, por lo que podemos crear uno con el valor mínimo indispensable para comenzar:
Entrarás en la pantalla del editor y podrás pegar lo siguiente:
Salga del editor con CTRL + X, luego Y para guardar y ENTER para confirmar.
Validación de configuración
LibreChat se cerrará con un error (código de salida 1) si su archivo librechat.yaml contiene errores de validación. Este comportamiento de fallo rápido (fail-fast) asegura que los problemas de configuración se detecten a tiempo durante el despliegue.
Antes de implementar, valide su configuración utilizando el YAML Validator. Si su pipeline de CI/CD inicia el servidor, este fallará rápidamente ante una configuración no válida, evitando implementaciones con ajustes mal configurados.
Archivo de entorno (.env)
Los valores predeterminados son suficientes para comenzar y ejecutar la aplicación, lo que le permite proporcionar sus credenciales desde la aplicación web.
Sin embargo, es altamente recomendable que ajustes los valores "secret" de sus valores predeterminados para mayor seguridad. Los registros de inicio de la API te advertirán si no lo haces.
Para mayor comodidad, puedes ejecutar esto para generar tus propios valores:
https://www.librechat.ai/toolkit/creds_generator
Si deseas proporcionar credenciales para que todos los usuarios de tu instancia las utilicen, debes añadirlas mientras aún estás editando este archivo:
Como antes, salga del editor con CTRL + X, luego Y para guardar y ENTER para confirmar.
¡Eso es todo!
Para una configuración exhaustiva, sin embargo, debes editar tu archivo .env según sea necesario, y asegúrate de leer los comentarios en el archivo y los recursos a continuación.
Esta es una de esas variables de entorno que hay que tener en cuenta. Esto deshabilita los registros externos, en caso de que desees configurarlo después de haber creado tu cuenta.
Recursos:
3. Iniciar Docker
Ahora podemos iniciar el contenedor de la aplicación. Por primera vez, usaremos el comando completo y más adelante podremos usar un comando abreviado.
Es seguro cerrar la terminal si lo desea; la aplicación Docker continuará ejecutándose.
Nota: esto utiliza un archivo compose especial optimizado para este entorno desplegado. Si desea más configuración aquí, debe inspeccionar los archivos deploy-compose.yml y Dockerfile.multi para ver cómo están configurados. No estamos compilando la imagen en este entorno, ya que no hay suficiente RAM para hacerlo correctamente. En su lugar, extraemos la última imagen dev-api de LibreChat, la cual se compila automáticamente después de cada push a main.
Si está configurando un dominio para usarlo con LibreChat, este archivo compose utiliza el archivo nginx ubicado en client/nginx.conf. A continuación, en la parte V, encontrará las instrucciones al respecto.
4. Una vez que la aplicación esté en ejecución, puede acceder a ella en http://yourserverip
Regresa a la página del droplet para obtener la IP de tu servidor, cópiala y pégala en tu navegador.
Regístrate, inicia sesión y disfruta de tu propio LibreChat alojado de forma privada y remota :)
Parte III: Actualización de LibreChat
He hecho que este paso sea bastante sencillo, siempre y cuando todo lo anterior se haya instalado correctamente y no hayas editado el historial de git.
Nota: Si está trabajando en una rama editada, con sus propias confirmaciones (commits), por ejemplo, con ediciones en client/nginx.conf, debe inspeccionar config/deployed-update.js para ejecutar algunos de los comandos manualmente según lo considere oportuno. Consulte la parte V para obtener más información al respecto.
Ejecute lo siguiente para una actualización automática
Detener el contenedor Docker
Esto simplemente ejecuta
docker compose -f ./deploy-compose.yml down
Iniciando el contenedor Docker
Esto simplemente ejecuta
docker compose -f ./deploy-compose.yml up -d
Comprobar contenedores Docker activos
Puede actualizar manualmente sin los scripts si encuentra problemas.
Parte IV: Edición del archivo NGINX (para dominios personalizados y configuraciones avanzadas)
En caso de que desee editar el archivo NGINX por cualquier motivo, como apuntar su servidor a un dominio personalizado, utilice lo siguiente:
No te guiaré a través de la configuración de dominios personalizados ni de ningún otro cambio en NGINX; puedes consultar la guía de Cloudflare, la guía de Traefik o la guía de NGINX para comenzar con dominios personalizados.
Sin embargo, te mostraré qué editar en el lado de LibreChat para un dominio personalizado con esta configuración.
Dado que NGINX se utiliza como proxy pass de forma predeterminada, solo edito lo siguiente:
Nota: esto funciona porque el archivo deploy-compose.yml utiliza NGINX de forma predeterminada, a diferencia del archivo docker-compose.yml principal. Como siempre, puede configurar los archivos compose según lo necesite.
Ahora confirma estos cambios en una rama separada:
Para confirmar cambios en una rama de git, necesitará identificarse en git. Estos pueden ser valores ficticios, pero si desea que se sincronicen con GitHub, en caso de que envíe esta rama a un repositorio bifurcado de LibreChat, utilice su correo electrónico de GitHub.
La actualización en una rama editada funcionará de manera un poco diferente ahora
¡Ya debería estar todo listo!
Advertencia Experimentará conflictos de fusión si comienza a editar significativamente la rama y esto no se recomienda a menos que sepa lo que está haciendo
Tenga en cuenta que cualquier cambio en el código en este entorno no se verá reflejado porque el archivo compose está extrayendo las imágenes de Docker creadas automáticamente por GitHub.
Parte V: Utilice la última versión estable en lugar de la última rama principal
De forma predeterminada, esta configuración obtendrá las últimas actualizaciones de la rama principal de LibreChat. Si prefiere tener la última versión "estable", la cual se define mediante los latest tags, deberá editar deploy-compose.yml y confirmar sus cambios exactamente como se indica arriba en la Parte V. Tenga en cuenta que, si lo hace, no se beneficiará de las funciones más recientes tan pronto como estén disponibles.
Editemos deploy-compose.yml:
Cambie librechat-dev-api a librechat-api:
Prepara (stage) y confirma (commit) los cambios como en la Parte V, ¡y listo!
¿Qué te parece esta guía?