Laravel Envoy یک ابزار برای اجرای دستورات سرور از راه دور بهصورت ساده و تمیز است. این ابزار بیشتر برای استقرار (Deployment) خودکار، اجرای دستورات مدیریتی روی سرور، و اتوماسیون وظایف استفاده میشود.
Laravel Envoy:✅ سینتکس ساده و خوانا (بر پایه Blade)
✅ اجرای دستورات روی چندین سرور بهصورت همزمان
✅ امکان تعریف Task برای گروهبندی دستورات
✅ امکان استفاده از notifications (مثل ارسال پیام به Slack و Discord)
Envoyابتدا Envoy را با Composer نصب کن:
composer global require laravel/envoy
نکته: مطمئن شو که ~/.composer/vendor/bin یا ~/.config/composer/vendor/bin در PATH سیستم شما قرار دارد.
Envoy.blade.phpیک فایل در ریشه پروژه با نام Envoy.blade.php بساز و دستورات خود را در آن بنویس:
@servers(['web' => 'your-user@your-server-ip']) @task('deploy', ['on' => 'web']) cd /var/www/your-project git pull origin main composer install --no-dev --prefer-dist php artisan migrate --force php artisan cache:clear php artisan config:clear php artisan view:clear npm run build @endtask
در این مثال:
🔹 به سرور web متصل میشویم.
🔹 آخرین تغییرات git pull را دریافت میکنیم.
پکیجهای composer را نصب میکنیم.
🔹 دیتابیس را بهروزرسانی میکنیم.
🔹 کشها را پاک میکنیم.
🔹 فرانتاند را بیلد میکنیم.
Envoyبرای اجرای تسک deploy، این دستور را در ترمینال بزن:
envoy run deploy
اگر چندین سرور داری، میتوانی این کار را هم انجام بدهی:
envoy run deploy --parallel
(این کار روی همه سرورها بهصورت همزمان اجرا میشود.)
میتوانی بعد از اجرای موفق تسک، یک پیام در Slack یا Discord بفرستی:
@after @slack('webhook-url', '#deployments', "Deployment completed successfully!") @endafter
Laravel Envoy یک ابزار عالی برای اتوماسیون استقرار (Deployment Automation) در پروژههای Laravel است. با آن میتوانی بهراحتی git pull، composer install، migrate و حتی npm run build را اجرا کنی. برای پروژهای که روی GitLab CI/CD کار میکنی، Envoy میتواند نقش مکمل برای مدیریت استقرار روی سرور را بازی کند. 🎯