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

Vue d'ensemble

Introduction au déploiement de LibreChat, offrant une comparaison de divers services d'hébergement et de réseau

Bienvenue dans le guide d'introduction au déploiement de LibreChat. Ce document fournit un aperçu initial, comprenant un tableau comparatif et des références vers des guides détaillés, garantissant une compréhension approfondie des stratégies de déploiement.

Dans ce guide, vous explorerez diverses options pour déployer efficacement LibreChat dans une variété d'environnements, personnalisées pour répondre à vos besoins spécifiques.

Exigences minimales

Les prérequis minimaux pour exécuter LibreChat :

  • 1 Gio de RAM
  • 1 vCPU

Note : Avec tout d'activé, vous pourriez envisager d'augmenter la RAM à 2 Go pour un fonctionnement plus fluide.

Tableau comparatif

Notez que l'étiquette "Recommended" indique que ces services sont bien documentés, largement utilisés au sein de la communauté, ou ont été déployés avec succès par un nombre important d'utilisateurs. Par conséquent, nous sommes en mesure d'offrir un meilleur support pour le déploiement de LibreChat sur ces services.

Services d'hébergement

ServiceDomaineAvantagesInconvénientsCommentairesRecommandé
DigitalOceanInfrastructure CloudInterface intuitive, tarification stableEmpreinte réseau plus petiteOptimal pour les passionnés et les petites/moyennes entreprises✅ Bien connu, fiable
HuggingFaceSolutions IA/MLSpécialisation ML/NLPAxé sur les applications MLExcellent pour les initiatives IA/ML✅ Gratuit
RailwayDéploiement d'applicationsDéploiement d'applications simplifiéAccès limité aux conteneursTrès facile pour démarrer✅ Facile

Services réseau

ServiceDomaineAvantagesInconvénientsCommentaires
CloudflarePerformance Web & SécuritéCDN mondial, protection DDoS, facilité d'utilisationLe support client peut être lentPremier choix pour les améliorations de sécurité
NginxServeur Web, Proxy inverseHaute performance, stabilité, efficacité des ressourcesConfiguration manuelle, extensions limitéesLargement utilisé pour l'hébergement grâce à ses performances
ngrokTunneling sécuriséFacile à utiliser, offre gratuite disponible, tunneling sécuriséNécessite le téléchargement d'un client, routage de domaine complexePratique pour les tests de développement local
TraefikProxy inverse, Équilibreur de chargeDécouverte automatique de services, support natif des clustersLa configuration peut être complexe pour les débutantsIdéal pour les microservices et les environnements dynamiques

Cloudflare est reconnu pour son vaste réseau qui accélère et sécurise les services Internet, avec une interface utilisateur intuitive et des options de sécurité robustes sur les plans premium.

Ngrok est apprécié pour sa simplicité et sa capacité à exposer rapidement des serveurs locaux sur Internet, ce qui le rend idéal pour les démonstrations et les tests.

Nginx est un serveur web haute performance, efficace dans la gestion des ressources et offrant une grande stabilité. Il nécessite cependant une configuration manuelle et dispose de moins de modules et d'extensions par rapport à d'autres serveurs.

Traefik est réputé pour ses mises à jour de configuration automatiques et sa facilité de déploiement dans des environnements de conteneurs, séduisant les équipes DevOps par son intégration avec divers back-ends et sa reconfiguration dynamique. Il excelle dans les architectures de microservices, mais peut poser des défis aux personnes novices en technologies cloud-native.

Intégration et configuration des fournisseurs cloud

Le niveau d'intégration avec les fournisseurs cloud varie : des plateformes permettant des déploiements LibreChat en un clic comme Railway, aux plateformes exploitant des outils d'Infrastructure as Code tels qu'Azure avec Terraform, jusqu'aux configurations de VM plus traditionnelles nécessitant une configuration manuelle, illustrées par DigitalOcean, Linode et Hetzner.

Considérations essentielles de sécurité

S'aventurer dans le paysage numérique révèle de nombreuses menaces pour la sécurité et l'intégrité de vos actifs en ligne. Pour protéger votre domaine numérique, il est crucial de mettre en œuvre des mesures de sécurité robustes.

