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

Przegląd

Wprowadzenie do wdrażania LibreChat, oferujące porównanie różnych usług hostingowych i sieciowych

Witamy w przewodniku wprowadzającym do wdrażania LibreChat. Niniejszy dokument zawiera wstępny przegląd, tabelę porównawczą oraz odniesienia do szczegółowych przewodników, zapewniając dokładne zrozumienie strategii wdrażania.

W tym przewodniku poznasz różne opcje wydajnego wdrażania LibreChat w wielu środowiskach, dostosowane do Twoich konkretnych wymagań.

Wymagania minimalne

Minimalne wymagania do uruchomienia LibreChat:

  • 1 GiB pamięci RAM
  • 1 vCPU

Uwaga: Przy włączonych wszystkich funkcjach warto rozważyć zwiększenie pamięci RAM do 2 GB dla płynniejszego działania.

Tabela porównawcza

Pamiętaj, że etykieta "Recommended" oznacza, iż te usługi są dobrze udokumentowane, szeroko stosowane w społeczności lub zostały pomyślnie wdrożone przez znaczną liczbę użytkowników. W rezultacie jesteśmy w stanie zaoferować lepsze wsparcie przy wdrażaniu LibreChat na tych usługach.

Usługi hostingowe

UsługaDomenaZaletyWadyKomentarzeRekomendacja
DigitalOceanInfrastruktura chmurowaIntuicyjny interfejs, stabilne cenyMniejszy zasięg sieciOptymalne dla entuzjastów oraz małych i średnich firm✅ Znane, niezawodne
HuggingFaceRozwiązania AI/MLSpecjalizacja w ML/NLPSkupienie na aplikacjach MLDoskonałe dla inicjatyw AI/ML✅ Darmowe
RailwayWdrażanie aplikacjiUproszczone wdrażanie aplikacjiOgraniczony dostęp do kontenerówBardzo łatwe rozpoczęcie pracy✅ Łatwe

Usługi sieciowe

UsługaDomenaZaletyWadyKomentarze
CloudflareWydajność i bezpieczeństwo sieciGlobalna sieć CDN, ochrona DDoS, łatwość obsługiObsługa klienta bywa powolnaNajlepszy wybór dla zwiększenia bezpieczeństwa
NginxSerwer WWW, Reverse ProxyWysoka wydajność, stabilność, efektywność zasobówRęczna konfiguracja, ograniczone rozszerzeniaPowszechnie stosowany do hostingu ze względu na wydajność
ngrokBezpieczne tunelowanieŁatwość obsługi, dostępny darmowy plan, bezpieczne tunelowanieWymaga pobrania klienta, złożone trasowanie domenPrzydatny do testów lokalnego środowiska programistycznego
TraefikReverse Proxy, Load BalancerAutomatyczne wykrywanie usług, natywna obsługa klastrówKonfiguracja może być złożona dla początkującychIdealny dla mikrousług i dynamicznych środowisk

Cloudflare jest znany ze swojej rozległej sieci, która przyspiesza i zabezpiecza usługi internetowe, oferując intuicyjny interfejs użytkownika oraz zaawansowane opcje bezpieczeństwa w planach premium.

Ngrok jest ceniony za swoją prostotę oraz możliwość szybkiego udostępniania lokalnych serwerów w internecie, co czyni go idealnym rozwiązaniem do prezentacji i testów.

Nginx to wysokowydajny serwer WWW, który jest efektywny w zarządzaniu zasobami i oferuje stabilność. Wymaga on jednak ręcznej konfiguracji i posiada mniej modułów oraz rozszerzeń w porównaniu do innych serwerów.

Traefik słynie z automatycznych aktualizacji konfiguracji i łatwości wdrażania w środowiskach kontenerowych, co czyni go atrakcyjnym dla specjalistów DevOps ze względu na integrację z różnymi backendami i dynamiczną rekonfigurację. Świetnie sprawdza się w architekturach mikrousług, ale może stanowić wyzwanie dla osób początkujących w technologiach cloud-native.

Integracja i konfiguracja dostawców chmurowych

Poziom integracji z dostawcami chmurowymi jest zróżnicowany: od platform umożliwiających wdrożenie LibreChat jednym kliknięciem, takich jak Railway, przez platformy wykorzystujące narzędzia typu Infrastructure as Code, jak Azure z Terraform, aż po bardziej tradycyjne konfiguracje maszyn wirtualnych wymagające ręcznej konfiguracji, których przykładami są DigitalOcean, Linode oraz Hetzner.

Podstawowe kwestie dotyczące bezpieczeństwa

Wkraczanie w cyfrowy krajobraz ujawnia liczne zagrożenia dla bezpieczeństwa i integralności Twoich zasobów online. Aby chronić swoją cyfrową domenę, kluczowe jest wdrożenie solidnych środków bezpieczeństwa.

