A package to backup your Laravel app

Overview

Social Card of Laravel Activity Log

A modern backup solution for Laravel apps

Latest Stable Version MIT Licensed GitHub Tests Action Status Quality Score Total Downloads

This Laravel package creates a backup of your application. The backup is a zip file that contains all files in the directories you specify along with a dump of your database. The backup can be stored on any of the filesystems you have configured in Laravel.

Feeling paranoid about backups? No problem! You can backup your application to multiple filesystems at once.

Once installed taking a backup of your files and databases is very easy. Just issue this artisan command:

php artisan backup:run

But we didn't stop there. The package also provides a backup monitor to check the health of your backups. You can be notified via several channels when a problem with one of your backups is found. To avoid using excessive disk space, the package can also clean up old backups.

Support us

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.

Installation and usage

This package requires PHP 8.0 and Laravel 8.0 or higher. You'll find installation instructions and full documentation on https://spatie.be/docs/laravel-backup.

Using an older version of PHP / Laravel?

If you are on a PHP version below 8.0 or a Laravel version below 8.0 just use an older version of this package.

Read the extensive documentation on version 3, on version 4, on version 5 and on version 6. We won't introduce new features to v6 and below anymore but we will still fix bugs.

Testing

Run the tests with:

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security-related issues, please email [email protected] instead of using the issue tracker.

Postcardware

You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using.

Our address is: Spatie, Kruikstraat 22, 2018 Antwerp, Belgium.

We publish all received postcards on our company website.

Credits

And a special thanks to Caneco for the logo

License

The MIT License (MIT). Please see License File for more information.