Lors du déploiement d'applications à l'échelle mondiale, il est essentiel de prendre en compte les facteurs clés suivants pour assurer la protection de vos actifs numériques :

  1. Chiffrement des données en transit : La mise en œuvre du protocole HTTPS avec des certificats SSL est essentielle pour protéger vos données contre les interceptions et les attaques par écoute clandestine.
  2. Implications de l'accessibilité mondiale : Comprenez les implications du déploiement de votre application à l'échelle mondiale, y compris les exigences légales et de conformité qui varient selon les régions.
  3. Configuration sécurisée : Assurez-vous que votre application est configurée de manière sécurisée, notamment par l'utilisation de protocoles sécurisés, d'une authentification sécurisée et de mécanismes d'autorisation.

Si vous choisissez d'utiliser des services IaaS ou de tunnel pour votre déploiement, vous devrez peut-être utiliser un proxy inverse tel que Nginx, Traefik ou Cloudflare, pour n'en citer que quelques-uns.

Investir dans les mesures de sécurité appropriées est crucial pour protéger vos actifs numériques et assurer le succès de votre déploiement mondial.

Choisir le fournisseur Cloud (par ex. plateforme)

Le choix d'un fournisseur cloud pour le « déploiement réel » est crucial car il influe sur les coûts, les performances, la sécurité et l'évolutivité. Vous devez prendre en compte des facteurs tels que l'emplacement des centres de données, la conformité aux normes de l'industrie, la compatibilité avec les outils existants et le support client.

Il existe de nombreuses options qui diffèrent sur plusieurs aspects. Dans cette section, vous trouverez certaines options utilisées par l'équipe et la communauté qui peuvent vous aider lors de votre premier déploiement.

Une fois que vous aurez acquis plus de connaissances sur l'utilisation de votre application et sur votre audience, vous serez probablement en mesure de décider quel fournisseur cloud vous convient le mieux sur le long terme.

Comme indiqué, les fournisseurs de cloud / plateformes diffèrent sur de nombreux aspects. Pour notre objectif, nous pouvons supposer que dans notre contexte, vos préoccupations principales seront la facilité d'utilisation, la sécurité et le coût (initial). Si vous avez d'autres préoccupations comme la mise à l'échelle, une expérience préalable avec l'une des plateformes ou toute autre fonctionnalité spécifique, alors vous savez probablement mieux quelle plateforme vous convient et vous pouvez passer directement aux informations que vous recherchez sans suivre de guide spécifique.

Choisir la bonne option de déploiement pour vos besoins

Les options de déploiement sont listées par ordre décroissant d'effort et de contrôle requis.

Chaque option de déploiement présente ses avantages et ses inconvénients, et le choix dépend en fin de compte des besoins spécifiques de votre projet.

1. IaaS (Infrastructure as a Service)

L'Infrastructure as a Service (IaaS) fait référence à un modèle de cloud computing qui fournit des ressources informatiques fondamentales, telles que des serveurs virtuels, du réseau et du stockage, sur une base de paiement à l'utilisation. L'IaaS permet aux organisations de louer et d'accéder à ces ressources via Internet, sans avoir besoin d'investir dans du matériel physique ni de le maintenir. Ce modèle offre évolutivité, flexibilité et économies de coûts, ainsi que la capacité de déployer et de gérer rapidement et facilement des ressources d'infrastructure en réponse à l'évolution des besoins de l'entreprise.

  • DigitalOcean : Interface conviviale avec une tarification prévisible.
  • Linode : Réputé pour son excellent support client et sa tarification transparente.

Pour IaaS, nous recommandons Docker Compose

Pourquoi Docker Compose ? Nous recommandons Docker Compose pour des déploiements cohérents. Ce guide décrit clairement chaque étape pour un déploiement facile : Guide d'installation à distance Docker - Linux

Note : Il y a deux fichiers docker compose dans le dépôt

  1. docker-compose.yml pour le développement avec Docker
  2. Déploiement orienté docker compose deploy-compose.yml

La principale différence est que deploy-compose.yml inclut Nginx, rendant sa configuration interne à Docker.

Consultez le Nginx Guide pour plus d'informations

2. IaC (Infrastructure as Code)

