Docker (Linux distant)
Ces instructions sont conçues pour quelqu'un qui part de zéro pour une installation Docker sur un serveur Ubuntu distant
Pour utiliser ce guide, vous avez besoin d'un ordinateur distant ou d'une VM déployée. Bien que vous puissiez utiliser ce guide avec une installation locale, gardez à l'esprit qu'il a été rédigé à l'origine pour un déploiement dans le cloud.
⚠️ Ce guide a été conçu à l'origine pour Digital Ocean, vous devrez donc peut-être modifier les instructions pour d'autres plateformes, mais le principe général reste inchangé.
Partie I : Installation de Docker et autres dépendances :
Il existe de nombreuses façons d'installer Docker sur les systèmes Linux. Je vais vous guider à travers la meilleure méthode recommandée basée sur ce guide.
Notez que la « meilleure » façon d'installer Docker sur Ubuntu ne signifie pas la « plus rapide » ou la « plus facile ». Cela signifie la meilleure façon de l'installer pour un bénéfice à long terme (c'est-à-dire des mises à jour plus rapides, des correctifs de sécurité, etc.).
1. Mettre à jour et installer les dépendances Docker
Tout d'abord, mettons à jour notre liste de paquets et installons les dépendances Docker requises.
Ensuite, utilisez la commande suivante pour installer les dépendances ou les paquets prérequis.
Notes d'installation
- Saisissez « Y » pour toutes les invites de terminal [Y/n] (oui/non) tout au long de ce guide.
- Après la première invite [Y/n], vous obtiendrez le premier d'une série d'écrans violets demandant de redémarrer les services.
- Chaque fois que cela se produit, vous pouvez appuyer en toute sécurité sur ENTRÉE pour accepter les options par défaut déjà sélectionnées :
- Si à tout moment votre console de droplet se déconnecte, effectuez les étapes suivantes, puis reprenez là où vous vous étiez arrêté :
- Accédez à nouveau à la console comme indiqué ci-dessus
- Passez à l'utilisateur que vous avez créé avec
su - <yourusername>
2. Ajouter le dépôt Docker aux sources APT
Bien qu'il soit plus facile d'installer Docker Engine à partir des dépôts Ubuntu, l'ajout du dépôt officiel Docker vous permet de bénéficier de mises à jour plus rapides. C'est pourquoi il s'agit de la méthode recommandée.
Tout d'abord, récupérons la clé GPG nécessaire pour se connecter au dépôt Docker. Pour ce faire, utilisez la commande suivante.
Ensuite, ajoutez le dépôt à la liste des sources. Bien que vous puissiez également l'ajouter manuellement, la commande ci-dessous le fera automatiquement pour vous.
La commande ci-dessus remplira automatiquement votre nom de code de version (jammy pour 22.04, focal pour 20.04 et bionic pour 18.04).
Enfin, actualisez à nouveau vos paquets.
Si vous oubliez d'ajouter la clé GPG, l'étape ci-dessus échouera avec un message d'erreur. Sinon, passons à l'installation de Docker sur Ubuntu.
3. Installer Docker
Quelle est la différence entre docker.io et docker-ce ?
docker.io est le paquet docker proposé par certaines distributions Linux populaires (par ex. Ubuntu/Debian). docker-ce, en revanche, est le paquet docker provenant du dépôt officiel Docker. Généralement, docker-ce est plus à jour et préférable.
Nous allons maintenant installer docker-ce (et non le paquet docker.io)
L'écran violet signifie appuyer sur ENTRÉE. :)
Recommandé : vous devriez vous assurer que l'utilisateur créé est ajouté au groupe docker pour une utilisation fluide des commandes :
Maintenant, redémarrons le système pour nous assurer que tout fonctionne correctement.
Après le redémarrage, si vous utilisez la console du droplet dans le navigateur, vous pouvez cliquer sur recharger et attendre de revenir dans la console.
Rappel : Chaque fois que vous redémarrez avec sudo reboot, vous devez repasser à l'utilisateur que vous avez configuré précédemment avec su - <yourusername>.
4. Vérifiez que Docker est en cours d'exécution sur Ubuntu
Il existe de nombreuses façons de vérifier si Docker est en cours d'exécution sur Ubuntu. L'une d'elles consiste à utiliser la commande suivante :
Vous devriez voir une sortie indiquant active (running) pour le statut.
Quittez ce journal en appuyant sur CTRL (ou CMD) + C.
5. Installer Docker Compose
Puisque nous avons déjà ajouté le dépôt officiel de Docker à l'étape 2, l'installation de Docker Compose est simple en utilisant le plugin officiel Compose :
Vérifiez l'installation :
Remarque : Docker Compose v2 utilise la commande
docker compose(sans trait d'union) au lieu de l'ancienne commandedocker-compose. Toutes les commandes de ce guide utilisent la syntaxe moderne.
6. Dans le cadre de ce guide, je vous recommande d'avoir git et npm installés :
Bien que cela ne soit pas techniquement requis, disposer de git et npm rendra l'installation/la mise à jour très simple :
Lancez les lignes de la matrice.
Vous pouvez confirmer que ces paquets ont été installés avec succès avec la commande suivante :
Remarque : cela peut installer d'anciennes versions de Node.js et npm. Si vous exécutez LibreChat directement sur l'hôte, utilisez Node.js
v24.16.0avec npmv11.16.0. Pour ce guide basé sur Docker, la version de Node.js de l'hôte n'a pas d'importance car LibreChat s'exécute à l'intérieur de conteneurs.
Ok, maintenant que vous avez configuré le Droplet, vous allez maintenant configurer l'application elle-même
Partie II : Configuration de LibreChat
1. Cloner le dépôt
Depuis la ligne de commande du droplet (en tant qu'utilisateur, pas en tant que root) :
2. Créer les fichiers de configuration et d'environnement LibreChat
Fichier de configuration (librechat.yaml)
Ensuite, nous créons le fichier de configuration LibreChat, aussi appelé librechat.yaml, permettant la personnalisation des paramètres de l'application ainsi que des endpoints personnalisés.
Que vous souhaitiez personnaliser davantage l'application ou non, c'est une étape requise pour le fichier deploy-compose.yml que nous utilisons, nous pouvons donc en créer un avec la valeur minimale nécessaire pour démarrer :
Vous accéderez à l'écran de l'éditeur, et vous pourrez coller ce qui suit :
Quittez l'éditeur avec CTRL + X, puis Y pour enregistrer, et ENTER pour confirmer.
Validation de la configuration
LibreChat se terminera avec une erreur (code de sortie 1) si votre fichier librechat.yaml contient des erreurs de validation. Ce comportement « fail-fast » garantit que les problèmes de configuration sont détectés rapidement lors du déploiement.
Avant le déploiement, validez votre configuration à l'aide du YAML Validator. Si votre pipeline CI/CD démarre le serveur, il échouera rapidement en cas de configuration invalide, empêchant ainsi les déploiements avec des paramètres mal configurés.
Fichier d'environnement (.env)
Les valeurs par défaut sont suffisantes pour vous permettre de démarrer et d'exécuter l'application, vous permettant de fournir vos identifiants depuis l'application web.
Cependant, il est fortement recommandé de modifier les valeurs « secret » par rapport à leurs valeurs par défaut pour une sécurité accrue. Les journaux de démarrage de l'API vous avertiront si vous ne le faites pas.
Pour plus de commodité, vous pouvez exécuter ceci pour générer vos propres valeurs :
https://www.librechat.ai/toolkit/creds_generator
Si vous souhaitez fournir des identifiants pour que tous les utilisateurs de votre instance puissent les utiliser, vous devez les ajouter pendant que vous modifiez encore ce fichier :
Comme précédemment, quittez l'éditeur avec CTRL + X, puis Y pour enregistrer, et ENTER pour confirmer.
C'est tout !
Pour une configuration approfondie, cependant, vous devriez modifier votre fichier .env selon vos besoins, et assurez-vous de lire les commentaires dans le fichier ainsi que les ressources ci-dessous.
C'est une variable d'environnement à garder à l'esprit. Celle-ci désactive les inscriptions externes, au cas où vous souhaiteriez la définir après avoir créé votre compte.
Ressources :
3. Démarrer Docker
Maintenant, nous pouvons démarrer le conteneur de l'application. Pour la première fois, nous utiliserons la commande complète et plus tard, nous pourrons utiliser une commande abrégée.
Vous pouvez fermer le terminal en toute sécurité si vous le souhaitez ; l'application Docker continuera de s'exécuter.
Remarque : ceci utilise un fichier compose spécial optimisé pour cet environnement déployé. Si vous souhaitez plus de configuration ici, vous devriez inspecter les fichiers deploy-compose.yml et Dockerfile.multi pour voir comment ils sont configurés. Nous ne construisons pas l'image dans cet environnement car il n'y a pas assez de RAM pour le faire correctement. Au lieu de cela, nous extrayons la dernière image dev-api de LibreChat, qui est automatiquement construite après chaque push vers main.
Si vous configurez un domaine pour être utilisé avec LibreChat, ce fichier compose utilise le fichier nginx situé dans client/nginx.conf. Vous trouverez des instructions à ce sujet ci-dessous dans la partie V.
4. Une fois l'application lancée, vous pouvez y accéder à l'adresse http://yourserverip
Retournez sur la page du droplet pour obtenir l'adresse IP de votre serveur, copiez-la et collez-la dans votre navigateur !
Inscrivez-vous, connectez-vous et profitez de votre propre instance LibreChat privée et distante :)
Partie III : Mise à jour de LibreChat
J'ai rendu cette étape assez simple, à condition que tout ce qui précède ait été installé avec succès et que vous n'ayez pas modifié l'historique git.
Remarque : Si vous travaillez sur une branche modifiée, avec vos propres commits, par exemple, avec des modifications apportées à client/nginx.conf, vous devriez inspecter config/deployed-update.js pour exécuter certaines commandes manuellement selon vos besoins. Voir la partie V pour en savoir plus à ce sujet.
Exécutez la commande suivante pour une mise à jour automatisée
Arrêt du conteneur Docker
Ceci exécute simplement
docker compose -f ./deploy-compose.yml down
Démarrage du conteneur Docker
Ceci exécute simplement
docker compose -f ./deploy-compose.yml up -d
Vérifier les conteneurs Docker actifs
Vous pouvez effectuer une mise à jour manuellement sans les scripts si vous rencontrez des problèmes.
Partie IV : Modification du fichier NGINX (pour les domaines personnalisés et les configurations avancées)
Si vous souhaitez modifier le fichier NGINX pour une raison quelconque, par exemple pour pointer votre serveur vers un domaine personnalisé, utilisez ce qui suit :
Je ne vous guiderai pas dans la configuration d'un domaine personnalisé ou dans toute autre modification de NGINX ; vous pouvez consulter le guide Cloudflare, le guide Traefik ou le guide NGINX pour vous aider à démarrer avec les domaines personnalisés.
Cependant, je vais vous montrer ce qu'il faut modifier du côté de LibreChat pour un domaine personnalisé avec cette configuration.
Puisque NGINX est utilisé comme proxy pass par défaut, je modifie uniquement ce qui suit :
Remarque : cela fonctionne parce que le fichier deploy-compose.yml utilise NGINX par défaut, contrairement au fichier docker-compose.yml principal. Comme toujours, vous pouvez configurer les fichiers compose selon vos besoins.
Maintenant, validez ces changements sur une branche séparée :
Pour valider des modifications sur une branche git, vous devrez vous identifier sur git. Ces valeurs peuvent être fictives, mais si vous souhaitez qu'elles soient synchronisées avec GitHub, au cas où vous pousseriez cette branche vers un dépôt forké de LibreChat, utilisez votre adresse e-mail GitHub.
La mise à jour sur une branche modifiée fonctionnera un peu différemment maintenant
Vous devriez être prêt !
Avertissement Vous rencontrerez des conflits de fusion si vous modifiez de manière significative la branche, ce qui n'est pas recommandé à moins que vous ne sachiez ce que vous faites.
Notez que toute modification du code dans cet environnement ne sera pas reflétée car le fichier compose extrait les images Docker générées automatiquement par GitHub.
Partie V : Utiliser la dernière version stable au lieu de la branche principale (main)
Par défaut, cette configuration récupérera les dernières mises à jour de la branche principale de LibreChat. Si vous préférez utiliser la dernière version « stable », définie par les latest tags, vous devrez modifier deploy-compose.yml et valider vos changements exactement comme indiqué ci-dessus dans la Partie V. Sachez que vous ne bénéficierez pas des dernières fonctionnalités dès leur sortie si vous faites ce choix.
Modifions deploy-compose.yml :
Remplacez librechat-dev-api par librechat-api :
Préparez (stage) et validez (commit) comme dans la Partie V, et vous êtes prêt !
Que pensez-vous de ce guide ?