Firebase CDN
Ten dokument zawiera instrukcje dotyczące konfiguracji Firebase Storage jako CDN dla LibreChat
Firebase Storage integruje się z globalną siecią CDN Firebase Hosting, umożliwiając serwowanie plików przechowywanych w Firebase Storage za pośrednictwem lokalizacji brzegowych na całym świecie. Jest to jedna z opcji przechowywania plików w LibreChat wspieranych przez CDN, obok CloudFront for S3.
Czego będziesz potrzebować
Konto Google i około 10 minut. Utworzysz projekt Firebase, włączysz Cloud Storage, zarejestrujesz aplikację internetową, aby uzyskać dane uwierzytelniające, a następnie wskażesz na nie w LibreChat.
Utwórz projekt Firebase
Otwórz Firebase i zaloguj się. Przejdź na stronę internetową Firebase, kliknij Get started i zaloguj się za pomocą swojego konta Google.
Nazwij swój projekt. Możesz użyć ponownie tego samego projektu co w przypadku Google OAuth, jeśli już taki posiadasz.
Skonfiguruj Google Analytics (opcjonalnie). Możesz wyłączyć Google Analytics dla tego projektu.
Utwórz projekt. Odczekaj 20-30 sekund na zakończenie udostępniania, a następnie kliknij Kontynuuj.
Włącz przechowywanie w chmurze
Otwórz wszystkie produkty. Z pulpitu nawigacyjnego projektu kliknij Wszystkie produkty.
Wybierz Storage, a następnie kliknij Get Started.
Potwierdź zasady bezpieczeństwa. Kliknij Dalej, aby kontynuować.
Wybierz lokalizację Cloud Storage, a następnie zakończ konfigurację i wróć do Project Overview.
Rejestracja aplikacji internetowej
Dodaj aplikację internetową. W widoku przeglądu projektu (Project Overview) kliknij + Add app pod nazwą swojego projektu, a następnie wybierz Web.
Zarejestruj aplikację i nadaj jej pseudonim.
Skopiuj swoje wartości firebaseConfig. Zapisz wyświetloną konfigurację w bezpiecznym miejscu.
Dodaj wartości do swojego pliku .env. Przypisz każdą wartość firebaseConfig do odpowiadającej jej zmiennej:
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 # appIdAktualizacja reguł przechowywania
Zasady Open Storage. Wróć do Project Overview, wybierz Storage, a następnie otwórz kartę Rules.
Zezwól na dostęp do odczytu i zapisu. Zmień allow read, write: if false; na if true;, aby pasowało do poniższych reguł:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /images/{userId}/{fileName} {
allow read, write: if true;
}
}
}Opublikuj swoje zmiany.
Konfiguracja LibreChat
Ustaw fileStrategy na firebase w pliku konfiguracyjnym librechat.yaml, aby LibreChat używał Firebase do przechowywania plików:
version: 1.3.5
cache: true
fileStrategy: 'firebase'Aby dowiedzieć się więcej o tym pliku, zobacz przewodnik librechat.yaml.
Włącz CORS dla eksportów PNG
Wymagane tylko dla eksportów PNG
Eksportowanie konwersji jako PNG pobiera obrazy bezpośrednio z Firebase Storage w przeglądarce. Bez polityki CORS, która zezwala na Twoją domenę, żądania te są blokowane. Pomiń tę sekcję, jeśli nie eksportujesz konwersacji jako PNG.
Utwórz plik konfiguracyjny CORS. W edytorze tekstu utwórz cors.json i zezwól na dostęp ze swojej domeny:
[
{
"origin": ["https://ai.example.com"],
"method": ["GET", "POST", "DELETE", "PUT"],
"maxAgeSeconds": 3600
}
]Zastosuj konfigurację. Z katalogu zawierającego cors.json, uruchom poniższe polecenie, zastępując <your-cloud-storage-bucket> nazwą swojego zasobnika (bucket):
gsutil cors set cors.json gs://<your-cloud-storage-bucket>Zweryfikuj ustawienia. Pobierz aktywną politykę i potwierdź, że jest ona zgodna z cors.json:
gsutil cors get gs://<your-cloud-storage-bucket>Przetestuj to. Wyeksportuj konwersację jako plik PNG ze swojego dozwolonego źródła (origin). Jeśli wszystko zostało poprawnie skonfigurowane, eksport zakończy się powodzeniem bez błędów CORS.
Wskazówka dotycząca bezpieczeństwa
Zezwalaj na CORS tylko dla zaufanych źródeł i ogranicz metody oraz nagłówki do tych, których faktycznie wymaga Twoje wdrożenie.
Jaka jest ta instrukcja?