L'Infrastructure as Code (IaC) fait référence à la pratique consistant à gérer et à provisionner des infrastructures informatiques via des fichiers de définition lisibles par machine, par opposition à la configuration matérielle physique ou aux outils de configuration interactifs. Cette approche favorise la reproductibilité, la possibilité d'élimination et l'évolutivité, en particulier dans les environnements cloud modernes. L'IaC permet l'automatisation du déploiement, de la configuration et de la gestion de l'infrastructure, ce qui se traduit par un provisionnement des ressources plus rapide, plus cohérent et plus fiable.

  • Azure : Services complets adaptés aux déploiements de niveau entreprise

Note : Digital Ocean, Linode et Hetzner prennent également en charge l'IaC. Bien que nous ne disposions pas de guide spécifique, vous pouvez essayer d'adapter le Azure Guide pour Terraform et nous aider à contribuer à son amélioration.

3. PaaS (Platform as a Service)

Le Platform as a Service (PaaS) est un modèle de cloud computing qui offre un environnement de développement et de déploiement dans le cloud. Il fournit une plateforme permettant aux développeurs de créer, tester et déployer des applications, sans avoir à gérer l'infrastructure sous-jacente. Le PaaS comprend généralement une gamme de ressources telles que des bases de données, des intergiciels (middleware) et des outils de développement, permettant aux utilisateurs de livrer aussi bien des applications cloud simples que des applications d'entreprise sophistiquées. Ce modèle permet une mise sur le marché plus rapide, des coûts réduits, ainsi qu'une maintenance et une mise à l'échelle facilitées, car le fournisseur de services est responsable de la maintenance de l'infrastructure, tandis que le client peut se concentrer sur la création, le déploiement et la gestion de ses applications.

  • Hugging Face : Conçu pour les projets d'apprentissage automatique et de NLP.
  • Render : Simplifie les déploiements avec des pipelines CI/CD intégrés.
  • Heroku : Optimal pour les startups et les scénarios de déploiement rapide.

4. Déploiement en un clic (PaaS)

  • Railway : Solution de déploiement en un clic populaire
  • Zeabur : Pionnier des solutions de déploiement en un clic sans effort.

Autres / Services réseau

1. Tunneling

Les services de tunnel vous permettent d'exposer un serveur de développement local sur Internet, le rendant accessible via une URL publique. Cela est particulièrement utile pour partager votre travail, effectuer des tests et intégrer des services tiers. Cela vous permet de déployer votre ordinateur de développement pour des tests ou pour une installation sur site (on-prem).

  • Ngrok : Facilite la création de tunnels locaux sécurisés vers Internet.
  • Cloudflare : Améliore les performances et la sécurité du web.

2. Service DNS

  • Le service DNS de Cloudflare est utilisé pour gérer et acheminer le trafic internet vers les destinations appropriées, en traduisant les noms de domaine lisibles par l'homme en adresses IP lisibles par la machine. Cloudflare est un fournisseur de ce service, offrant une large gamme de fonctionnalités telles que la sécurité, la performance et la fiabilité. Le service DNS de Cloudflare fournit une interface conviviale pour la gestion des enregistrements DNS et propose des fonctionnalités avancées telles que la gestion du trafic, DNSSEC et la protection contre les attaques DDoS.

voir aussi : Guide Cloudflare

Conclusion

En conclusion, l'introduction de notre guide de déploiement offre un aperçu des diverses options et considérations pour déployer LibreChat. Il est important d'évaluer soigneusement vos besoins et de choisir la voie qui correspond le mieux aux buts et objectifs de votre organisation. Que vous privilégiez la facilité d'utilisation, la sécurité ou l'abordabilité, notre guide fournit les informations nécessaires pour vous aider à déployer LibreChat avec succès et à atteindre le résultat souhaité. Nous espérons que ce guide sera une ressource précieuse pour vous tout au long de votre parcours de déploiement.

N'oubliez pas que notre communauté est là pour vous aider. Si vous rencontrez des difficultés ou avez des questions, notre canal Discord et notre discussion de dépannage sont d'excellentes ressources pour obtenir du soutien et des conseils.

Que pensez-vous de ce guide ?