Laravel uygulamalarınızı yedeklemek, artık yalnızca dosyaları yerel bir klasöre atmak anlamına gelmiyor. Artık işlemleri çok daha kolay bir hale getiren Laravel Backup v2.0 ile hem Google Drive hem de S3-uyumlu depolama (AWS, Backblaze B2, MinIO, DigitalOcean Spaces) ile çoklu hedef yedeklemeleri aynı anda gerçekleştirebilirsiniz.
Güncelleme Hikayesi
Güncelleme Hikayesi
v1.0: “Yerel depolama yedeği”
v2.0: “Herkese aynı anda yedekleme”
Kurulum Yapalım
Kurulum Yapalım
Adım 1: Kurulum
Adım 1: Kurulum
composer require avcodewizard/laravel-backup
composer require google/apiclient # Google Drive için
composer require aws/aws-sdk-php # S3 için
Yapılandırma otomatik olarak yayımlanıyor. vendor:publish gerekmiyor. ✨
Adım 2: Google Drive (OAuth 2.0)
Adım 2: Google Drive (OAuth 2.0)
Önemli kısım: Kimlik doğrulama komutu, tam yönlendirme URL’nizi veya sadece kodu kabul ediyor.
php artisan backup:google-auth
Bu URL'yi ziyaret edin: https://accounts.google.com/o/oauth2/...
Tam URL veya yetkilendirme kodunu yapıştırın:
> http://localhost/?code=4/0AeoWuM8YPEQ33BC09c...
=== BAŞARILI ===
GOOGLE_DRIVE_REFRESH_TOKEN=1//0g4fGXguTx9gVCgYIARA...
O yenileyici token’ı .env dosyanıza kopyalayın ve tüm hazırlıklarınız tamam.
Adım 3: S3 / Backblaze B2
Adım 3: S3 / Backblaze B2
Backblaze B2, S3 uyumlu olup 10GB ücretsiz sunuyor. Test için mükemmel.
AWS_ACCESS_KEY_ID=your-b2-key-id
AWS_SECRET_ACCESS_KEY=your-b2-secret
AWS_DEFAULT_REGION=us-east-005
AWS_BUCKET=laravel-backups
AWS_ENDPOINT=https://s3.us-east-005.backblazeb2.com
Adım 4: Yapılandırma
Adım 4: Yapılandırma
// config/laravelBackup.php
'destinations' => [
'local' => [
'enabled' => true,
'path' => storage_path(),
],
's3' => [
'enabled' => true,
'key' => env(),
'secret' => env(),
'region' => env(),
'bucket' => env(),
'endpoint' => env(),
'path' => ,
],
'google_drive' => [
'enabled' => true,
'client_id' => env(),
'client_secret' => env(),
'refresh_token' => env(),
'folder_id' => env(),
'path' => ,
],
],
'keep_days' => 7,
'cleanup_scope' => , // veya 'local'
Adım 5: Çalıştır
Adım 5: Çalıştır
php artisan backup:run
Gözlerinizi açın ve sihirle dolu bir işleme tanık olun:
Veritabanı yedeği oluşturuluyor...
Yerel alana yüklendi... ✅
S3'e yüklendi... ✅
Google Drive'a yüklendi... ✅
Eski yedeklemeler temizleniyor...
Yedekleme başarıyla tamamlandı!
Adım 6: Otomatikleştir
Adım 6: Otomatikleştir
routes/console.php dosyasına ekleyin (Laravel 11+):
use Illuminate\Support\Facades\Schedule;
Schedule::call(function () {
Artisan::call();
})->name()->withoutOverlapping()->daily();
Ya da daha eski Laravel sürümleri için (app/Console/Kernel.php):
$schedule->command()->daily();
Web Arayüzü
Web Arayüzü
/laravel-backup adresine giderek tüm yedeklerinizi ve hedeflerinizi gözlemleyin:
- Veritabanı yedekleri
- Depolama yedekleri
- Dosya boyutları
- Depolama konumları
- Tek tıklama ile indirmeler
- Tüm hedeflerde silme işlemleri
Bu Yaklaşım Neden?
Bu Yaklaşım Neden?
Resmi SDK’lar > Flysystem adaptörleri
- Açık hata mesajları ( hiçbir “disk bulunamadı” gizemi yok)
- Tam API desteği (paylaşılan sürücüler, özel uç noktalar, vb.)
- Google için OAuth 2.0 akışı (endüstri standardı)
- Daha iyi hata ayıklama
Hızlı İpuçları
Hızlı İpuçları
- Google için test kullanıcısı: “Erişim engellendi” hatası ile karşılaşırsanız, e-posta adresinizi Google Cloud Console’da test kullanıcısı olarak ekleyin.
- Backblaze ücretsiz katmanı: 10GB ücretsiz, kenar projeler için mükemmel.
- cleanup_scope: Eğer bulut yedeklerini sonsuz süreyle saklamak istiyorsanız,
'local'olarak ayarlayın.
Deneyin
Deneyin
composer require avcodewizard/laravel-backup
GitHub: avcodewizard/laravel-backup
Siz hangi yedekleme stratejisini kullanıyorsunuz? Tek bir hedef mi yoksa çoklu bulut mu? Yorum yapın! 👇
Kaynak: Orijinal Makale


