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

Tổng quan

Giới thiệu về việc triển khai LibreChat, cung cấp sự so sánh giữa các dịch vụ lưu trữ và mạng khác nhau

Chào mừng bạn đến với hướng dẫn giới thiệu về việc triển khai LibreChat. Tài liệu này cung cấp cái nhìn tổng quan ban đầu, bao gồm bảng so sánh và các tham chiếu đến những hướng dẫn chi tiết, đảm bảo sự hiểu biết thấu đáo về các chiến lược triển khai.

Trong hướng dẫn này, bạn sẽ khám phá các tùy chọn khác nhau để triển khai LibreChat một cách hiệu quả trong nhiều môi trường đa dạng, được tùy chỉnh để đáp ứng các yêu cầu cụ thể của bạn.

Yêu cầu tối thiểu

Các yêu cầu tối thiểu để chạy LibreChat:

  • 1 GiB RAM
  • 1 vCPU

Lưu ý: Khi bật tất cả mọi thứ, bạn có thể cân nhắc tăng RAM lên 2GB để vận hành mượt mà hơn.

Bảng so sánh

Lưu ý rằng nhãn "Recommended" cho biết các dịch vụ này có tài liệu đầy đủ, được sử dụng rộng rãi trong cộng đồng hoặc đã được triển khai thành công bởi một số lượng lớn người dùng. Nhờ đó, chúng tôi có thể cung cấp hỗ trợ tốt hơn cho việc triển khai LibreChat trên các dịch vụ này.

Các dịch vụ lưu trữ

Dịch vụLĩnh vựcƯu điểmNhược điểmGhi chúKhuyến nghị
DigitalOceanCơ sở hạ tầng đám mâyGiao diện trực quan, giá cả ổn địnhDấu ấn mạng lưới nhỏ hơnTối ưu cho người dùng đam mê & doanh nghiệp vừa và nhỏ✅ Nổi tiếng, Đáng tin cậy
HuggingFaceGiải pháp AI/MLChuyên môn về ML/NLPTập trung vào các ứng dụng MLTuyệt vời cho các sáng kiến AI/ML✅ Miễn phí
RailwayTriển khai ứng dụngĐơn giản hóa việc triển khai ứng dụngQuyền truy cập vào container bị hạn chếRất dễ để bắt đầu✅ Dễ dàng

Dịch vụ mạng

Dịch vụLĩnh vựcƯu điểmNhược điểmGhi chú
CloudflareHiệu suất & Bảo mật WebCDN toàn cầu, bảo vệ DDoS, dễ sử dụngHỗ trợ khách hàng có thể chậmLựa chọn hàng đầu để tăng cường bảo mật
NginxMáy chủ Web, Reverse ProxyHiệu suất cao, ổn định, tiết kiệm tài nguyênThiết lập thủ công, tiện ích mở rộng hạn chếĐược sử dụng rộng rãi để lưu trữ nhờ hiệu suất cao
ngrokSecure TunnelingDễ sử dụng, có gói miễn phí, đường truyền bảo mậtYêu cầu tải xuống client, định tuyến tên miền phức tạpTiện lợi cho các thử nghiệm phát triển cục bộ
TraefikReverse Proxy, Load BalancerTự động phát hiện dịch vụ, hỗ trợ cụm gốcCấu hình có thể phức tạp với người mới bắt đầuLý tưởng cho microservices và môi trường động

Cloudflare được biết đến với mạng lưới rộng khắp giúp tăng tốc và bảo mật các dịch vụ internet, cùng với giao diện người dùng trực quan và các tùy chọn bảo mật mạnh mẽ trên các gói trả phí.

Ngrok được đánh giá cao nhờ sự đơn giản và khả năng nhanh chóng đưa các máy chủ cục bộ lên internet, khiến nó trở nên lý tưởng cho việc demo và thử nghiệm.

Nginx là một máy chủ web hiệu năng cao, xử lý tài nguyên hiệu quả và mang lại sự ổn định. Tuy nhiên, nó đòi hỏi phải thiết lập thủ công và có ít mô-đun cũng như tiện ích mở rộng hơn so với các máy chủ khác.

