basantsd / db-backup-laravel-ci
A Laravel and CI package for daily database backups sent via email
Installs: 1 089
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=7.2.5
- illuminate/support: ^6.0|^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2025-07-05 16:57:21 UTC
README
A framework agnostic package to automatically back up your database and send the result via email. It supports both Laravel and CodeIgniter applications.
Features
- Works with MySQL, PostgreSQL, SQL Server and SQLite databases
- Creates a SQL dump and compresses it using
gzip
- Emails the compressed dump on a daily schedule
- If the gzipped file exceeds the configured size limit (25 MB by default) it is saved to disk and a download path is emailed instead
Installation
composer require basantsd/db-backup-laravel-ci
Environment variables
Add these entries to your .env
file:
BACKUP_EMAIL=your-email@example.com BACKUP_TOKEN=your-secret-token APP_NAME="project-name" # Optional: override the maximum attachment size in bytes (default 26214400) BACKUP_MAX_ATTACHMENT_SIZE=26214400
Laravel setup
- Publish the configuration file:
php artisan vendor:publish --provider="Basantsd\\Backup\\Laravel\\BackupServiceProvider" --tag="config"
- Schedule the command in
app/Console/Kernel.php
:protected function schedule(Schedule $schedule) { $schedule->command('backup:daily', ['--token' => config('backup.token')])->daily(); }
CodeIgniter setup
- Add a route to
routes.php
:$route['backup/daily'] = 'BackupController/daily';
- Call the route with the token header:
curl -H "X-Backup-Token: your-secret-token" http://your-domain.com/backup/daily
Usage
Laravel
Run the artisan command:
php artisan backup:daily --token=your-secret-token
CodeIgniter
Access the /backup/daily
URL with the header shown above.
Handling large backups
Many email providers reject attachments larger than 20–25 MB. When the compressed backup exceeds BACKUP_MAX_ATTACHMENT_SIZE
, this package saves the file to a backups
directory (storage/app/backups
for Laravel or APPPATH/backups
for CodeIgniter) and sends an email containing the path to download the backup manually.
License
The MIT License (MIT). Please see the LICENSE file for more information.