Comments
  • In version 2: Could not create backup of db L5.0

    In version 2: Could not create backup of db L5.0

    Hi freekmurze, sorry to bother you but Im getting this same errors in the local and digital ocean servers with the S3 and local settings, can you please tell me what can be wrong? mysqldump is install

    appreciate any help, thanks and cool package can it be automatic with the new options in L5.1?

    1. php artisan backup:run Start backing up Determining which files should be backed up... [ErrorException]
      Invalid argument supplied for foreach()
    2. php artisan backup:run --only-db Start backing up
      [Exception]
      Could not create backup of db
    opened by nam-co 48
  • File Not Found Exception Message when using Google Drive

    File Not Found Exception Message when using Google Drive

    I am using the google drive adapter from https://github.com/nao-pon/flysystem-google-drive

    The adapter itself seems to be working as it should. For instance, a test route that saves a simple file and it is stored correctly.

    Route::get('test', function() {
        Storage::disk('google')->put('test.txt', 'Hello World');
    });
    

    When I run php artisan backup:run I get the following error:

    {
        "error": {
             "errors": [
                 {
                     "domain": "global",
                     "reason": "notFound",
                     "message": "File not found: .",
                     "locationType": "parameter",
                     "location": "fileId"
                }
            ],
            "code": 404,
            "message": "File not found: ."
        }
    }
    

    There is more to the error dump but that seems to be the relevant information.

    opened by cringer 36
  • Target [Spatie\Backup\Tasks\Cleanup\CleanupStrategy] is not instantiable while building

    Target [Spatie\Backup\Tasks\Cleanup\CleanupStrategy] is not instantiable while building

    Fail to install v6.

    SO: Windows 10 PHP: 7.3.9 Laravel: 6.0.3 Server: Nginx

    @php artisan package:discover --ansi

    Illuminate\Contracts\Container\BindingResolutionException : Target [Spatie\Backup\Tasks\Cleanup\CleanupStrategy] is not instantiable while building [Spatie\Backup\Commands\CleanupCommand].

    at D:\Dados Importantes\dev\Projetos\MaisControl\MaisSync\painel\vendor\laravel\framework\src\Illuminate\Container\Container.php:979 975| } else { 976| $message = "Target [$concrete] is not instantiable."; 977| } 978|

    979| throw new BindingResolutionException($message); 980| } 981| 982| /** 983| * Throw an exception for an unresolvable primitive.

    Exception trace:

    1 Illuminate\Container\Container::notInstantiable("Spatie\Backup\Tasks\Cleanup\CleanupStrategy") D:\Dados Importantes\dev\Projetos\MaisControl\MaisSync\painel\vendor\laravel\framework\src\Illuminate\Container\Container.php:813

    2 Illuminate\Container\Container::build("Spatie\Backup\Tasks\Cleanup\CleanupStrategy") D:\Dados Importantes\dev\Projetos\MaisControl\MaisSync\painel\vendor\laravel\framework\src\Illuminate\Container\Container.php:262

    Please use the argument -v to see more details. Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1

    Installation failed, reverting ./composer.json to its original content.

    opened by wemersonrv 32
  • allowed memory exhausted on backup:run

    allowed memory exhausted on backup:run

    Hi, When i trying to run a backup through artisan command, i got the following error

    Starting backup...
    Determining files to backup...
    PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 4304 bytes) in /home/xxx/sites/domain.com/www/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php on line 79
    

    My config exclude vendors and others folders from backup. I think is a ZIP problem, but i'm not sure. My box has 4GB of RAM

    Thanks for your help

    opened by racastellanosm 30
  • Misuse of shell builtins.

    Misuse of shell builtins.

    Hi, I got this problem when running backup:run

    Starting backup... Dumping database prostats_db... Backup failed because The dump process failed with exitcode 2 : Misuse of shell builtins. Backup completed!

    I'm running on L5.2, PHP5.6 and Debian 8

    opened by yadounis 27
  • Automatic Backup in Laravel not working

    Automatic Backup in Laravel not working

    scheduling 'backup:clean' and 'backup:run' not working in Laravel 5.7

    This is the code I have in Kernel protected function schedule(Schedule $schedule) { $schedule->command('backup:run') ->everyMinute(); }

    opened by Cyrille09 22
  • Exception when running backup:monitor

    Exception when running backup:monitor

    [Symfony\Component\Debug\Exception\FatalThrowableError]
      Type error: Argument 1 passed to Spatie\Backup\Tasks\Monitor\BackupDestinationStatusFactory::Spatie\Backup\Tasks\Monitor\{closure}() mu
      st be an instance of Spatie\Backup\Tasks\Monitor\BackupDestinationStatus, instance of Illuminate\Support\Collection given, called in /h
      ome/vagrant/Code/entry-system-customdomain/vendor/laravel/framework/src/Illuminate/Support/Collection.php on line 795
    

    Am I doing something wrong?

    I am using version 3.

    My config:

    <?php
    
    return [
    
        'backup' => [
    
            /*
             * The name of this application. You can use this name to monitor
             * the backups.
             */
            'name' => 'Entry System Customdomain',
    
            'source' => [
    
                'files' => [
    
                    /*
                     * The list of directories that should be part of the backup. You can
                     * specify individual files as well.
                     */
                    'include' => [
                        storage_path('app'),
                        storage_path('logs'),
                    ],
    
                    /*
                     * These directories will be excluded from the backup.
                     * You can specify individual files as well.
                     */
                    'exclude' => [
                        //
                    ],
                ],
    
                /*
                 * The names of the connections to the databases  that should be part of the backup.
                 * Currently only MySQL-databases are supported.
                 */
                'databases' => [
                    'dbjump',
                    'entry',
                    'finance',
                    'photo',
                    'status',
                    'website',
                ],
            ],
    
            'destination' => [
    
                /*
                 * The filesystems you on which the backups will be stored. Choose one or more
                 * of the filesystems you configured in app/config/filesystems.php
                 */
                'filesystems' => [
                    'stack',
                    's3',
                ],
            ],
        ],
    
        'cleanup' => [
            /*
             * The strategy that will be used to cleanup old backups.
             * The youngest backup wil never be deleted.
             */
            'strategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
    
            'defaultStrategy' => [
    
                /*
                 * The amount of days that all daily backups must be kept.
                 */
                'keepAllBackupsForDays' => 7,
    
                /*
                 * The amount of days that all daily backups must be kept.
                 */
                'keepDailyBackupsForDays' => 16,
    
                /*
                 * The amount of weeks of which one weekly backup must be kept.
                 */
                'keepWeeklyBackupsForWeeks' => 8,
    
                /*
                 * The amount of months of which one monthly backup must be kept.
                 */
                'keepMonthlyBackupsForMonths' => 4,
    
                /*
                 * The amount of years of which one yearly backup must be kept
                 */
                'keepYearlyBackupsForYears' => 2,
    
                /*
                 * After clean up the backups remove the oldest backup until
                 * this amount of megabytes is reached.
                 */
                'deleteOldestBackupsWhenUsingMoreMegabytesThan' => 5000
            ]
        ],
    
    
        /*
         *  In this array you can specify which backups should be monitored.
         *  If a backup does not meet the specified requirements the
         *  UnHealthyBackupWasFound-event will be fired.
         */
        'monitorBackups' => [
            [
                'name' => 'Entry System Customdomain',
                'filesystems' => ['stack', 's3'],
                'newestBackupsShouldNotBeOlderThanDays' => 1,
                'storageUsedMayNotBeHigherThanMegabytes' => 5000,
            ],
    
            /*
            [
                'name' => 'name of the second app',
                'filesystems' => ['local', 's3'],
                'newestBackupsShouldNotBeOlderThanDays' => 1,
                'storageUsedMayNotBeHigherThanMegabytes' => 5000,
            ],
            */
        ],
    
        'notifications' => [
    
            /*
             * This class will be used to send all notifications.
             */
            'handler' => Spatie\Backup\Notifications\Notifier::class,
    
            /*
             * Here you can specify the ways you want to be notified when certain
             * events take place. Possible values are "log", "mail" and "slack".
             *
             * Slack requires the installation of the maknz/slack package
             */
            'events' => [
                'whenBackupWasSuccessful'     => ['log'],
                'whenCleanupWasSuccessful'    => ['log'],
                'whenHealthyBackupWasFound'   => ['log'],
                'whenBackupHasFailed'         => ['log', 'mail'],
                'whenCleanupHasFailed'        => ['log', 'mail'],
                'whenUnHealthyBackupWasFound' => ['log', 'mail']
            ],
    
            /*
             * Here you can specify how mails should be sent.
             */
            'mail' => [
                'from' => '[email protected]',
                'to' => '[email protected]',
            ],
    
            /*
             * Here you can how messages should be sent to Slack.
             */
            'slack' => [
                'channel'  => '#backups',
                'username' => 'Backup bot',
                'icon'     => ':robot:',
            ],
        ]
    ];
    
    opened by georgeboot 21
  • All backups gone, and backup:monitor doesn't work now

    All backups gone, and backup:monitor doesn't work now

    4 days ago I updated to v6, and everything worked fine, until today.

    All of a sudden, all my backups are gone this morning (I have all my scheduled backups jobs running at night), and backup:monitor doesn't work anymore, even after manually running a backup and then backup:monitor, it tells me that there's no backups and it's unhealthy.

    backup:list doesn't work correct either. It's showing the wrong disk and no backups as well. I'm using S3 as disk.

    I thought that maybe it was because I forgot to update the backup.php config file, to match the newest v6 file, so I just did that, and it still doesn't work.

    But again, it worked without the v6 config file for 4 days, and it still doesn't work with the v6 config.

    Any clues to what could cause this?

    opened by peterbrinck 20
  • HEAD - 503 Slow Down

    HEAD - 503 Slow Down

    Error executing "HeadObject" on "https://xxx.sfo2.digitaloceanspaces.com/xxx/xxx-10-17-02-00-02.zip"; AWS HTTP error: Server error: HEAD https://xxx.sfo2.digitaloceanspaces.com/xxx/xxx2018-10-17-02-00-02.zip resulted in a 503 Slow Down response (server): 503 Slow Down -

    related: #618

    Any fixes so far? @mdavis1982 @freekmurze @leeuwd

    opened by repat 20
  • rmdir temp: Directory not empty

    rmdir temp: Directory not empty

    Hy, I encountered a problem where I have no Idea where to start searching for the error. We Backup only to s3 which works fine and run the following commands via cron:

    $schedule->command('backup:run --only-db')->hourlyAt('0');
    $schedule->command('backup:monitor')->hourlyAt('15');
    $schedule->command('backup:clean')->dailyAt('0:30');
    

    But I get the following exception every hour, and I don't know where I should start looking for the error. When I login via SSH and have a look what's in the folder I get an empty one.

    Exception message: rmdir(/.../storage/app/laravel-backup/temp): Directory not empty

    We have the newest versions of laravel and laravel-backup installed. Our config file looks like this:

    <?php
    
    return [
    
        'backup' => [
    
            /*
             * The name of this application. You can use this name to monitor
             * the backups.
             */
            'name' => env('APP_URL'),
    
            'source' => [
    
                'files' => [
    
                    /*
                     * The list of directories and files that will be included in the backup.
                     */
                    'include' => [
                        base_path(),
                    ],
    
                    /*
                    * These directories and files will be excluded from the backup.
                    *
                    * Directories used by the backup process will automatically be excluded.
                    */
                    'exclude' => [
                        base_path('vendor'),
                        base_path('node_modules'),
                    ],
    
                    /*
                     * Determines if symlinks should be followed.
                     */
                    'followLinks' => false,
                ],
    
                /*
                 * The names of the connections to the databases that should be backed up
                 * Only MySQL and PostgreSQL databases are supported.
                 */
                'databases' => [
                    'mysql',
                ],
            ],
    
            'destination' => [
    
                /*
                 * The disk names on which the backups will be stored.
                 */
                'disks' => [
                    's3',
                ],
            ],
        ],
    
        /*
         * You can get notified when specific events occur. Out of the box you can use 'mail' and 'slack'.
         * For Slack you need to install guzzlehttp/guzzle.
         *
         * You can also use your own notification classes, just make sure the class is named after one of
         * the `Spatie\Backup\Events` classes.
         */
        'notifications' => [
    
            'notifications' => [
                \Spatie\Backup\Notifications\Notifications\BackupHasFailed::class         => ['mail'],
                \Spatie\Backup\Notifications\Notifications\UnhealthyBackupWasFound::class => ['mail'],
                \Spatie\Backup\Notifications\Notifications\CleanupHasFailed::class        => ['mail'],
                \Spatie\Backup\Notifications\Notifications\BackupWasSuccessful::class     => [],
                \Spatie\Backup\Notifications\Notifications\HealthyBackupWasFound::class   => [],
                \Spatie\Backup\Notifications\Notifications\CleanupWasSuccessful::class    => [],
            ],
    
            /*
             * Here you can specify the notifiable to which the notifications should be sent. The default
             * notifiable will use the variables specified in this config file.
             */
            'notifiable' => \Spatie\Backup\Notifications\Notifiable::class,
    
            'mail' => [
                'to' => '.....',
            ],
    
            'slack' => [
                'webhook_url' => '',
            ],
        ],
    
        /*
         * Here you can specify which backups should be monitored.
         * If a backup does not meet the specified requirements the
         * UnHealthyBackupWasFound event will be fired.
         */
        'monitorBackups' => [
            [
                'name' => env('APP_URL'),
                'disks' => ['s3'],
                'newestBackupsShouldNotBeOlderThanDays' => 1,
                'storageUsedMayNotBeHigherThanMegabytes' => 500000,
            ],
    
            /*
            [
                'name' => 'name of the second app',
                'disks' => ['local', 's3'],
                'newestBackupsShouldNotBeOlderThanDays' => 1,
                'storageUsedMayNotBeHigherThanMegabytes' => 5000,
            ],
            */
        ],
    
        'cleanup' => [
            /*
            * The strategy that will be used to cleanup old backups. The default strategy
            * will keep all backups for a certain amount of days. After that period only
            * a daily backup will be kept. After that period only weekly backups will
            * be kept and so on.
            *
            * No matter how you configure it the default strategy will never
            * delete the newest backup.
            */
            'strategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
    
            'defaultStrategy' => [
                /*
                 * The number of days for which backups must be kept.
                 */
                'keepAllBackupsForDays' => 14,
                /*
                 * The number of days for which daily backups must be kept.
                 */
                'keepDailyBackupsForDays' => 31,
                /*
                 * The number of weeks for which one weekly backup must be kept.
                 */
                'keepWeeklyBackupsForWeeks' => 8,
                /*
                 * The number of months for which one monthly backup must be kept.
                 */
                'keepMonthlyBackupsForMonths' => 4,
                /*
                 * The number of years for which one yearly backup must be kept.
                 */
                'keepYearlyBackupsForYears' => 2,
                /*
                 * After cleaning up the backups remove the oldest backup until
                 * this amount of megabytes has been reached.
                 */
                'deleteOldestBackupsWhenUsingMoreMegabytesThan' => 500000,
            ],
        ],
    ];
    

    And finally here's the detailed exception:

    Important: An error occurred while backing up GH - saturn
    
    Exception message: rmdir(/.../storage/app/laravel-backup/temp): Directory not empty
    
    Exception trace: #0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'rmdir(/...', '/...', 178, Array) 
    #1 /.../vendor/spatie/temporary-directory/src/TemporaryDirectory.php(178): rmdir('/...') 
    #2 /.../vendor/spatie/temporary-directory/src/TemporaryDirectory.php(110): Spatie\TemporaryDirectory\TemporaryDirectory->deleteDirectory('/...') 
    #3 /.../vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(132): Spatie\TemporaryDirectory\TemporaryDirectory->delete() 
    #4 /.../vendor/spatie/laravel-backup/src/Commands/BackupCommand.php(43): Spatie\Backup\Tasks\Backup\BackupJob->run() 
    #5 [internal function]: Spatie\Backup\Commands\BackupCommand->handle() 
    #6 /.../vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(28): call_user_func_array(Array, Array) 
    #7 /.../vendor/laravel/framework/src/Illuminate/Support/helpers.php(912): Illuminate\Container\BoundMethod::Illuminate\Container{closure}() 
    #8 /.../vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(86): value(Object(Closure)) 
    #9 /.../vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(30): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure)) #
    10 /.../vendor/laravel/framework/src/Illuminate/Container/Container.php(524): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL) 
    #11 /.../vendor/laravel/framework/src/Illuminate/Console/Command.php(182): Illuminate\Container\Container->call(Array) 
    #12 /.../vendor/symfony/console/Command/Command.php(262): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle)) 
    #13 /.../vendor/laravel/framework/src/Illuminate/Console/Command.php(167): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle)) 
    #14 /.../vendor/spatie/laravel-backup/src/Commands/BaseCommand.php(22): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
    #15 /.../vendor/symfony/console/Application.php(826): Spatie\Backup\Commands\BaseCommand->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
    #16 /.../vendor/symfony/console/Application.php(189): Symfony\Component\Console\Application->doRunCommand(Object(Spatie\Backup\Commands\BackupCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
    #17 /.../vendor/symfony/console/Application.php(120): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
    #18 /.../vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(123): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
    #19 /.../artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
    #20 {main}
    
    opened by di5abled 20
  • Not an 'issue' just a question.. - mysqldump not found on windows.

    Not an 'issue' just a question.. - mysqldump not found on windows.

    Running this on windows, I get this error that mysqldump is not recognized.

    C:\inetpub\PHPBackupTool>php artisan backup:run
    Starting backup...
    Dumping database msol_license_tracker...
    Backup failed because The dump process failed with exitcode 1 : General error : '"mysqldump"' is not recognized as an internal or external command,
    operable program or batch file.
    

    In my config\database.php I've added this

    'dump' => [
        'dump_binary_path' => 'C:\\PROGRA~1\\MySQL\\MYSQLS~1.7\\bin\\',
    ],
    

    Any thoughts on what I am getting wrong with the path formatting?

    opened by jackfruhecolab 19
  • Scheduled backups: emails not sent

    Scheduled backups: emails not sent

    I've configured through scheduled tasks the command "backup:run". When time has arrived the backup process runs correctly, and ZIP file is correctly created where it is supposed to be.

    But, although notifications are enabled, emails are not sent.

    I've checked the smtp email configuration, testing it sending emails through own artisan command, and the test emails works correctly.

    opened by telemaco230 0
  • manifest.txt does not exist

    manifest.txt does not exist

    when i run backup:run i get this error app/backup-temp\temp\manifest.txt): failed to open stream: Resource temporarily unavailable. #0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'file_put_conten...', 'C:\xampp\htdocs...', 43, Array) #1 C:\xampp\htdocs\chauffeurv2\vendor\spatie\laravel-backup\src\Tasks\Backup\Manifest.php(43): file_put_contents('C:\xampp\htdocs...', 'C:\xampp\htdocs...', 8) #2 C:\xampp\htdocs\chauffeurv2\vendor\spatie\laravel-backup\src\Tasks\Backup\BackupJob.php(177): Spatie\Backup\Tasks\Backup\Manifest->addFiles(Object(Generator)) #3 C:\xampp\htdocs\chauffeurv2\vendor\spatie\laravel-backup\src\Tasks\Backup\BackupJob.php(147): Spatie\Backup\Tasks\Backup\BackupJob->createBackupManifest()
    #4 C:\xampp\htdocs\chauffeurv2\vendor\spatie\laravel-backup\src\Commands\BackupCommand.php(56): Spatie\Backup\Tasks\Backup\BackupJob->run()

    opened by ikramooe 0
  • Bug/1528 year week combo

    Bug/1528 year week combo

    I only found YW be used once in the codebase, when deleting old backups. Also,formatLocalized() is deprecated, isoFormat()is suggested as alternative.

    Following the examples in #1528, GW gave the same result as the %G%V suggestion.

    Carbon::parse('2022-01-01')->formatLocalized('%G%V'); // 202152
    Carbon::parse('2022-01-01')->isoFormat('GW'); // 202152
    

    Closes #1528

    opened by Nielsvanpach 3