Podczas wdrażania aplikacji na skalę globalną należy wziąć pod uwagę następujące kluczowe czynniki, aby zapewnić ochronę swoich zasobów cyfrowych:

  1. Szyfrowanie danych w trakcie przesyłania: Wdrożenie protokołu HTTPS z certyfikatami SSL jest kluczowe dla ochrony danych przed przechwyceniem i atakami typu podsłuch.
  2. Globalne implikacje dostępności: Zrozum implikacje wdrażania swojej aplikacji na skalę globalną, w tym wymogi prawne i zgodności, które różnią się w zależności od regionu.
  3. Bezpieczna konfiguracja: Upewnij się, że Twoja aplikacja jest skonfigurowana w sposób bezpieczny, w tym poprzez stosowanie bezpiecznych protokołów oraz mechanizmów uwierzytelniania i autoryzacji.

Jeśli zdecydujesz się na użycie usług IaaS lub Tunnel do swojego wdrożenia, być może będziesz musiał skorzystać z odwrotnego proxy, takiego jak Nginx, Traefik lub Cloudflare, żeby wymienić tylko kilka z nich.

Inwestowanie w odpowiednie środki bezpieczeństwa ma kluczowe znaczenie dla ochrony Twoich zasobów cyfrowych i zapewnienia sukcesu Twojego globalnego wdrożenia.

Wybór dostawcy chmury (np. platformy)

Wybór dostawcy chmury dla „rzeczywistego wdrożenia” ma kluczowe znaczenie, ponieważ wpływa na koszty, wydajność, bezpieczeństwo i skalowalność. Należy wziąć pod uwagę takie czynniki, jak lokalizacje centrów danych, zgodność ze standardami branżowymi, kompatybilność z istniejącymi narzędziami oraz wsparcie techniczne.

Istnieje wiele opcji, które różnią się pod wieloma względami. W tej sekcji znajdziesz kilka opcji używanych przez zespół i społeczność, które mogą pomóc Ci w pierwszym wdrożeniu.

Gdy zdobędziesz większą wiedzę na temat użytkowania swojej aplikacji i odbiorców, prawdopodobnie będziesz w stanie zdecydować, który dostawca chmury najlepiej odpowiada Twoim potrzebom w dłuższej perspektywie.

Jak wspomniano, dostawcy chmurowi / platformy różnią się pod wieloma względami. Na nasze potrzeby możemy przyjąć, że w tym kontekście głównymi obawami będą łatwość obsługi, bezpieczeństwo oraz (początkowy) koszt. Jeśli masz więcej obaw, takich jak skalowanie, wcześniejsze doświadczenie z którąkolwiek z platform lub jakiekolwiek inne specyficzne funkcje, prawdopodobnie lepiej wiesz, która platforma Ci odpowiada i możesz przejść bezpośrednio do informacji, których szukasz, bez podążania za konkretnym przewodnikiem.

Wybór odpowiedniej opcji wdrożenia dla Twoich potrzeb

Opcje wdrożenia zostały wymienione w kolejności od wymagających największego nakładu pracy i zapewniających największą kontrolę, do wymagających najmniejszego nakładu pracy i zapewniających najmniejszą kontrolę.

Każda opcja wdrożenia ma swoje zalety i wady, a wybór ostatecznie zależy od konkretnych potrzeb Twojego projektu.

1. IaaS (Infrastructure as a Service)

Infrastructure as a Service (IaaS) odnosi się do modelu przetwarzania w chmurze, który zapewnia podstawowe zasoby obliczeniowe, takie jak serwery wirtualne, sieć i pamięć masowa, w modelu płatności za użycie. IaaS umożliwia organizacjom wynajmowanie i uzyskiwanie dostępu do tych zasobów przez internet, bez konieczności inwestowania w fizyczny sprzęt i jego utrzymywania. Model ten zapewnia skalowalność, elastyczność i oszczędności kosztów, a także możliwość szybkiego i łatwego wdrażania oraz zarządzania zasobami infrastrukturalnymi w odpowiedzi na zmieniające się potrzeby biznesowe.

  • DigitalOcean: Przyjazny dla użytkownika interfejs z przewidywalnymi cenami.
  • Linode: Znany z doskonałej obsługi klienta i przejrzystego cennika.

W przypadku IaaS zalecamy Docker Compose

Dlaczego Docker Compose? Zalecamy Docker Compose w celu zapewnienia spójnych wdrożeń. Ten przewodnik jasno opisuje każdy krok, ułatwiając wdrożenie: Docker - przewodnik instalacji zdalnej w systemie Linux

Uwaga: W repozytorium znajdują się dwa pliki docker compose

  1. Zorientowany na programowanie plik docker compose docker-compose.yml
  2. deploy-compose.yml zorientowany na wdrożenie Docker Compose

Główna różnica polega na tym, że deploy-compose.yml zawiera Nginx, co sprawia, że jego konfiguracja jest wewnętrzna dla Docker.

Zobacz Przewodnik Nginx, aby uzyskać więcej informacji

2. IaC (Infrastructure as Code)

