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

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のウェブサイトにアクセスし、使ってみるをクリックして、Googleアカウントでサインインしてください。

プロジェクトに名前を付けます。 Google OAuthで既に使用しているプロジェクトがある場合は、それを再利用することも可能です。

Firebaseプロジェクトへの名前付け

Google Analyticsを設定する(オプション)。 このプロジェクトではGoogle Analyticsを無効にすることができます。

Google Analytics toggle

プロジェクトを作成します。 プロビジョニングが完了するまで20〜30秒待機してから、続行をクリックしてください。

プロジェクトの準備が完了しました。「続行」をクリックしてください

クラウドストレージを有効にする

すべての製品を開く。 プロジェクトダッシュボードから、すべての製品 (All Products) をクリックします。

All Products menu

Select Storage を選択し、Get Started をクリックします。

Select Storage

Storage Get Started

セキュリティルールを確認します。 Next をクリックして続行します。

Security rules step

クラウドストレージの場所を選択してから、セットアップを完了し、プロジェクトの概要に戻ります。

クラウドストレージの場所を選択

Webアプリの登録

Webアプリを追加する。 プロジェクトの概要(Project Overview)で、プロジェクト名の下にある + Add app をクリックし、Web を選択します。

Add a web app

アプリを登録し、ニックネームを付けます。

Register the app

firebaseConfig の値をコピーします。 表示された設定を安全な場所に保存してください。

Firebaseの設定値

.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 タブを開きます。

Open Storage

読み取りおよび書き込みアクセスを許可します。 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;
    }
  }
}

Updated storage rules

変更を公開します。

Publish rules

LibreChat の設定

librechat.yaml 設定ファイルで fileStrategyfirebase に設定し、LibreChat がファイルストレージに Firebase を使用するようにします:

version: 1.3.5
cache: true
fileStrategy: 'firebase'

このファイルの詳細については、librechat.yaml guide を参照してください。

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>

テストします。 許可されたオリジンから会話をPNGとしてエクスポートしてください。すべてが正しく設定されていれば、CORSエラーなしでエクスポートが成功します。

セキュリティのヒント

信頼できるオリジンに対してのみCORSを許可し、メソッドとヘッダーをデプロイメントで実際に必要なものに制限してください。

このガイドはいかがでしたか?