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

CDN de Firebase

Este documento proporciona instrucciones para configurar Firebase Storage como una CDN para LibreChat

Firebase Storage se integra con la CDN global de Firebase Hosting, lo que le permite servir archivos almacenados en Firebase Storage a través de ubicaciones perimetrales en todo el mundo. Es una de las opciones de almacenamiento de archivos respaldadas por CDN de LibreChat, junto con CloudFront for S3.

Lo que necesitarás

Una cuenta de Google y aproximadamente 10 minutos. Creará un proyecto de Firebase, habilitará Cloud Storage, registrará una aplicación web para obtener las credenciales y luego configurará LibreChat para que las utilice.

Crear un proyecto de Firebase

Abre Firebase e inicia sesión. Ve al sitio web de Firebase, haz clic en Get started e inicia sesión con tu cuenta de Google.

Asigne un nombre a su proyecto. Puede reutilizar el mismo proyecto que Google OAuth si ya tiene uno.

Nombrando el proyecto de Firebase

Configurar Google Analytics (opcional). Puedes deshabilitar Google Analytics para este proyecto.

Alternar Google Analytics

Cree el proyecto. Espere de 20 a 30 segundos para que finalice el aprovisionamiento y, a continuación, haga clic en Continuar.

Proyecto listo, haga clic en Continuar

Habilitar almacenamiento en la nube

Abrir todos los productos. Desde el panel del proyecto, haga clic en All Products.

Menú de Todos los productos

Seleccione Storage, luego haga clic en Get Started.

Select Storage

Storage Get Started

Confirma las reglas de seguridad. Haz clic en Next para continuar.

Paso de reglas de seguridad

Elija una ubicación de almacenamiento en la nube, luego finalice la configuración y regrese a la Descripción general del proyecto.

Seleccionar ubicación de almacenamiento en la nube

Registrar una aplicación web

Añadir una aplicación web. En la vista general del proyecto (Project Overview), haz clic en + Add app debajo del nombre de tu proyecto y, a continuación, elige Web.

Añadir una aplicación web

Registra la app y asígnale un apodo.

Registrar la aplicación

Copia tus valores de firebaseConfig. Guarda la configuración mostrada en un lugar seguro.

Valores de configuración de Firebase

Agregue los valores a su archivo .env. Asigne cada valor de firebaseConfig a la variable correspondiente:

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

Actualizar reglas de almacenamiento

Reglas de Open Storage. Regrese a la Project Overview, seleccione Storage, luego abra la pestaña Rules.

Open Storage

Permitir acceso de lectura y escritura. Cambie allow read, write: if false; a if true; para que coincida con las reglas a continuación:

rules_version = '2';

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

Reglas de almacenamiento actualizadas

Publica tus cambios.

Publish rules

Configurar LibreChat

Establezca fileStrategy en firebase en su archivo de configuración librechat.yaml para que LibreChat utilice Firebase para el almacenamiento de archivos:

version: 1.3.5
cache: true
fileStrategy: 'firebase'

Para obtener más información sobre este archivo, consulta la guía de librechat.yaml.

Habilitar CORS para exportaciones PNG

Solo es necesario para exportaciones PNG

La exportación de conversaciones como PNG obtiene las imágenes directamente desde Firebase Storage en el navegador. Sin una política de CORS que permita su dominio, esas solicitudes serán bloqueadas. Omita esta sección si no exporta conversaciones como PNG.

Cree el archivo de configuración CORS. En un editor de texto, cree cors.json y permita el acceso desde su dominio:

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

Aplique la configuración. Desde el directorio que contiene cors.json, ejecute el siguiente comando, reemplazando <your-cloud-storage-bucket> con el nombre de su bucket:

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

Verifique la configuración. Recupere la política activa y confirme que coincide con cors.json:

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

Pruébelo. Exporte una conversación como PNG desde su origen permitido. Si todo está configurado correctamente, la exportación se realizará con éxito sin errores de CORS.

Consejo de seguridad

Solo permita CORS para orígenes de confianza y limite los métodos y encabezados a lo que su despliegue realmente necesite.

¿Qué te parece esta guía?