Ecommerce Mobile App
React Native Expo app for Botble Ecommerce - 50+ screens, dark mode, RTL support
Google Drive Backup
Botble Google Drive Backup Plugin
This plugin allows you to backup your Botble CMS application and automatically upload backups to Google Drive. It supports both manual and scheduled (cron-based) backups with configurable retention rules.
Features
- Database backup (MySQL / MariaDB)
- File backup (storage, uploads, or custom directories)
- Automatic upload to Google Drive
- Scheduled backups via cron
- Old backup cleanup (retention policy)
- Zip archive support
- Logging and error handling
- Secure OAuth 2.0 authentication
Requirements
- PHP >= 8.x
- Botble CMS (compatible version)
- Composer
- Google Drive API access
- zip PHP extension or system zip command
Configuration
Configure settings from:
Admin Panel → Settings → Google Drive Backup
Available options:
- Google Drive folder name or ID
- Backup type (DB / Files / Both)
- Backup filename format
- Retention limit
- Auto cleanup toggle
Example filename:
backup_{APP_NAME}_{ENV}_{DATE}.zip
Usage
Manual Backup
php artisan google-drive:backup
Options:
--only-db
--only-files
Scheduled Backup (Cron)
Add Laravel scheduler:
* * * * * php /path-to-project/artisan schedule:run >> /dev/null 2>&1
Schedule example:
$schedule->command('google-drive:backup')->daily();
Retention Policy
Automatically delete old backups from Google Drive.
Example:
- Keep last 7 backups
- Older ones are removed automatically
Logs
Logs are stored in:
storage/logs/laravel.log
Security Notes
- Do not commit credentials or token files
- Store secrets outside public directories
- Use minimum required Drive scopes
How to create a backup?
- First, go to Settings - Google Drive Backup from the admin page.

- Enter the credentials you received from Google Cloud Console.

- Enter the link shown in the image below in the field that says Google Drive folder ID.

- Select the backup type and choose when the backups will be taken.

Sample Time Settings
| Minute | Hour | Day | Month | Weekday | Description |
|---|---|---|---|---|---|
| * | * | * | * | * | Every minute |
| */2 | * | * | * | * | Every 2 minutes |
| */3 | * | * | * | * | Every 3 minutes |
| */5 | * | * | * | * | Every 5 minutes |
| */10 | * | * | * | * | Every 10 minutes |
| */15 | * | * | * | * | Every 15 minutes |
| */20 | * | * | * | * | Every 20 minutes |
| */30 | * | * | * | * | Every 30 minutes |
| 00 | * | * | * | * | Every hour |
| 05 | * | * | * | * | Every hour at minute 05 |
| 15 | * | * | * | * | Every hour at minute 15 |
| 30 | * | * | * | * | Every hour at minute 30 |
| 45 | * | * | * | * | Every hour at minute 45 |
| 00 | */2 | * | * | * | Every 2 hours |
| 00 | */3 | * | * | * | Every 3 hours |
| 00 | */4 | * | * | * | Every 4 hours |
| 00 | */6 | * | * | * | Every 6 hours |
| 00 | */8 | * | * | * | Every 8 hours |
| 00 | */12 | * | * | * | Every 12 hours |
| 00 | 00 | * | * | * | Every day at midnight |
| 00 | 06 | * | * | * | Every day at 06:00 |
| 00 | 12 | * | * | * | Every day at 12:00 |
| 30 | 18 | * | * | * | Every day at 18:30 |
| 00 | 23 | * | * | * | Every day at 23:00 |
| 00 | 09 | * | * | 1-5 | Weekdays at 09:00 |
| 00 | 18 | * | * | 1-5 | Weekdays at 18:00 |
| 00 | 10 | * | * | 6 | Saturdays at 10:00 |
| 00 | 10 | * | * | 0 | Sundays at 10:00 |
| 00 | 05 | * | * | 2,4 | Tuesdays and Thursdays at 05:00 |
| 00 | 03 | 01 | * | * | First day of every month at 03:00 |
| 00 | 03 | 15 | * | * | 15th day of every month at 03:00 |
| 00 | 00 | 01 | */2 | * | Every 2 months on day 1 |
| 00 | 00 | 01 | 01 | * | Every January 1st |
| 00 | 00 | 25 | 12 | * | Every December 25th |
| 00 | 00 | * | * | 1 | Every Monday |
| 00 | 00 | * | * | 5 | Every Friday |
| 00 | 08 | * | * | 1-5 | Weekdays at 08:00 |
| 00 | 20 | * | * | 1-5 | Weekdays at 20:00 |
| 00 | 14 | * | * | * | Every day at 14:00 |
- Log into your server administrator (cPanel or Plesk) and set up a cron job as shown in the image below.

- Log into your server administrator (cPanel or Plesk) and set up a cron job as shown in the image below.

Changelog
Version 1.0.0
- Backup has been added using both processor ID and service account.
- An option to save to your desired folder has been added.
- Only database backup has been added.
- Only file backup has been added.
- A backup of both the files and the database has been added to the same ZIP folder.
- Separate backup options have been added, allowing you to back up both the database and files separately.
- The option to change the backup startup name has been added.
- Date formatting has been added for backup names.
- Full translations have been made into 40+ different languages.
Developer Information
- Author: Furkan Kalafat
- GitHub: https://github.com/furkanka37
- Email: [email protected]
License
MIT License
Support the Author
If you find this product helpful, consider supporting the developer.
Bank Information
Tether USDT -> Send over the Tron (TRC-20) Network: TSJwBoLUTpbQL3YiFA1UZPvDcs22QK8Us2
Scan QR Code
Leave a comment
Your email address will not be published. Required fields are marked *