Traefik nổi tiếng với khả năng tự động cập nhật cấu hình và dễ dàng triển khai trong các môi trường container, thu hút các kỹ sư DevOps nhờ khả năng tích hợp với nhiều back-end khác nhau và khả năng cấu hình lại linh hoạt. Nó hoạt động hiệu quả trong các kiến trúc microservices nhưng có thể gây khó khăn cho những người mới làm quen với các công nghệ cloud-native.

Tích hợp và Cấu hình Nhà cung cấp Đám mây

Mức độ tích hợp với các nhà cung cấp đám mây rất đa dạng: từ các nền tảng cho phép triển khai LibreChat chỉ với một cú nhấp chuột như Railway, thông qua các nền tảng tận dụng các công cụ Infrastructure as Code như Azure với Terraform, cho đến các thiết lập VM truyền thống đòi hỏi cấu hình thủ công, điển hình như DigitalOcean, Linode và Hetzner.

Các cân nhắc bảo mật thiết yếu

Khám phá bối cảnh kỹ thuật số cho thấy vô số mối đe dọa đối với tính bảo mật và toàn vẹn của các tài sản trực tuyến của bạn. Để bảo vệ miền kỹ thuật số của mình, việc triển khai các biện pháp bảo mật mạnh mẽ là vô cùng quan trọng.

Khi triển khai các ứng dụng trên quy mô toàn cầu, điều cần thiết là phải xem xét các yếu tố chính sau đây để đảm bảo sự bảo vệ cho các tài sản kỹ thuật số của bạn:

  1. Mã hóa dữ liệu trong quá trình truyền tải: Việc triển khai HTTPS với chứng chỉ SSL là rất quan trọng để bảo vệ dữ liệu của bạn khỏi các cuộc tấn công đánh chặn và nghe lén.
  2. Các tác động về khả năng truy cập toàn cầu: Hiểu rõ các tác động của việc triển khai ứng dụng của bạn trên phạm vi toàn cầu, bao gồm các yêu cầu về pháp lý và tuân thủ khác nhau tùy theo từng khu vực.
  3. Cấu hình bảo mật: Đảm bảo rằng ứng dụng của bạn được cấu hình một cách an toàn, bao gồm việc sử dụng các giao thức bảo mật, xác thực an toàn và các cơ chế ủy quyền.

Nếu bạn chọn sử dụng các dịch vụ IaaS hoặc Tunnel cho việc triển khai của mình, bạn có thể cần sử dụng một reverse proxy như Nginx, Traefik hoặc Cloudflare để kể tên một vài ví dụ.

Việc đầu tư vào các biện pháp bảo mật phù hợp là rất quan trọng để bảo vệ tài sản kỹ thuật số của bạn và đảm bảo sự thành công cho quá trình triển khai toàn cầu của bạn.

Chọn nhà cung cấp Cloud (ví dụ: nền tảng)

Việc lựa chọn nhà cung cấp dịch vụ đám mây cho "triển khai thực tế" là rất quan trọng vì nó ảnh hưởng đến chi phí, hiệu suất, bảo mật và khả năng mở rộng. Bạn nên xem xét các yếu tố như vị trí trung tâm dữ liệu, sự tuân thủ các tiêu chuẩn ngành, khả năng tương thích với các công cụ hiện có và dịch vụ hỗ trợ khách hàng.

Có rất nhiều tùy chọn khác biệt ở nhiều khía cạnh. Trong phần này, bạn có thể tìm thấy một số tùy chọn mà đội ngũ phát triển và cộng đồng đang sử dụng, có thể giúp ích cho quá trình triển khai đầu tiên của bạn.

Khi bạn đã hiểu rõ hơn về cách sử dụng ứng dụng và đối tượng người dùng của mình, bạn có thể sẽ ở vị thế tốt hơn để quyết định nhà cung cấp đám mây nào phù hợp nhất với bạn về lâu dài.