Releases(8.1.5)
  • 8.1.5(Oct 19, 2022)

    What's Changed

    • Bump stefanzweifel/git-auto-commit-action from 4.14.1 to 4.15.0 by @dependabot in https://github.com/spatie/laravel-backup/pull/1579
    • PHP 8.2 Build by @erikn69 in https://github.com/spatie/laravel-backup/pull/1590
    • corrected some translations by @fadkeabhi in https://github.com/spatie/laravel-backup/pull/1594

    New Contributors

    • @fadkeabhi made their first contribution in https://github.com/spatie/laravel-backup/pull/1594

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.1.4...8.1.5

    Source code(tar.gz)
    Source code(zip)
  • 8.1.4(Oct 1, 2022)

    What's Changed

    • docs: replace v7 links with v8 by @tricki in https://github.com/spatie/laravel-backup/pull/1561
    • Update adding-extra-notification-channels.md by @llabbasmkhll in https://github.com/spatie/laravel-backup/pull/1571
    • Italian translations by @massiws in https://github.com/spatie/laravel-backup/pull/1580

    New Contributors

    • @llabbasmkhll made their first contribution in https://github.com/spatie/laravel-backup/pull/1571
    • @massiws made their first contribution in https://github.com/spatie/laravel-backup/pull/1580

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.1.3...8.1.4

    Source code(tar.gz)
    Source code(zip)
  • 8.1.3(Aug 4, 2022)

    What's Changed

    • chore: Included githubactions in the dependabot config by @naveensrinivasan in https://github.com/spatie/laravel-backup/pull/1529
    • Add phpstan by @Nielsvanpach in https://github.com/spatie/laravel-backup/pull/1530
    • Bump actions/checkout from 1 to 3 by @dependabot in https://github.com/spatie/laravel-backup/pull/1532
    • Bump stefanzweifel/git-auto-commit-action from 2.3.0 to 4.14.1 by @dependabot in https://github.com/spatie/laravel-backup/pull/1531
    • docs(setup): update default config by @tricki in https://github.com/spatie/laravel-backup/pull/1540
    • Use empty string for Discord defaults by @bbashy in https://github.com/spatie/laravel-backup/pull/1544
    • Improve output messages for backup:monitor command by @intrepidws in https://github.com/spatie/laravel-backup/pull/1560

    New Contributors

    • @naveensrinivasan made their first contribution in https://github.com/spatie/laravel-backup/pull/1529
    • @dependabot made their first contribution in https://github.com/spatie/laravel-backup/pull/1532
    • @tricki made their first contribution in https://github.com/spatie/laravel-backup/pull/1540
    • @bbashy made their first contribution in https://github.com/spatie/laravel-backup/pull/1544

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.1.2...8.1.3

    Source code(tar.gz)
    Source code(zip)
  • 8.1.2(Apr 8, 2022)

    What's Changed

    • Update .gitattributes by @angeljqv in https://github.com/spatie/laravel-backup/pull/1514
    • Use non-recursive files() method to test if destination is reachable by @mike-healy in https://github.com/spatie/laravel-backup/pull/1518

    New Contributors

    • @angeljqv made their first contribution in https://github.com/spatie/laravel-backup/pull/1514
    • @mike-healy made their first contribution in https://github.com/spatie/laravel-backup/pull/1518

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.1.1...8.1.2

    Source code(tar.gz)
    Source code(zip)
  • 8.1.1(Mar 8, 2022)

    • Exceptions will be reported when creating a back-up fails
    • Notifications will now include the application's environment

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.1.0...8.1.1

    Source code(tar.gz)
    Source code(zip)
  • 8.1.0(Mar 8, 2022)

  • 8.0.10(Mar 8, 2022)

    What's Changed

    • Warns the user about old-style config files for backup:list and backup:monitor commands by @bzarzuela in https://github.com/spatie/laravel-backup/pull/1495
    • PHPUnit to Pest Converter by @freekmurze in https://github.com/spatie/laravel-backup/pull/1503

    New Contributors

    • @bzarzuela made their first contribution in https://github.com/spatie/laravel-backup/pull/1495

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.0.9...8.0.10

    Source code(tar.gz)
    Source code(zip)
  • 7.8.0(Mar 8, 2022)

    • Exceptions will be reported when creating a back-up fails
    • Notifications will now include the application's environment

    Full Changelog: https://github.com/spatie/laravel-backup/compare/7.7.3...7.8.0

    Source code(tar.gz)
    Source code(zip)
  • 8.0.9(Mar 2, 2022)

    What's Changed

    • Allow any characters in backup destination name by @misakstvanu in https://github.com/spatie/laravel-backup/pull/1499

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.0.8...8.0.9

    Source code(tar.gz)
    Source code(zip)
  • 8.0.8(Feb 23, 2022)

    What's Changed

    • Fix mistakes in cs/notifications.php by @misakstvanu in https://github.com/spatie/laravel-backup/pull/1493

    New Contributors

    • @misakstvanu made their first contribution in https://github.com/spatie/laravel-backup/pull/1493

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.0.7...8.0.8

    Source code(tar.gz)
    Source code(zip)
  • 8.0.7(Feb 23, 2022)

    What's Changed

    • Fixes Brazilian Translation by @Diogo-Freitas in https://github.com/spatie/laravel-backup/pull/1490

    New Contributors

    • @Diogo-Freitas made their first contribution in https://github.com/spatie/laravel-backup/pull/1490

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.0.6...8.0.7

    Source code(tar.gz)
    Source code(zip)
  • 8.0.6(Feb 18, 2022)

    What's Changed

    • Updates newest_backup_date and oldest_backup_date by @opengis in https://github.com/spatie/laravel-backup/pull/1487

    New Contributors

    • @opengis made their first contribution in https://github.com/spatie/laravel-backup/pull/1487

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.0.5...8.0.6

    Source code(tar.gz)
    Source code(zip)
  • 8.0.5(Feb 13, 2022)

    What's Changed

    • Check if backup destination is reachable before trying to copy backup by @smknstd in https://github.com/spatie/laravel-backup/pull/1469

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.0.4...8.0.5

    Source code(tar.gz)
    Source code(zip)
  • 8.0.4(Feb 13, 2022)

    What's Changed

    • Fix issue where local backups were included in new backups by @Diagnost1X in https://github.com/spatie/laravel-backup/pull/1486

    New Contributors

    • @Diagnost1X made their first contribution in https://github.com/spatie/laravel-backup/pull/1486

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.0.3...8.0.4

    Source code(tar.gz)
    Source code(zip)
  • 8.0.3(Feb 10, 2022)

    What's Changed

    • fix Russian translation by @sshkpp in https://github.com/spatie/laravel-backup/pull/1482

    New Contributors

    • @sshkpp made their first contribution in https://github.com/spatie/laravel-backup/pull/1482

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.0.2...8.0.3

    Source code(tar.gz)
    Source code(zip)
  • 8.0.2(Feb 10, 2022)

    What's Changed

    • Drop offered flysystem version that is uninstallable by @abenerd in https://github.com/spatie/laravel-backup/pull/1460
    • Make ext-pcntl optional by @erikn69 in https://github.com/spatie/laravel-backup/pull/1481

    New Contributors

    • @abenerd made their first contribution in https://github.com/spatie/laravel-backup/pull/1460

    Full Changelog: https://github.com/spatie/laravel-backup/compare/8.0.1...8.0.2

    Source code(tar.gz)
    Source code(zip)
  • 8.0.1(Jan 21, 2022)

  • 8.0.0(Jan 12, 2022)

  • 7.7.3(Dec 10, 2021)

    What's Changed

    • Replaced forDriver() if conditions with new php8.0 match expression by @mo7zayed in https://github.com/spatie/laravel-backup/pull/1424
    • Update DbDumperFactory.php by @ciungulete in https://github.com/spatie/laravel-backup/pull/1425
    • Correct the column-statistics option for mysqldump by @hatchetaustralia in https://github.com/spatie/laravel-backup/pull/1435
    • Fixed translated strings in Dutch by @stephanbouman in https://github.com/spatie/laravel-backup/pull/1440

    New Contributors

    • @mo7zayed made their first contribution in https://github.com/spatie/laravel-backup/pull/1424
    • @ciungulete made their first contribution in https://github.com/spatie/laravel-backup/pull/1425
    • @hatchetaustralia made their first contribution in https://github.com/spatie/laravel-backup/pull/1435
    • @stephanbouman made their first contribution in https://github.com/spatie/laravel-backup/pull/1440

    Full Changelog: https://github.com/spatie/laravel-backup/compare/7.7.2...7.7.3

    Source code(tar.gz)
    Source code(zip)
  • 7.7.2(Oct 21, 2021)

    What's Changed

    • Update notifications.php by @Lunatig in https://github.com/spatie/laravel-backup/pull/1420
    • Fix discord notification message not using defined avatar url by @pabueco in https://github.com/spatie/laravel-backup/pull/1423

    New Contributors

    • @Lunatig made their first contribution in https://github.com/spatie/laravel-backup/pull/1420
    • @pabueco made their first contribution in https://github.com/spatie/laravel-backup/pull/1423

    Full Changelog: https://github.com/spatie/laravel-backup/compare/7.7.1...7.7.2

    Source code(tar.gz)
    Source code(zip)
  • 7.7.1(Oct 7, 2021)

    • fix discord notification not getting defined username (#1411)

    What's Changed

    • Update README to reflect proper PHP and Laravel requirements by @intrepidws in https://github.com/spatie/laravel-backup/pull/1416
    • Fix discord notification not getting defined username by @fabegalo in https://github.com/spatie/laravel-backup/pull/1411

    New Contributors

    • @intrepidws made their first contribution in https://github.com/spatie/laravel-backup/pull/1416
    • @fabegalo made their first contribution in https://github.com/spatie/laravel-backup/pull/1411

    Full Changelog: https://github.com/spatie/laravel-backup/compare/7.7.0...7.7.1

    Source code(tar.gz)
    Source code(zip)
  • 7.7.0(Oct 5, 2021)

  • 6.16.5(Sep 12, 2021)

  • 6.16.4(Sep 10, 2021)

  • 6.6.13(Sep 1, 2021)

  • 7.6.6(Aug 19, 2021)

  • 7.6.5(Aug 19, 2021)

  • 7.6.4(Aug 11, 2021)

  • 6.16.2(Aug 11, 2021)

Owner
Spatie
We create open source, digital products and courses for the developer community
Spatie
Laravel User Activity Log - a package for Laravel 8.x that provides easy to use features to log the activities of the users of your Laravel app

Laravel User Activity Log - a package for Laravel 8.x that provides easy to use features to log the activities of the users of your Laravel app

null 9 Dec 14, 2022
A simple blog app where a user can signup , login, like a post , delete a post , edit a post. The app is built using laravel , tailwind css and postgres

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Nahom_zd 1 Mar 6, 2022
Laravel-OvalFi helps you Set up, test, and manage your OvalFi integration directly in your Laravel App.

OvalFi Laravel Package Laravel-OvalFi helps you Set up, test, and manage your OvalFi integration directly in your Laravel App. Installation You can in

Paul Adams 2 Sep 8, 2022
This package enables you to create and run a fully functioning WebSocket server in your Laravel app.

This package enables you to create and run a fully functioning WebSocket server in your Laravel app. It can optionally receive messages broadcast over ZeroMQ.

Asked.io 181 Oct 6, 2022
Modularize your laravel app in a package way.

Laravel Modular Pustaka laravel untuk modularisasi kode secara rapi dan mudah di maintain. Instalasi $ composer require kodepandai/laravel-modular Set

Kode Pandai 3 Jun 19, 2022
A web app for detecting backend technologies used in a web app, Based on wappalyzer node module

About Techdetector This a web fingerprinting application, it detects back end technologies of a given domain by using the node module wappalyzer. And

Shobi 17 Dec 30, 2022
CV-Resumes-App is helped us to build resume .. you can help me to improve this app...

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Eng Hasan Hajjar 2 Sep 30, 2022
Podcastwala - Your very own Podcast web app built with Laravel. Manage and listen to your favorite podcasts

Podcastwala Your very own Podcast web app built with Laravel 5. This web app enables you to manage RSS feeds for your favorite podcasts and listen to

null 142 Sep 14, 2022
Jetstrap is a lightweight laravel 8 package that focuses on the VIEW side of Jetstream / Breeze package installed in your Laravel application

A Laravel 8 package to easily switch TailwindCSS resources generated by Laravel Jetstream and Breeze to Bootstrap 4.

null 686 Dec 28, 2022
Laravel Breadcrumbs - An easy way to add breadcrumbs to your @Laravel app.

Introduction Breadcrumbs display a list of links indicating the position of the current page in the whole site hierarchy. For example, breadcrumbs lik

Alexandr Chernyaev 269 Dec 21, 2022
Laravel Podcast is Laravel 5.5 web app that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI and User Authentication.

Laravel Podcast is Laravel 5.5 web app that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI and

Jeremy Kenedy 35 Dec 19, 2022
Laravel messenger. A full messenger suite for your new / existing laravel app

Laravel messenger. A full messenger suite for your new / existing laravel app! Private and group threads between multiple models, with real-time messaging, reactions, attachments, calling, chat bots, and more!

Richard  Tippin 290 Dec 30, 2022
Laravel Datatables Package Demo App

#Laravel Datatables Demo App Datatables Package for Laravel 4|5 This package is created to handle server-side works of DataTables jQuery Plugin via AJ

Arjay Angeles 139 Dec 23, 2022
oman cities package for laravel app

Seed oman governorates and cities This repo can be used to scaffold Oman Governorates and cities. Installation You can install the package via compose

Gheith Alrawahi 4 Jul 26, 2022
A full-featured Laravel package for aiding in Shopify App development

Laravel Shopify App A full-featured Laravel package for aiding in Shopify App development, similar to shopify_app for Rails. Works for Laravel 7 and u

Tyler King 1.2k Dec 19, 2022
A full-featured Laravel package for aiding in Shopify App development

Laravel Shopify App A full-featured Laravel package for aiding in Shopify App development, similar to shopify_app for Rails. Works for Laravel 7 and u

Tyler King 1.2k Jan 1, 2023
Testbench Component is the de-facto package that has been designed to help you write tests for your Laravel package

Laravel Testing Helper for Packages Development Testbench Component is the de-facto package that has been designed to help you write tests for your La

Orchestra Platform 1.9k Dec 29, 2022
Log activity inside your Laravel app

Log activity inside your Laravel app The spatie/laravel-activitylog package provides easy to use functions to log the activities of the users of your

Spatie 4.6k Jan 7, 2023
Make your Laravel app comply with the crazy EU cookie law

Make your Laravel app comply with the crazy EU cookie law All sites owned by EU citizens or targeted towards EU citizens must comply with a crazy EU l

Spatie 1.2k Jan 4, 2023