Stockage Blob Azure
Ce document fournit des instructions pour configurer Azure Blob Storage pour LibreChat
Configuration pour la production
Azure Blob Storage offre un stockage d'objets évolutif et sécurisé pour les fichiers dans LibreChat. Suivez ces étapes pour configurer votre Azure Blob Storage.
1. Créer un compte de stockage Azure
-
Connectez-vous à Azure :
- Ouvrez le Azure Portal et connectez-vous avec votre compte Microsoft.
-
Créer un compte de stockage :
- Cliquez sur "Create a resource" et recherchez "Storage account".
- Cliquez sur "Create" et remplissez les détails requis :
- Abonnement et groupe de ressources : Choisissez votre abonnement et sélectionnez un groupe de ressources existant ou créez-en un nouveau.
- Nom du compte de stockage : Entrez un nom unique (par ex.
mylibrechatstorage). - Région : Sélectionnez la région la plus proche de vos utilisateurs.
- Performance & Redundancy : Choisissez le niveau de performance et le niveau de redondance qui correspondent le mieux à vos besoins.
- Cliquez sur "Review + Create" puis sur "Create". Attendez que le déploiement soit terminé.
2. Configurer l'authentification
Vous avez deux options pour vous authentifier avec votre compte Azure Storage :
Option A : Utilisation d'une chaîne de connexion
-
Accédez aux clés d'accès :
- Dans votre compte de stockage nouvellement créé, allez dans "Access keys" dans la barre latérale.
-
Copier la chaîne de connexion :
- Copiez l'une des chaînes de connexion fournies. Cette chaîne inclut les identifiants requis pour vous connecter à votre compte Blob Storage.
Option B : Utilisation d'une identité gérée (Managed Identity)
Si votre application LibreChat s'exécute sur un service Azure prenant en charge Managed Identity (tel qu'une machine virtuelle Azure, App Service ou AKS), vous pouvez l'utiliser à la place d'une chaîne de connexion.
-
Attribuer une identité gérée :
- Assurez-vous que votre ressource Azure (VM, App Service ou AKS) dispose d'une Managed Identity assignée par le système ou par l'utilisateur.
-
Accorder les permissions de stockage :
- Dans votre compte de stockage, attribuez le rôle Storage Blob Data Contributor (ou un rôle à portée similaire) à votre Managed Identity. Cela permet à votre application d'accéder au Blob Storage sans chaîne de connexion.
3. Mettez à jour vos variables d'environnement
Créez ou mettez à jour votre fichier .env à la racine de votre projet avec la configuration suivante :
- AZURE_STORAGE_CONNECTION_STRING: Définissez ceci si vous utilisez l'Option A.
- AZURE_STORAGE_ACCOUNT_NAME : Définissez cette variable si vous utilisez l'Option B (Identité gérée). Ne définissez pas les deux.
- AZURE_STORAGE_PUBLIC_ACCESS: Définissez sur
falsesi vous ne souhaitez pas que vos blobs soient accessibles publiquement par défaut. Définissez surtruesi vous avez besoin d'un accès public (par exemple, pour des images consultables publiquement). - AZURE_CONTAINER_NAME : Il s'agit du nom du conteneur que votre application utilisera (par exemple,
files). L'application créera automatiquement ce conteneur s'il n'existe pas.
4. Configurer LibreChat pour utiliser Azure Blob Storage
Mettez à jour votre fichier de configuration LibreChat (librechat.yaml) pour spécifier que l'application doit utiliser Azure Blob Storage pour la gestion des fichiers :
Azure Blob Storage est un stockage d'objets, pas un CDN
Azure Blob Storage stocke et sert les fichiers directement depuis l'origine — ce n'est pas un CDN. Les images et les avatars sont mieux servis via un CDN pour des performances optimales et une diffusion mondiale. Actuellement, Firebase est la seule option de stockage prise en charge par un CDN.
Vous pouvez utiliser fileStrategies pour acheminer uniquement les avatars et les images vers Firebase tout en conservant les documents sur Azure Blob Storage :
Résumé
-
Créer un compte de stockage :
Connectez-vous au portail Azure, créez un compte de stockage et attendez la fin du déploiement. -
Configurer l'authentification :
- Option A : Récupérez la chaîne de connexion depuis "Access keys" dans votre compte de stockage.
- Option B : Utilisez une identité gérée (Managed Identity) en l'activant sur votre ressource Azure et en lui accordant les autorisations de stockage appropriées.
- Mise à jour des variables d'environnement :
Dans votre fichier.env, définissez l'une ou l'autre des options suivantes :
AZURE_STORAGE_CONNECTION_STRING(pour l'Option A), ouAZURE_STORAGE_ACCOUNT_NAME(pour l'Option B), ainsi que :AZURE_STORAGE_PUBLIC_ACCESSetAZURE_CONTAINER_NAME.
- Configurer LibreChat :
DéfinissezfileStrategysur"azure_blob"dans votre fichier de configurationlibrechat.yaml.
Avec ces étapes, votre application LibreChat créera automatiquement le conteneur (s'il n'existe pas) et gérera les téléchargements, les envois et les suppressions de fichiers en utilisant Azure Blob Storage. Managed Identity offre une alternative sécurisée en éliminant le besoin d'identifiants à long terme.
Développement local avec Azurite
Pour le développement et les tests locaux, vous pouvez utiliser Azurite, un émulateur de stockage Azure qui fournit un environnement local pour tester votre intégration Azure Blob Storage sans avoir besoin d'un compte Azure réel.
1. Configurer Azurite
Vous pouvez exécuter Azurite de plusieurs manières :
Option A : Utilisation de l'extension VS Code (Recommandé pour le développement)
- Installez l'extension Azurite pour VS Code
- Ouvrez la palette de commandes (Ctrl+Shift+P ou Cmd+Shift+P)
- Recherchez et sélectionnez "Azurite: Start"
Ceci démarrera Azurite en arrière-plan avec les paramètres par défaut.
Option B : Utilisation de Docker
Option C : Utilisation de npm
2. Configurer les variables d'environnement pour le développement local
Ajoutez les variables d'environnement suivantes à votre fichier .env :
Notes :
- La valeur
AccountKeyest la clé de développement par défaut utilisée par Azurite - La connexion utilise le protocole
httpau lieu dehttpspour le développement local - Le
BlobEndpointpointe vers l'instance Azurite locale s'exécutant sur le port 10000
3. Vérifier la connexion
Pour vérifier que votre application peut se connecter à l'instance Azurite locale :
- Démarrez votre application LibreChat
- Tenter de télécharger un fichier via l'interface
- Vérifiez les journaux d'Azurite pour confirmer la connexion et les opérations
Si vous utilisez l'extension VS Code, vous pouvez consulter les journaux Azurite dans le panneau Output en sélectionnant "Azurite Blob" dans le menu déroulant.
Note
La clé de compte Azurite par défaut est une valeur fixe utilisée uniquement à des fins de développement. N'utilisez jamais cette clé dans des environnements de production. Assurez-vous toujours que votre chaîne de connexion reste sécurisée et ne la validez jamais dans un dépôt public.
Que pensez-vous de ce guide ?