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

Firebase CDN

Tài liệu này cung cấp hướng dẫn thiết lập Firebase Storage làm CDN cho LibreChat

Firebase Storage tích hợp với CDN toàn cầu của Firebase Hosting, cho phép bạn phân phối các tệp được lưu trữ trong Firebase Storage thông qua các vị trí biên (edge locations) trên khắp thế giới. Đây là một trong những tùy chọn lưu trữ tệp hỗ trợ CDN của LibreChat, bên cạnh CloudFront for S3.

Những gì bạn cần

Một tài khoản Google và khoảng 10 phút. Bạn sẽ tạo một dự án Firebase, bật Cloud Storage, đăng ký một ứng dụng web để lấy thông tin xác thực, sau đó trỏ LibreChat đến đó.

Tạo một dự án Firebase

Mở Firebase và đăng nhập. Truy cập trang web Firebase, nhấp vào Get started và đăng nhập bằng tài khoản Google của bạn.

Đặt tên cho dự án của bạn. Bạn có thể sử dụng lại cùng một dự án như Google OAuth nếu bạn đã có sẵn một dự án.

Đặt tên cho dự án Firebase

Cấu hình Google Analytics (tùy chọn). Bạn có thể tắt Google Analytics cho dự án này.

Google Analytics toggle

Tạo dự án. Đợi 20-30 giây để quá trình cung cấp hoàn tất, sau đó nhấp vào Continue.

Dự án đã sẵn sàng, nhấp vào Tiếp tục

Bật Lưu trữ Đám mây

Mở Tất cả Sản phẩm. Từ bảng điều khiển dự án, nhấp vào All Products.

Menu Tất cả sản phẩm

Chọn Storage, sau đó nhấp vào Get Started.

Select Storage

Storage Get Started

Xác nhận các quy tắc bảo mật. Nhấp vào Next để tiếp tục.

Các bước thiết lập quy tắc bảo mật

Chọn một vị trí Lưu trữ Đám mây, sau đó hoàn tất thiết lập và quay lại Tổng quan Dự án.

Chọn vị trí Lưu trữ Đám mây

Đăng ký Web App

Thêm một ứng dụng web. Trên trang Tổng quan Dự án (Project Overview), nhấp vào + Add app bên dưới tên dự án của bạn, sau đó chọn Web.

Thêm một ứng dụng web

Đăng ký ứng dụng và đặt cho nó một biệt danh.

Đăng ký ứng dụng

Sao chép các giá trị firebaseConfig của bạn. Lưu cấu hình được hiển thị vào một nơi an toàn.

Các giá trị cấu hình Firebase

Thêm các giá trị vào tệp .env của bạn. Ánh xạ từng giá trị firebaseConfig tương ứng với biến phù hợp:

FIREBASE_API_KEY=api_key                          # apiKey
FIREBASE_AUTH_DOMAIN=auth_domain                  # authDomain
FIREBASE_PROJECT_ID=project_id                    # projectId
FIREBASE_STORAGE_BUCKET=storage_bucket            # storageBucket
FIREBASE_MESSAGING_SENDER_ID=messaging_sender_id  # messagingSenderId
FIREBASE_APP_ID=1:your_app_id                     # appId

Cập nhật Quy tắc Lưu trữ

Các quy tắc Open Storage. Quay lại Project Overview, chọn Storage, sau đó mở tab Rules.

Open Storage

Cho phép quyền đọc và ghi. Thay đổi allow read, write: if false; thành if true; để khớp với các quy tắc bên dưới:

rules_version = '2';

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{userId}/{fileName} {
      allow read, write: if true;
    }
  }
}

Updated storage rules

Công bố các thay đổi của bạn.

Publish rules

Cấu hình LibreChat

Đặt fileStrategy thành firebase trong tệp cấu hình librechat.yaml của bạn để LibreChat sử dụng Firebase làm nơi lưu trữ tệp:

version: 1.3.5
cache: true
fileStrategy: 'firebase'

Để biết thêm về tệp này, hãy xem hướng dẫn librechat.yaml.

Bật CORS cho xuất tệp PNG

Chỉ cần thiết cho việc xuất tệp PNG

Việc xuất các cuộc trò chuyện dưới dạng PNG sẽ tải hình ảnh trực tiếp từ Firebase Storage trong trình duyệt. Nếu không có chính sách CORS cho phép tên miền của bạn, các yêu cầu đó sẽ bị chặn. Hãy bỏ qua phần này nếu bạn không xuất các cuộc trò chuyện dưới dạng PNG.

Tạo tệp cấu hình CORS. Trong trình soạn thảo văn bản, hãy tạo cors.json và cho phép truy cập từ tên miền của bạn:

[
  {
    "origin": ["https://ai.example.com"],
    "method": ["GET", "POST", "DELETE", "PUT"],
    "maxAgeSeconds": 3600
  }
]

Áp dụng cấu hình. Từ thư mục chứa cors.json, hãy chạy lệnh dưới đây, thay thế <your-cloud-storage-bucket> bằng tên bucket của bạn:

gsutil cors set cors.json gs://<your-cloud-storage-bucket>

Xác minh các cài đặt. Truy xuất chính sách đang hoạt động và xác nhận rằng nó khớp với cors.json:

gsutil cors get gs://<your-cloud-storage-bucket>

Kiểm tra. Xuất cuộc trò chuyện dưới dạng PNG từ origin được cho phép của bạn. Nếu mọi thứ được cấu hình chính xác, quá trình xuất sẽ thành công mà không gặp lỗi CORS.

Mẹo bảo mật

Chỉ cho phép CORS đối với các nguồn đáng tin cậy, đồng thời giới hạn các phương thức và tiêu đề (headers) theo đúng nhu cầu thực tế của quá trình triển khai của bạn.

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