Firebase CDN
이 문서는 LibreChat을 위한 CDN으로 Firebase Storage를 설정하는 방법을 안내합니다.
Firebase Storage는 Firebase Hosting의 글로벌 CDN과 통합되어 전 세계 엣지 로케이션을 통해 Firebase Storage에 저장된 파일을 제공할 수 있게 해줍니다. 이는 CloudFront for S3와 더불어 LibreChat에서 지원하는 CDN 기반 파일 저장소 옵션 중 하나입니다.
준비물
Google 계정과 약 10분의 시간이 필요합니다. Firebase 프로젝트를 생성하고, Cloud Storage를 활성화하고, 웹 앱을 등록하여 자격 증명을 얻은 다음, LibreChat에서 해당 설정을 지정하면 됩니다.
Firebase 프로젝트 생성
Firebase를 열고 로그인합니다. Firebase 웹사이트로 이동하여 **시작하기(Get started)**를 클릭하고 Google 계정으로 로그인합니다.
프로젝트 이름을 지정하세요. 이미 사용 중인 Google OAuth 프로젝트가 있다면 동일한 프로젝트를 재사용할 수 있습니다.
Google Analytics 구성 (선택 사항). 이 프로젝트에 대해 Google Analytics를 비활성화할 수 있습니다.
프로젝트를 생성합니다. 프로비저닝이 완료될 때까지 20-30초 정도 기다린 후, **계속(Continue)**을 클릭하세요.
클라우드 스토리지 활성화
모든 제품 열기. 프로젝트 대시보드에서 **모든 제품(All Products)**을 클릭하세요.
Select Storage를 선택한 다음, Get Started를 클릭하세요.
보안 규칙을 확인하세요. 다음을 클릭하여 계속하세요.
클라우드 스토리지 위치를 선택한 다음, 설정을 완료하고 Project Overview로 돌아가세요.
웹 앱 등록
웹 앱 추가. 프로젝트 개요(Project Overview)에서 프로젝트 이름 아래에 있는 + Add app을 클릭한 다음, Web을 선택하세요.
앱을 등록하고 별명을 지정하세요.
firebaseConfig 값을 복사하세요. 표시된 구성을 안전한 곳에 저장하세요.
.env 파일에 값을 추가하세요. 각 firebaseConfig 값을 일치하는 변수에 매핑합니다:
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스토리지 규칙 업데이트
Open Storage rules. Project Overview로 돌아가서 Storage를 선택한 다음, Rules 탭을 엽니다.
읽기 및 쓰기 권한을 허용합니다. allow read, write: if false;를 아래 규칙과 일치하도록 if true;로 변경하세요:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /images/{userId}/{fileName} {
allow read, write: if true;
}
}
}변경 사항을 게시하세요.
LibreChat 구성하기
librechat.yaml 설정 파일에서 fileStrategy를 firebase로 설정하여 LibreChat이 파일 저장소로 Firebase를 사용하도록 하세요:
version: 1.3.5
cache: true
fileStrategy: 'firebase'이 파일에 대한 자세한 내용은 librechat.yaml 가이드를 참조하세요.
PNG 내보내기를 위한 CORS 활성화
PNG 내보내기에만 필요함
대화를 PNG로 내보내는 기능은 브라우저에서 Firebase Storage로부터 이미지를 직접 가져옵니다. 귀하의 도메인을 허용하는 CORS 정책이 없으면 해당 요청은 차단됩니다. 대화를 PNG로 내보내지 않는다면 이 섹션은 건너뛰어도 됩니다.
CORS 구성 파일을 생성합니다. 텍스트 편집기에서 cors.json 파일을 생성하고 귀하의 도메인에서 액세스를 허용하도록 설정합니다:
[
{
"origin": ["https://ai.example.com"],
"method": ["GET", "POST", "DELETE", "PUT"],
"maxAgeSeconds": 3600
}
]구성을 적용합니다. cors.json이 포함된 디렉토리에서 아래 명령어를 실행하고, <your-cloud-storage-bucket>을 본인의 버킷 이름으로 변경하세요:
gsutil cors set cors.json gs://<your-cloud-storage-bucket>설정을 확인합니다. 활성 정책을 검색하고 cors.json과 일치하는지 확인합니다:
gsutil cors get gs://<your-cloud-storage-bucket>테스트해 보세요. 허용된 출처(origin)에서 대화를 PNG로 내보냅니다. 모든 설정이 올바르게 구성되었다면, CORS 오류 없이 내보내기가 성공할 것입니다.
보안 팁
신뢰할 수 있는 출처에 대해서만 CORS를 허용하고, 배포 환경에서 실제로 필요한 메서드와 헤더로 제한하십시오.
이 가이드는 어떤가요?