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.
Cấu hình Google Analytics (tùy chọn). Bạn có thể tắt Google Analytics cho dự án này.
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.
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.
Chọn Storage, sau đó nhấp vào Get Started.
Xác nhận các quy tắc bảo mật. Nhấp vào Next để tiếp tục.
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.
Đă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.
Đăng ký ứng dụng và đặt cho nó một biệt danh.
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.
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 # appIdCậ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.
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;
}
}
}Công bố các thay đổi của bạn.
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?