enessvg / laravel-telegram-deployer
Telegram-triggered deployment action runner for Laravel.
Package info
github.com/enessvg/laravel-telegram-deployer
pkg:composer/enessvg/laravel-telegram-deployer
v0.1.0
2026-03-23 19:25 UTC
Requires
- php: ^8.2
- illuminate/cache: ^11.0|^12.0|^13.0
- illuminate/console: ^11.0|^12.0|^13.0
- illuminate/database: ^11.0|^12.0|^13.0
- illuminate/http: ^11.0|^12.0|^13.0
- illuminate/queue: ^11.0|^12.0|^13.0
- illuminate/routing: ^11.0|^12.0|^13.0
- illuminate/support: ^11.0|^12.0|^13.0
README
English | Turkce
Telegram webhook-triggered, TOTP-protected, queue-based deploy/action runner for Laravel.
Supported Versions
- Laravel 11.x
- Laravel 12.x
- Laravel 13.x (PHP 8.3+)
Command Format
Only this format is supported:
/run {action} [key=value ...] {token}
Examples:
/run deploy 123456/run seed class=Database\\Seeders\\UserSeeder 123456
Features
- Telegram webhook secret validation
- Chat/User allowlist authorization
- TOTP validation (
period,digits,window) - Replay protection (single use per token+window)
- Global single-run lock
- Fail-fast action pipeline (
artisan+shell) - DB run logs (
telegram_deployer_runs) - Telegram status messaging
Installation (Host App)
- Install the package:
composer require enessvg/laravel-telegram-deployer
- Publish config and migrations:
php artisan vendor:publish --tag=telegram-deployer-config php artisan vendor:publish --tag=telegram-deployer-migrations
- Add these env keys to
.env(fill values as needed):
TELEGRAM_DEPLOYER_BOT_TOKEN= TELEGRAM_DEPLOYER_WEBHOOK_PATH= TELEGRAM_DEPLOYER_WEBHOOK_SECRET= TELEGRAM_DEPLOYER_ALLOWED_CHAT_IDS= TELEGRAM_DEPLOYER_ALLOWED_USER_IDS= TELEGRAM_DEPLOYER_OTP_SECRET= TELEGRAM_DEPLOYER_OTP_PERIOD= TELEGRAM_DEPLOYER_OTP_DIGITS= TELEGRAM_DEPLOYER_OTP_WINDOW= TELEGRAM_DEPLOYER_OTP_ISSUER= TELEGRAM_DEPLOYER_OTP_LABEL= TELEGRAM_DEPLOYER_QUEUE_CONNECTION= TELEGRAM_DEPLOYER_QUEUE= TELEGRAM_DEPLOYER_GLOBAL_LOCK_KEY= TELEGRAM_DEPLOYER_GLOBAL_LOCK_SECONDS= TELEGRAM_DEPLOYER_STEP_TIMEOUT= TELEGRAM_DEPLOYER_WORKING_DIRECTORY=
- Run migrations:
php artisan migrate --force
- Run a queue worker.
- Set Telegram webhook.
Artisan Commands
php artisan telegram-deployer:generate-secretphp artisan telegram-deployer:generate-secret --qr(prints QR in terminal ifqrencodeis installed)php artisan telegram-deployer:set-webhook {url?}
Core Config Keys
telegram.bot_tokentelegram.webhook_pathtelegram.webhook_secrettelegram.allowed_chat_idstelegram.allowed_user_idsotp.secret,otp.period,otp.digits,otp.windowqueue.connection,queue.namelocks.global_lock_secondsactions
Parameterized Action Example
'actions' => [ 'seed' => [ [ 'type' => 'artisan', 'command' => 'db:seed --class={class} --force', ], ], ],