Infrastructure as Code (IaC) odnosi się do praktyki zarządzania i udostępniania infrastruktury obliczeniowej za pomocą plików definicji czytelnych dla maszyny, w przeciwieństwie do fizycznej konfiguracji sprzętu lub interaktywnych narzędzi konfiguracyjnych. Takie podejście promuje powtarzalność, możliwość usuwania i skalowalność, szczególnie w nowoczesnych środowiskach chmurowych. IaC pozwala na automatyzację wdrażania, konfiguracji i zarządzania infrastrukturą, co skutkuje szybszym, bardziej spójnym i niezawodnym udostępnianiem zasobów.

  • Azure: Kompleksowe usługi odpowiednie dla wdrożeń na poziomie przedsiębiorstwa

Uwaga: Digital Ocean, Linode oraz Hetzner również wspierają IaC. Chociaż nie posiadamy szczegółowego przewodnika, możesz spróbować zaadaptować Azure Guide dla Terraform i pomóc nam w jego ulepszeniu.

3. PaaS (Platform as a Service)

Platform as a Service (PaaS) to model przetwarzania w chmurze, który oferuje środowisko programistyczne i wdrożeniowe w chmurze. Zapewnia on programistom platformę do budowania, testowania i wdrażania aplikacji bez konieczności zarządzania podstawową infrastrukturą. PaaS zazwyczaj obejmuje szereg zasobów, takich jak bazy danych, oprogramowanie pośredniczące (middleware) i narzędzia programistyczne, umożliwiając użytkownikom dostarczanie zarówno prostych aplikacji opartych na chmurze, jak i zaawansowanych aplikacji korporacyjnych. Model ten pozwala na szybsze wprowadzenie produktu na rynek, niższe koszty oraz łatwiejszą konserwację i skalowanie, ponieważ dostawca usług odpowiada za utrzymanie infrastruktury, a klient może skupić się na budowaniu, wdrażaniu i zarządzaniu swoimi aplikacjami.

  • Hugging Face: Dostosowane do projektów uczenia maszynowego i NLP.
  • Render: Upraszcza wdrożenia dzięki zintegrowanym potokom CI/CD.
  • Heroku: Optymalne rozwiązanie dla startupów i scenariuszy szybkiego wdrażania.

4. Wdrożenie jednym kliknięciem (PaaS)

  • Railway: Popularne rozwiązanie do wdrażania jednym kliknięciem
  • Zeabur: Pionierskie rozwiązania do wdrażania jednym kliknięciem.

Inne / Usługi sieciowe

1. Tunneling

Usługi tunelowania umożliwiają udostępnienie lokalnego serwera programistycznego w internecie, czyniąc go dostępnym za pośrednictwem publicznego adresu URL. Jest to szczególnie przydatne do udostępniania pracy, testowania oraz integracji z usługami stron trzecich. Pozwala to na wykorzystanie komputera programistycznego do celów testowych lub instalacji lokalnych (on-prem).

  • Ngrok: Umożliwia bezpieczne tunelowanie lokalne do internetu.
  • Cloudflare: Zwiększa wydajność i bezpieczeństwo sieci.

2. Usługa DNS

  • Usługa Cloudflare DNS jest używana do zarządzania i kierowania ruchem internetowym do właściwych miejsc docelowych poprzez tłumaczenie czytelnych dla ludzi nazw domen na czytelne dla maszyn adresy IP. Cloudflare jest dostawcą tej usługi, oferującym szeroki zakres funkcji, takich jak bezpieczeństwo, wydajność i niezawodność. Usługa Cloudflare DNS zapewnia przyjazny dla użytkownika interfejs do zarządzania rekordami DNS oraz oferuje zaawansowane funkcje, takie jak zarządzanie ruchem, DNSSEC i ochrona przed atakami DDoS.

zobacz także: Przewodnik Cloudflare

Podsumowanie

Podsumowując, wprowadzenie do naszego przewodnika wdrażania zawiera przegląd różnych opcji i kwestii związanych z wdrażaniem LibreChat. Ważne jest, aby dokładnie ocenić swoje potrzeby i wybrać ścieżkę, która najlepiej odpowiada celom i założeniom Twojej organizacji. Niezależnie od tego, czy priorytetem jest łatwość obsługi, bezpieczeństwo czy przystępność cenowa, nasz przewodnik dostarcza niezbędnych informacji, które pomogą Ci skutecznie wdrożyć LibreChat i osiągnąć zamierzony rezultat. Mamy nadzieję, że ten przewodnik okaże się cennym źródłem informacji podczas całej Twojej podróży związanej z wdrażaniem.

Pamiętaj, że nasza społeczność jest tutaj, aby pomóc. Jeśli napotkasz wyzwania lub będziesz mieć pytania, nasz kanał Discord oraz dyskusja dotycząca rozwiązywania problemów są doskonałymi źródłami wsparcia i porad.

Jaka jest ta instrukcja?