Azure Blob Storage
Dokumen ini menyediakan instruksi untuk mengatur Azure Blob Storage untuk LibreChat
Di halaman ini
Pengaturan Produksi
Azure Blob Storage menawarkan penyimpanan objek yang dapat diskalakan dan aman untuk file di LibreChat. Ikuti langkah-langkah berikut untuk mengonfigurasi Azure Blob Storage Anda.
1. Buat Azure Storage Account
-
Masuk ke Azure:
- Buka Azure Portal dan masuk dengan akun Microsoft Anda.
-
Buat Akun Penyimpanan (Storage Account):
- Klik "Create a resource" dan cari "Storage account".
- Klik "Create" dan isi detail yang diperlukan:
- Langganan & Grup Sumber Daya: Pilih langganan Anda dan pilih grup sumber daya yang sudah ada atau buat yang baru.
- Nama Akun Penyimpanan: Masukkan nama unik (contoh:
mylibrechatstorage). - Wilayah: Pilih wilayah yang paling dekat dengan pengguna Anda.
- Performa & Redundansi: Pilih tingkat performa dan tingkat redundansi yang paling sesuai dengan kebutuhan Anda.
- Klik "Review + Create" lalu "Create". Tunggu hingga penyebaran (deployment) selesai.
2. Mengatur Autentikasi
Anda memiliki dua opsi untuk melakukan autentikasi dengan Azure Storage Account Anda:
Opsi A: Menggunakan Connection String
-
Arahkan ke Access Keys:
- Di akun penyimpanan yang baru Anda buat, buka "Access keys" di bilah sisi.
-
Salin Connection String:
- Salin salah satu string koneksi yang disediakan. String ini mencakup kredensial yang diperlukan untuk terhubung ke akun Blob Storage Anda.
Opsi B: Menggunakan Managed Identity
Jika aplikasi LibreChat Anda berjalan pada layanan Azure yang mendukung Managed Identity (seperti Azure VM, App Service, atau AKS), Anda dapat menggunakannya sebagai pengganti connection string.
-
Tetapkan Managed Identity:
- Pastikan sumber daya Azure Anda (VM, App Service, atau AKS) telah mengaktifkan Managed Identity yang ditetapkan oleh sistem (system-assigned) atau oleh pengguna (user-assigned).
-
Berikan Izin Penyimpanan:
- Di akun penyimpanan Anda, tetapkan Storage Blob Data Contributor (atau peran dengan cakupan serupa) ke Managed Identity Anda. Ini memungkinkan aplikasi Anda untuk mengakses Blob Storage tanpa string koneksi.
3. Perbarui Variabel Lingkungan Anda
Buat atau perbarui file .env Anda di root proyek Anda dengan konfigurasi berikut:
# 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: Atur ini jika Anda menggunakan Opsi A.
- AZURE_STORAGE_ACCOUNT_NAME: Atur ini jika Anda menggunakan Opsi B (Managed Identity). Jangan atur keduanya.
- AZURE_STORAGE_PUBLIC_ACCESS: Atur ke
falsejika Anda tidak ingin blob Anda dapat diakses secara publik secara default. Atur ketruejika Anda memerlukan akses publik (misalnya, untuk gambar yang dapat dilihat publik). - AZURE_CONTAINER_NAME: Ini adalah nama container yang akan digunakan oleh aplikasi Anda (contoh:
files). Aplikasi akan secara otomatis membuat container ini jika belum ada.
4. Konfigurasi LibreChat untuk Menggunakan Azure Blob Storage
Perbarui file konfigurasi LibreChat Anda (librechat.yaml) untuk menentukan bahwa aplikasi harus menggunakan Azure Blob Storage untuk penanganan file:
version: 1.3.5
cache: true
fileStrategy: "azure_blob"Azure Blob Storage adalah penyimpanan objek, bukan CDN
Azure Blob Storage menyimpan dan menyajikan file secara langsung dari origin — ini bukan CDN. Gambar dan avatar paling baik disajikan melalui CDN untuk kinerja optimal dan pengiriman global. Saat ini, Firebase adalah satu-satunya opsi penyimpanan yang didukung CDN.
Anda dapat menggunakan fileStrategies untuk mengarahkan avatar dan gambar saja ke Firebase sementara tetap menyimpan dokumen di Azure Blob Storage:
fileStrategies:
avatar: "firebase"
image: "firebase"
document: "azure_blob"Ringkasan
-
Membuat Akun Penyimpanan (Storage Account):
Masuk ke Azure Portal, buat akun penyimpanan, dan tunggu hingga penyebaran selesai. -
Siapkan Autentikasi:
- Opsi A: Ambil string koneksi dari "Access keys" di akun penyimpanan Anda.
- Opsi B: Gunakan Managed Identity dengan mengaktifkannya pada sumber daya Azure Anda dan memberikan izin penyimpanan yang sesuai.
- Perbarui Variabel Lingkungan:
Di dalam file.envAnda, atur salah satu dari berikut:
AZURE_STORAGE_CONNECTION_STRING(untuk Opsi A), atauAZURE_STORAGE_ACCOUNT_NAME(untuk Opsi B), beserta:AZURE_STORAGE_PUBLIC_ACCESSdanAZURE_CONTAINER_NAME.
- Konfigurasi LibreChat:
AturfileStrategyke"azure_blob"di dalam file konfigurasilibrechat.yamlAnda.
Dengan langkah-langkah ini, aplikasi LibreChat Anda akan secara otomatis membuat kontainer (jika belum ada) serta mengelola unggahan, unduhan, dan penghapusan file menggunakan Azure Blob Storage. Managed Identity menyediakan alternatif yang aman dengan menghilangkan kebutuhan akan kredensial jangka panjang.
Pengembangan Lokal dengan Azurite
Untuk pengembangan dan pengujian lokal, Anda dapat menggunakan Azurite, sebuah emulator Azure Storage yang menyediakan lingkungan lokal untuk menguji integrasi Azure Blob Storage Anda tanpa memerlukan akun Azure yang sebenarnya.
1. Siapkan Azurite
Anda dapat menjalankan Azurite dengan beberapa cara:
Opsi A: Menggunakan Ekstensi VS Code (Direkomendasikan untuk Pengembangan)
- Instal ekstensi Azurite untuk VS Code
- Buka palet perintah (Ctrl+Shift+P atau Cmd+Shift+P)
- Cari dan pilih "Azurite: Start"
Ini akan menjalankan Azurite di latar belakang dengan pengaturan default.
Opsi B: Menggunakan Docker
docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azuriteOpsi C: Menggunakan npm
npm install -g azurite
azurite --silent --location /path/to/azurite/workspace --debug /path/to/debug/log2. Konfigurasi Variabel Lingkungan untuk Pengembangan Lokal
Tambahkan variabel lingkungan berikut ke file .env Anda:
# 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=filesCatatan:
- Nilai
AccountKeyadalah kunci pengembangan default yang digunakan oleh Azurite - Koneksi menggunakan protokol
httpalih-alihhttpsuntuk pengembangan lokal BlobEndpointmengarah ke instans Azurite lokal yang berjalan pada port 10000
3. Verifikasi Koneksi
Untuk memverifikasi bahwa aplikasi Anda dapat terhubung ke instance Azurite lokal:
- Mulai aplikasi LibreChat Anda
- Mencoba mengunggah file melalui antarmuka
- Periksa log Azurite untuk mengonfirmasi koneksi dan operasi
Jika Anda menggunakan ekstensi VS Code, Anda dapat melihat log Azurite di panel Output dengan memilih "Azurite Blob" dari menu dropdown.
Catatan
Kunci akun Azurite default adalah nilai tetap yang digunakan hanya untuk tujuan pengembangan. Jangan pernah menggunakan kunci ini di lingkungan produksi. Selalu pastikan string koneksi Anda tetap aman dan jangan pernah melakukan commit ke repositori publik.
Bagaimana panduan ini?
CloudFront dengan S3
Konfigurasikan Amazon CloudFront sebagai lapisan CDN untuk file LibreChat yang disimpan di S3, termasuk tautan media yang stabil, cookie yang ditandatangani, dan URL unduhan yang ditandatangani.
CDN Firebase
Dokumen ini menyediakan instruksi untuk mengatur Firebase Storage sebagai CDN untuk LibreChat