Như đã đề cập, các nhà cung cấp/nền tảng đám mây khác nhau ở nhiều khía cạnh. Đối với mục đích của chúng ta, có thể giả định rằng trong bối cảnh này, mối quan tâm chính của bạn là tính dễ sử dụng, bảo mật và chi phí (ban đầu). Trong trường hợp bạn có thêm các mối quan tâm khác như khả năng mở rộng, kinh nghiệm trước đây với bất kỳ nền tảng nào hoặc bất kỳ tính năng cụ thể nào khác, thì có lẽ bạn đã biết rõ nền tảng nào phù hợp với mình hơn và bạn có thể chuyển trực tiếp đến thông tin mà bạn đang tìm kiếm mà không cần tuân theo bất kỳ hướng dẫn cụ thể nào.

Lựa chọn tùy chọn triển khai phù hợp với nhu cầu của bạn

Các tùy chọn triển khai được liệt kê theo thứ tự từ tốn nhiều công sức và quyền kiểm soát nhất đến ít tốn công sức và quyền kiểm soát nhất.

Mỗi tùy chọn triển khai đều có những ưu điểm và nhược điểm riêng, và việc lựa chọn cuối cùng phụ thuộc vào nhu cầu cụ thể của dự án bạn.

1. IaaS (Cơ sở hạ tầng dưới dạng dịch vụ)

Infrastructure as a Service (IaaS) đề cập đến một mô hình điện toán đám mây cung cấp các tài nguyên tính toán cơ bản, chẳng hạn như máy chủ ảo, mạng và lưu trữ, dựa trên cơ sở trả phí theo mức sử dụng. IaaS cho phép các tổ chức thuê và truy cập các tài nguyên này qua internet mà không cần phải đầu tư và bảo trì phần cứng vật lý. Mô hình này mang lại khả năng mở rộng, tính linh hoạt và tiết kiệm chi phí, cũng như khả năng triển khai và quản lý các tài nguyên cơ sở hạ tầng một cách nhanh chóng và dễ dàng để đáp ứng các nhu cầu kinh doanh thay đổi.

  • DigitalOcean: Giao diện thân thiện với người dùng cùng mức giá dễ dự đoán.
  • Linode: Nổi tiếng với dịch vụ hỗ trợ khách hàng tuyệt vời và cơ cấu giá cả đơn giản.

Đối với IaaS, chúng tôi khuyến nghị sử dụng Docker Compose

Tại sao lại dùng Docker Compose? Chúng tôi khuyến nghị sử dụng Docker Compose để đảm bảo tính nhất quán khi triển khai. Hướng dẫn này nêu rõ từng bước để triển khai dễ dàng: Hướng dẫn cài đặt từ xa Docker - Linux

Lưu ý: Có hai tệp docker compose trong kho lưu trữ

  1. docker-compose.yml cho Docker hướng phát triển
  2. Docker compose định hướng triển khai deploy-compose.yml

Sự khác biệt chính là deploy-compose.yml bao gồm Nginx, giúp cấu hình của nó trở nên nội bộ đối với Docker.

Xem Nginx Guide để biết thêm thông tin

2. IaC (Infrastructure as Code)

Infrastructure as Code (IaC) đề cập đến phương pháp quản lý và cung cấp cơ sở hạ tầng máy tính thông qua các tệp định nghĩa có thể đọc được bằng máy, thay vì cấu hình phần cứng vật lý hoặc các công cụ cấu hình tương tác. Phương pháp này thúc đẩy khả năng tái lập, khả năng loại bỏ và khả năng mở rộng, đặc biệt là trong các môi trường đám mây hiện đại. IaC cho phép tự động hóa việc triển khai, cấu hình và quản lý cơ sở hạ tầng, dẫn đến việc cung cấp tài nguyên nhanh hơn, nhất quán hơn và đáng tin cậy hơn.

  • Azure: Các dịch vụ toàn diện phù hợp cho các triển khai cấp doanh nghiệp

Lưu ý: Digital Ocean, Linode, Hetzner cũng hỗ trợ IaC. Mặc dù chúng tôi chưa có hướng dẫn cụ thể, bạn có thể thử điều chỉnh Azure Guide cho Terraform và giúp chúng tôi đóng góp vào việc cải thiện nó.

3. PaaS (Nền tảng dưới dạng dịch vụ)

