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

CDN Firebase

Ce document fournit des instructions pour configurer Firebase Storage en tant que CDN pour LibreChat

Firebase Storage s'intègre au CDN mondial de Firebase Hosting, vous permettant de servir des fichiers stockés dans Firebase Storage via des emplacements périphériques (edge locations) dans le monde entier. Il s'agit de l'une des options de stockage de fichiers supportées par un CDN pour LibreChat, aux côtés de CloudFront for S3.

Ce dont vous aurez besoin

Un compte Google et environ 10 minutes. Vous créerez un projet Firebase, activerez Cloud Storage, enregistrerez une application web pour obtenir des identifiants, puis configurerez LibreChat pour les utiliser.

Créer un projet Firebase

Ouvrez Firebase et connectez-vous. Allez sur le site web de Firebase, cliquez sur Get started, et connectez-vous avec votre compte Google.

Nommez votre projet. Vous pouvez réutiliser le même projet que pour Google OAuth si vous en avez déjà un.

Nommer le projet Firebase

Configurer Google Analytics (optionnel). Vous pouvez désactiver Google Analytics pour ce projet.

Bascule Google Analytics

Créez le projet. Attendez 20 à 30 secondes que le provisionnement se termine, puis cliquez sur Continue.

Projet prêt, cliquez sur Continuer

Activer le stockage cloud

Ouvrir tous les produits. Depuis le tableau de bord du projet, cliquez sur All Products.

Menu Tous les produits

Sélectionnez Storage, puis cliquez sur Get Started.

Sélectionner le stockage

Démarrage du stockage

Confirmez les règles de sécurité. Cliquez sur Next pour continuer.

Étape des règles de sécurité

Choisissez un emplacement de stockage Cloud, puis terminez la configuration et retournez à la Vue d'ensemble du projet.

Sélectionner l'emplacement de stockage Cloud

Enregistrer une application Web

Ajouter une application web. Dans la vue d'ensemble du projet (Project Overview), cliquez sur + Add app sous le nom de votre projet, puis choisissez Web.

Ajouter une application web

Enregistrez l'application et donnez-lui un surnom.

Enregistrer l'application

Copiez vos valeurs firebaseConfig. Enregistrez la configuration affichée dans un endroit sûr.

Valeurs de configuration Firebase

Ajoutez les valeurs à votre .env file. Faites correspondre chaque valeur de firebaseConfig à la variable correspondante :

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

Mettre à jour les règles de stockage

Règles de stockage ouvert. Retournez à la Vue d'ensemble du projet, sélectionnez Stockage, puis ouvrez l'onglet Règles.

Stockage ouvert

Autoriser l'accès en lecture et en écriture. Remplacez allow read, write: if false; par if true; afin que cela corresponde aux règles ci-dessous :

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

Règles de stockage mises à jour

Publiez vos modifications.

Règles de publication

Configurer LibreChat

Définissez fileStrategy sur firebase dans votre fichier de configuration librechat.yaml afin que LibreChat utilise Firebase pour le stockage des fichiers :

version: 1.3.5
cache: true
fileStrategy: 'firebase'

Pour en savoir plus sur ce fichier, consultez le guide librechat.yaml.

Activer CORS pour les exportations PNG

Uniquement nécessaire pour les exportations PNG

L'exportation de conversations au format PNG récupère les images directement depuis Firebase Storage dans le navigateur. Sans une politique CORS autorisant votre domaine, ces requêtes sont bloquées. Ignorez cette section si vous n'exportez pas de conversations au format PNG.

Créez le fichier de configuration CORS. Dans un éditeur de texte, créez cors.json et autorisez l'accès depuis votre domaine :

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

Appliquez la configuration. Depuis le répertoire contenant cors.json, exécutez la commande ci-dessous, en remplaçant <your-cloud-storage-bucket> par le nom de votre bucket :

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

Vérifiez les paramètres. Récupérez la politique active et confirmez qu'elle correspond à cors.json :

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

Testez-le. Exportez une conversation au format PNG depuis votre origine autorisée. Si tout est correctement configuré, l'exportation réussit sans erreurs CORS.

Conseil de sécurité

Autorisez uniquement le CORS pour les origines de confiance, et limitez les méthodes et les en-têtes à ce dont votre déploiement a réellement besoin.

Que pensez-vous de ce guide ?