db-backup-laravel-ci maintained by basantsd
Description
A Laravel and CI package for daily database backups sent via email
Author
Last update
2025/06/05 18:48
(dev-main)
License
Downloads
1 649
Tags
db-backup-laravel-ci
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.