spatie/laravel-backup
Spatie Laravel Backup creates zip backups of your app files and database, storing them on any Laravel filesystem (even multiple). Includes health monitoring, notifications, and automatic cleanup of old backups. Run with php artisan backup:run.
Previously the archive was written unencrypted and then rewritten with encryption by the EncryptBackupArchive listener, writing large backups to disk twice. Encryption is now applied per file while the zip is built, so the archive is only written once. The configuration (backup.backup.password and backup.backup.encryption) and the resulting archives are unchanged.
Upgrade notes
Spatie\Backup\Listeners\EncryptBackupArchive is deprecated and no longer registered. If you registered this listener yourself, remove that registration. The class is kept and still works for backwards compatibility.backup.backup.encryption to 'none' instead.BackupFailed instead of silently producing an unencrypted archive.Full Changelog: https://github.com/spatie/laravel-backup/compare/10.2.2...10.3.0
backup:clean command now resolves the cleanup strategy from the config passed via --config instead of always using the default config's strategy (#1976). Reported in #1975.File::mimeType() (#1977).Fix German translations in notifications.php
Full Changelog: https://github.com/spatie/laravel-backup/compare/10.1.0...10.1.1
Add log_channel config option to control where backup activity logs are written. Set to a channel name to redirect logs, false to disable logging, or null (default) to keep existing behavior.
Fix callMethodOnDumper treating false config values as no-argument calls (#1961)
Full Changelog: https://github.com/spatie/laravel-backup/compare/10.0.0...10.0.1
v10 is a major release requiring PHP 8.4+ and Laravel 12+. See the upgrade guide for migration instructions.
string $diskName, string $backupName) instead of BackupDestination or BackupDestinationStatus objects — events can now be used with queued listenersconsoleOutput() helper replaced by backupLogger()ConsoleOutput class removedBackupJob::disableNotifications() removed — use EventHandler::disable() insteadCleanupStrategy constructor changed from Repository $config to Config $confignull/false/'default' to 'none'/'default'/'aes128'/'aes192'/'aes256'BackupDestinationStatus::getHealthCheckFailure() replaced by getHealthCheckFailures() (returns a collection)continue_on_failure config optionverify_backup config option)--filename-suffix, --exclude, --destination-pathstorage/framework excluded by defaultFull Changelog: https://github.com/spatie/laravel-backup/compare/9.4.0...9.4.1
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.3.7...9.4.0
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.3.6...9.3.7
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.3.5...9.3.6
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.3.4...9.3.5
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.3.3...9.3.4
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.3.2...9.3.3
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.3.1...9.3.2
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.3.0...9.3.1
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.2.9...9.3.0
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.2.8...9.2.9
only() from tests by @pxpm in https://github.com/spatie/laravel-backup/pull/1875Full Changelog: https://github.com/spatie/laravel-backup/compare/9.2.4...9.2.8
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.2.6...9.2.7
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.2.5...9.2.6
only() from tests by @pxpm in https://github.com/spatie/laravel-backup/pull/1875Full Changelog: https://github.com/spatie/laravel-backup/compare/9.2.4...9.2.5
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.2.3...9.2.4
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.2.2...9.2.3
Slovak language by @patressz in https://github.com/spatie/laravel-backup/pull/1870Full Changelog: https://github.com/spatie/laravel-backup/compare/9.2.1...9.2.2
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.2.0...9.2.1
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.1.3...9.2.0
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.1.2...9.1.3
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.1.1...9.1.2
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.1.0...9.1.1
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.0.4...9.1.0
Full Changelog: https://github.com/spatie/laravel-backup/compare/8.8.1...8.8.2
backup.notifications.discord.username to fail sending a notification by @RVxLab in https://github.com/spatie/laravel-backup/pull/1821Full Changelog: https://github.com/spatie/laravel-backup/compare/9.0.3...9.0.4
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.0.2...9.0.3
Full Changelog: https://github.com/spatie/laravel-backup/compare/9.0.1...9.0.2
How can I help you explore Laravel packages today?