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

CDN do Firebase

Este documento fornece instruções para configurar o Firebase Storage como uma CDN para o LibreChat

O Firebase Storage integra-se à CDN global do Firebase Hosting, permitindo que você sirva arquivos armazenados no Firebase Storage através de localizações de borda (edge locations) ao redor do mundo. É uma das opções de armazenamento de arquivos com suporte a CDN do LibreChat, juntamente com o CloudFront for S3.

O que você precisará

Uma conta Google e aproximadamente 10 minutos. Você criará um projeto no Firebase, ativará o Cloud Storage, registrará um aplicativo web para obter as credenciais e, em seguida, configurará o LibreChat para utilizá-las.

Criar um projeto no Firebase

Abra o Firebase e faça login. Acesse o site do Firebase, clique em Get started e faça login com sua conta Google.

Nomeie seu projeto. Você pode reutilizar o mesmo projeto do Google OAuth, caso já possua um.

Nomeando o projeto Firebase

Configure o Google Analytics (opcional). Você pode desativar o Google Analytics para este projeto.

Alternância do Google Analytics

Crie o projeto. Aguarde 20-30 segundos para que o provisionamento seja concluído e, em seguida, clique em Continue.

Projeto pronto, clique em Continuar

Habilitar Armazenamento em Nuvem

Abrir Todos os Produtos. No painel do projeto, clique em All Products.

Menu de Todos os Produtos

Selecione Storage, então clique em Get Started.

Selecionar Armazenamento

Storage Get Started

Confirme as regras de segurança. Clique em Next para continuar.

Etapa de regras de segurança

Escolha um local de Armazenamento em Nuvem, depois conclua a configuração e retorne para a Visão Geral do Projeto.

Selecionar local de armazenamento em nuvem

Registrar um Web App

Adicione um aplicativo web. Na Visão Geral do Projeto (Project Overview), clique em + Add app abaixo do nome do seu projeto e, em seguida, escolha Web.

Adicionar um aplicativo web

Registre o app e dê a ele um apelido.

Registrar o aplicativo

Copie os seus valores de firebaseConfig. Salve a configuração exibida em um local seguro.

Valores de configuração do Firebase

Adicione os valores ao seu .env file. Mapeie cada valor de firebaseConfig para a variável correspondente:

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

Atualizar Regras de Armazenamento

Regras de Open Storage. Retorne à Visão Geral do Projeto, selecione Storage e, em seguida, abra a aba Rules.

Open Storage

Permitir acesso de leitura e gravação. Altere allow read, write: if false; para if true; para que corresponda às regras abaixo:

rules_version = '2';

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

Regras de armazenamento atualizadas

Publique suas alterações.

Publish rules

Configurar o LibreChat

Defina fileStrategy como firebase no seu arquivo de configuração librechat.yaml para que o LibreChat utilize o Firebase para armazenamento de arquivos:

version: 1.3.5
cache: true
fileStrategy: 'firebase'

Para mais informações sobre este arquivo, consulte o guia do librechat.yaml.

Habilitar CORS para Exportações PNG

Necessário apenas para exportações em PNG

Exportar conversas como PNG busca imagens diretamente do Firebase Storage no navegador. Sem uma política de CORS que permita o seu domínio, essas solicitações são bloqueadas. Ignore esta seção se você não exporta conversas como PNG.

Crie o arquivo de configuração CORS. Em um editor de texto, crie o cors.json e permita o acesso a partir do seu domínio:

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

Aplique a configuração. A partir do diretório que contém o cors.json, execute o comando abaixo, substituindo <your-cloud-storage-bucket> pelo nome do seu bucket:

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

Verifique as configurações. Recupere a política ativa e confirme se ela corresponde ao cors.json:

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

Teste. Exporte uma conversa como PNG a partir da sua origem permitida. Se tudo estiver configurado corretamente, a exportação será bem-sucedida sem erros de CORS.

Dica de segurança

Permita CORS apenas para origens confiáveis e limite os métodos e cabeçalhos ao que sua implantação realmente precisa.

Como está este guia?