waheed4399 / laravel-action-service-trait
A simple Laravel package to create actions, traits and services using artisan commands
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/waheed4399/laravel-action-service-trait
Requires
- php: ^7.1|^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
Great! Here's the updated and detailed README.md
for your Laravel Backup Service package, including the section on how to send the Google Drive backup link via Telegram:
Laravel Backup Service
A Laravel package that simplifies application backups using Google Drive storage, provides Artisan commands to manage them, and sends the latest backup link directly to your Telegram group.
๐ Features
- Upload Laravel backups to Google Drive
- Send backup download link to Telegram
- Automatically store and manage backup links
- Remove old backup files from Google Drive
- Clean and readable service structure
- Easy-to-use Artisan commands
๐ฆ Installation
Install the package using Composer:
composer require ahmedweb/laravel-backup-service
๐ ๏ธ Configuration
1. Environment Variables
Add the following to your .env
file:
FILESYSTEM_CLOUD=google GOOGLE_DRIVE_CLIENT_ID=your-google-client-id GOOGLE_DRIVE_CLIENT_SECRET=your-google-client-secret GOOGLE_DRIVE_REFRESH_TOKEN=your-google-refresh-token GOOGLE_DRIVE_FOLDER_ID=your-google-folder-id # Optional GOOGLE_DRIVE_FOLDER= TELEGRAM_BOT_TOKEN=your-telegram-bot-token TELEGRAM_CHAT_ID=your-group-chat-id
2. Filesystem Configuration
In config/filesystems.php
, add the Google Drive disk:
'google_drive' => [ 'driver' => 'google', 'clientId' => env('GOOGLE_DRIVE_CLIENT_ID'), 'clientSecret' => env('GOOGLE_DRIVE_CLIENT_SECRET'), 'refreshToken' => env('GOOGLE_DRIVE_REFRESH_TOKEN'), 'folder' => env('GOOGLE_DRIVE_FOLDER'), 'folderId' => env('GOOGLE_DRIVE_FOLDER_ID'), ],
๐ฌ Telegram Setup
To enable Telegram backup link notifications:
Step-by-step:
-
Create a bot
- Go to BotFather on Telegram
- Use
/newbot
to create a bot - Save the bot token
-
Create a Telegram group
- Add the bot to the group
- Mention the bot once in the group to activate it
-
Get your group chat ID
- Use a Telegram API tool like
@userinfobot
or your own bot's message logs - Or temporarily send a message from your bot and check the logs for
chat.id
- Use a Telegram API tool like
-
Add to
.env
:TELEGRAM_BOT_TOKEN=123456:ABC-YourBotToken TELEGRAM_CHAT_ID=-1001234567890
Once configured, your bot will be able to post backup links directly to your group.
๐งช Artisan Commands
Command | Description |
---|---|
php artisan backup:store-latest-link |
Stores the latest backup file link and sends it via Telegram |
php artisan backup:delete-old |
Deletes all older backup files from Google Drive |
php artisan backup:clean-drive |
Cleans backups on Google Drive based on retention |
You can schedule these in app/Console/Kernel.php
:
$schedule->command('backup:store-latest-link')->daily(); $schedule->command('backup:delete-old')->weekly();
๐ File Structure
laravel-backup-service/
โโโ src/
โ โโโ Commands/
โ โ โโโ StoreLatestBackupLink.php
โ โ โโโ DeleteOldBackupFiles.php
โ โ โโโ CleanGoogleDriveBackups.php
โ โโโ Services/
โ โ โโโ GoogleDriveBackupService.php
โ โโโ Providers/
โ โ โโโ BackupServiceProvider.php
โโโ config/
โ โโโ filesystems.php (merged if needed)
๐ Requirements
Package | Version |
---|---|
PHP | ^8.2 |
Laravel | ^11.31 |
spatie/laravel-backup |
^9.3 |
google/apiclient |
^2.15 |
irazasyed/telegram-bot-sdk |
^3.15 |
masbug/flysystem-google-drive-ext |
^2.4 |
yaza/laravel-google-drive-storage |
^4.1 |
๐ค Contributing
Feel free to fork this package, suggest changes, or submit PRs. Any improvements are welcome!
๐ License
Licensed under the MIT license.
๐งโ๐ป Author
Ahmed Web ๐ง ahmedwry588@gmail.com ๐ GitHub Profile
Would you like this README.md
saved to your project directory or formatted for publishing on GitHub/Packagist?