Azure Blob Depolama
Bu belge, LibreChat için Azure Blob Storage kurulumuna dair talimatları içerir
Üretim Kurulumu
Azure Blob Storage, LibreChat'teki dosyalar için ölçeklenebilir ve güvenli nesne depolama alanı sunar. Azure Blob Storage yapılandırmanızı gerçekleştirmek için şu adımları izleyin.
1. Bir Azure Storage Account oluşturun
-
Azure'da oturum açın:
- Azure Portal adresini açın ve Microsoft hesabınızla giriş yapın.
-
Depolama Hesabı Oluşturun:
- "Create a resource" öğesine tıklayın ve "Storage account" araması yapın.
- "Create" düğmesine tıklayın ve gerekli ayrıntıları doldurun:
- Abonelik ve Kaynak Grubu: Aboneliğinizi seçin ve mevcut bir kaynak grubunu seçin ya da yeni bir tane oluşturun.
- Depolama Hesabı Adı: Benzersiz bir ad girin (örneğin,
mylibrechatstorage). - Bölge: Kullanıcılarınıza en yakın bölgeyi seçin.
- Performans ve Yedeklilik: İhtiyaçlarınıza en uygun performans katmanını ve yedeklilik seviyesini seçin.
- "Review + Create" (Gözden Geçir + Oluştur) düğmesine ve ardından "Create" (Oluştur) düğmesine tıklayın. Dağıtım tamamlanana kadar bekleyin.
2. Kimlik Doğrulamayı Ayarlayın
Azure Storage Account ile kimlik doğrulaması yapmak için iki seçeneğiniz vardır:
Seçenek A: Bağlantı Dizisi (Connection String) Kullanma
-
Erişim Anahtarlarına gidin:
- Yeni oluşturduğunuz depolama hesabınızda, kenar çubuğundaki "Access keys" kısmına gidin.
-
Bağlantı Dizesini Kopyala:
- Sağlanan bağlantı dizelerinden birini kopyalayın. Bu dize, Blob Storage hesabınıza bağlanmak için gereken kimlik bilgilerini içerir.
Seçenek B: Yönetilen Kimlik (Managed Identity) Kullanımı
LibreChat uygulamanız Yönetilen Kimliği (Managed Identity) destekleyen bir Azure hizmetinde (Azure VM, App Service veya AKS gibi) çalışıyorsa, bağlantı dizesi yerine bunu kullanabilirsiniz.
-
Yönetilen Kimliği Ata:
- Azure kaynağınızın (VM, App Service veya AKS) sistem tarafından atanan veya kullanıcı tarafından atanan bir Managed Identity özelliğinin etkinleştirildiğinden emin olun.
-
Depolama İzinlerini Verin:
- Depolama hesabınızda, Storage Blob Data Contributor (veya benzer kapsamlı bir rolü) Yönetilen Kimliğinize (Managed Identity) atayın. Bu, uygulamanızın bir bağlantı dizesine ihtiyaç duymadan Blob Storage'a erişmesini sağlar.
3. Ortam Değişkenlerinizi Güncelleyin
Projenizin kök dizinindeki .env dosyanızı aşağıdaki yapılandırmayla oluşturun veya güncelleyin:
# Option A: Using a Connection String
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=yourAccountKey;EndpointSuffix=core.windows.net
# Option B: Using Managed Identity (do not set the connection string if using Managed Identity)
AZURE_STORAGE_ACCOUNT_NAME=yourAccountName
AZURE_STORAGE_PUBLIC_ACCESS=false
AZURE_CONTAINER_NAME=files- AZURE_STORAGE_CONNECTION_STRING: A seçeneğini kullanıyorsanız bunu ayarlayın.
- AZURE_STORAGE_ACCOUNT_NAME: B Seçeneğini (Yönetilen Kimlik) kullanıyorsanız bunu ayarlayın. İkisini birden ayarlamayın.
- AZURE_STORAGE_PUBLIC_ACCESS: Bloblarınızın varsayılan olarak herkese açık olmasını istemiyorsanız
falseolarak ayarlayın. Herkese açık erişime ihtiyacınız varsa (örneğin, herkese açık olarak görüntülenebilir görseller için)trueolarak ayarlayın. - AZURE_CONTAINER_NAME: Bu, uygulamanızın kullanacağı kapsayıcı adıdır (örneğin,
files). Uygulama, mevcut değilse bu kapsayıcıyı otomatik olarak oluşturacaktır.
4. LibreChat'i Azure Blob Storage Kullanacak Şekilde Yapılandırın
LibreChat yapılandırma dosyanızı (librechat.yaml), uygulamanın dosya işleme için Azure Blob Storage kullanması gerektiğini belirtecek şekilde güncelleyin:
version: 1.3.5
cache: true
fileStrategy: "azure_blob"Azure Blob Storage bir nesne depolama alanıdır, CDN değildir
Azure Blob Storage, dosyaları doğrudan kaynaktan depolar ve sunar; bir CDN değildir. Görseller ve avatarlar, en iyi performans ve küresel dağıtım için bir CDN aracılığıyla sunulmalıdır. Şu anda, Firebase CDN destekli tek depolama seçeneğidir.
Belgeleri Azure Blob Storage üzerinde tutarken yalnızca avatar ve görselleri Firebase'e yönlendirmek için fileStrategies kullanabilirsiniz:
fileStrategies:
avatar: "firebase"
image: "firebase"
document: "azure_blob"Özet
-
Depolama Hesabı Oluşturun:
Azure Portal'da oturum açın, bir depolama hesabı oluşturun ve dağıtımın tamamlanmasını bekleyin. -
Kimlik Doğrulamayı Ayarlayın:
- Seçenek A: Depolama hesabınızdaki "Access keys" kısmından bağlantı dizesini alın.
- Seçenek B: Azure kaynağınızda Managed Identity özelliğini etkinleştirerek ve ona uygun depolama izinlerini vererek kullanın.
- Ortam Değişkenlerini Güncelleyin:
.envdosyanızda şunlardan birini ayarlayın:
AZURE_STORAGE_CONNECTION_STRING(Seçenek A için) veyaAZURE_STORAGE_ACCOUNT_NAME(Seçenek B için), şunlarla birlikte:AZURE_STORAGE_PUBLIC_ACCESSveAZURE_CONTAINER_NAME.
- LibreChat'i Yapılandırın:
librechat.yamlyapılandırma dosyanızdafileStrategydeğerini"azure_blob"olarak ayarlayın.
Bu adımlarla, LibreChat uygulamanız konteyneri otomatik olarak oluşturacak (eğer mevcut değilse) ve Azure Blob Storage kullanarak dosya yükleme, indirme ve silme işlemlerini yönetecektir. Managed Identity, uzun vadeli kimlik bilgileri ihtiyacını ortadan kaldırarak güvenli bir alternatif sunar.
Azurite ile Yerel Geliştirme
Yerel geliştirme ve test işlemleri için, gerçek bir Azure hesabına ihtiyaç duymadan Azure Blob Storage entegrasyonunuzu test etmeniz amacıyla yerel bir ortam sağlayan bir Azure Storage emülatörü olan Azurite kullanabilirsiniz.
1. Azurite'i Kurun
Azurite'i birkaç farklı yolla çalıştırabilirsiniz:
Seçenek A: VS Code Eklentisi Kullanma (Geliştirme için Önerilir)
- VS Code için Azurite extension eklentisini yükleyin
- Komut paletini açın (Ctrl+Shift+P veya Cmd+Shift+P)
- "Azurite: Start" ifadesini arayın ve seçin
Bu, Azurite'i varsayılan ayarlarla arka planda başlatacaktır.
Seçenek B: Docker Kullanarak
docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azuriteSeçenek C: npm kullanma
npm install -g azurite
azurite --silent --location /path/to/azurite/workspace --debug /path/to/debug/log2. Yerel Geliştirme için Ortam Değişkenlerini Yapılandırma
.env dosyanıza aşağıdaki ortam değişkenlerini ekleyin:
# Azurite connection string for local development
AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;"
AZURE_STORAGE_PUBLIC_ACCESS=true
AZURE_CONTAINER_NAME=filesNotlar:
AccountKeydeğeri, Azurite tarafından kullanılan varsayılan geliştirme anahtarıdır- Bağlantı, yerel geliştirme için
httpsyerinehttpprotokolünü kullanır BlobEndpoint, 10000 numaralı bağlantı noktasında çalışan yerel Azurite örneğini işaret eder.
3. Bağlantıyı Doğrulayın
Uygulamanızın yerel Azurite örneğine bağlanabildiğini doğrulamak için:
- LibreChat uygulamanızı başlatın
- Arayüz üzerinden bir dosya yüklemeyi deneyin
- Bağlantıyı ve işlemleri doğrulamak için Azurite günlüklerini kontrol edin
VS Code eklentisini kullanıyorsanız, açılır menüden "Azurite Blob" seçeneğini belirleyerek Output panelinde Azurite günlüklerini görüntüleyebilirsiniz.
Not
Varsayılan Azurite hesap anahtarı, yalnızca geliştirme amaçlı kullanılan sabit bir değerdir. Bu anahtarı hiçbir zaman üretim ortamlarında kullanmayın. Bağlantı dizenizin her zaman güvende olduğundan emin olun ve asla herkese açık bir depoya (repository) işlemeyin.
Bu rehber nasıl?
S3 ile CloudFront
S3'te depolanan LibreChat dosyaları için kararlı medya bağlantıları, imzalı çerezler ve imzalı indirme URL'leri dahil olmak üzere Amazon CloudFront'u CDN katmanı olarak yapılandırın.
Firebase CDN
Bu belge, Firebase Storage'ı LibreChat için bir CDN olarak ayarlamaya yönelik talimatları sağlar