Platform as a Service (PaaS) là một mô hình điện toán đám mây cung cấp môi trường phát triển và triển khai trên đám mây. Nó cung cấp một nền tảng để các nhà phát triển xây dựng, thử nghiệm và triển khai ứng dụng mà không cần phải quản lý cơ sở hạ tầng bên dưới. PaaS thường bao gồm một loạt các tài nguyên như cơ sở dữ liệu, phần mềm trung gian (middleware) và các công cụ phát triển, cho phép người dùng phân phối từ các ứng dụng dựa trên đám mây đơn giản đến các ứng dụng doanh nghiệp phức tạp. Mô hình này cho phép rút ngắn thời gian đưa sản phẩm ra thị trường, giảm chi phí, đồng thời giúp việc bảo trì và mở rộng quy mô trở nên dễ dàng hơn, vì nhà cung cấp dịch vụ chịu trách nhiệm duy trì cơ sở hạ tầng, còn khách hàng có thể tập trung vào việc xây dựng, triển khai và quản lý ứng dụng của họ.

  • Hugging Face: Được thiết kế riêng cho các dự án học máy (machine learning) và NLP.
  • Render: Đơn giản hóa việc triển khai với các pipeline CI/CD tích hợp.
  • Heroku: Tối ưu cho các startup và các kịch bản triển khai nhanh.

4. Triển khai một lần nhấp (PaaS)

  • Railway: Giải pháp triển khai một cú nhấp chuột phổ biến
  • Zeabur: Tiên phong trong các giải pháp triển khai một lần nhấp chuột dễ dàng.

Khác / Dịch vụ mạng

1. Tunneling

Các dịch vụ đường hầm (tunneling) cho phép bạn công khai máy chủ phát triển cục bộ ra internet, giúp nó có thể truy cập được thông qua một URL công khai. Điều này đặc biệt hữu ích cho việc chia sẻ công việc, thử nghiệm và tích hợp với các dịch vụ của bên thứ ba. Nó cho phép bạn triển khai máy tính phát triển của mình để thử nghiệm hoặc cài đặt tại chỗ (on-prem).

  • Ngrok: Hỗ trợ tạo đường hầm cục bộ an toàn ra internet.
  • Cloudflare: Tăng cường hiệu suất và bảo mật web.

2. Dịch vụ DNS

  • Dịch vụ DNS của Cloudflare được sử dụng để quản lý và định tuyến lưu lượng truy cập internet đến các đích đến chính xác, bằng cách chuyển đổi tên miền mà con người có thể đọc được thành địa chỉ IP mà máy tính có thể hiểu được. Cloudflare là nhà cung cấp dịch vụ này, mang đến nhiều tính năng đa dạng như bảo mật, hiệu suất và độ tin cậy. Dịch vụ DNS của Cloudflare cung cấp giao diện thân thiện với người dùng để quản lý các bản ghi DNS, đồng thời cung cấp các tính năng nâng cao như quản lý lưu lượng truy cập, DNSSEC và bảo vệ chống DDoS.

xem thêm: Hướng dẫn Cloudflare

Kết luận

Tóm lại, phần giới thiệu trong hướng dẫn triển khai của chúng tôi cung cấp cái nhìn tổng quan về các tùy chọn và cân nhắc khác nhau khi triển khai LibreChat. Điều quan trọng là phải đánh giá cẩn thận nhu cầu của bạn và chọn con đường phù hợp nhất với các mục tiêu và định hướng của tổ chức bạn. Cho dù bạn ưu tiên tính dễ sử dụng, bảo mật hay khả năng chi trả, hướng dẫn của chúng tôi đều cung cấp thông tin cần thiết để giúp bạn triển khai LibreChat thành công và đạt được kết quả mong muốn. Chúng tôi hy vọng rằng hướng dẫn này sẽ là một nguồn tài nguyên quý giá cho bạn trong suốt hành trình triển khai của mình.

Hãy nhớ rằng, cộng đồng của chúng tôi luôn sẵn sàng hỗ trợ. Nếu bạn gặp khó khăn hoặc có thắc mắc, kênh Discordthảo luận khắc phục sự cố của chúng tôi là những nguồn tài nguyên tuyệt vời để nhận hỗ trợ và lời khuyên.

Hướng dẫn này thế nào?