Real-time deployment status indicator for Laravel Forge using webhooks. Get instant visual feedback when your deployments start, succeed, or fail.
- π Real-time Updates - Simple polling-based live deployment status
- π― No Database Required - Uses cache only for current status
- π Webhook-driven - Receives deployment events from Laravel Forge
- π¨ Auto-injection - Automatically appears in your Laravel layouts
- βοΈ Configurable - Customizable polling interval and authentication
- π₯οΈ Full-Screen Overlay - Prominent modal-style deployment notifications
- π Modern UI - Beautiful Tailwind CSS styling
- π± Responsive - Works on all device sizes
- π§ Zero Dependencies - No broadcasting or WebSocket setup required
- PHP 8.2 or higher
- Laravel 10, 11, or 12
- No additional dependencies required!
composer require softpyramid/forge-statusThe package will automatically register its routes and service provider. No manual configuration needed!
php artisan vendor:publish --tag=forge-status-configFORGE_WEBHOOK_TOKEN=your-secret-token
FORGE_POLL_INTERVAL=5
FORGE_AUTH_ONLY=trueIn your Forge site settings:
- Go to "Webhooks"
- Add new webhook URL:
https://yourdomain.com/forge-webhook - Optionally add token parameter:
https://yourdomain.com/forge-webhook?token=your-secret-token
Add the component to your layout file (e.g., resources/views/layouts/app.blade.php):
<body>
<!-- Your content -->
<x-forge-deployment-indicator />
</body>That's it! The indicator will automatically appear when deployments start and update in real-time.
- Forge sends webhook POST request when deployment starts/finishes
- Package receives webhook and stores status in cache
- Frontend polls the status endpoint every few seconds
- Indicator updates automatically when status changes
- No database storage - uses cache for current status only
- Simple and reliable - no WebSocket complexity
| Laravel Version | Package Version | PHP Version |
|---|---|---|
| Laravel 12.x | ^1.0 | ^8.2 |
| Laravel 11.x | ^1.0 | ^8.2 |
| Laravel 10.x | ^1.0 | ^8.1 |
# Run tests
composer test
# Run tests with coverage
composer test-coverage# Test with success status (default)
php artisan forge-status:test
# Test with different statuses
php artisan forge-status:test --status=deploying
php artisan forge-status:test --status=success
php artisan forge-status:test --status=failedThis command will test all package functionality including cache storage, webhook endpoint, and status endpoint.
# Test with the provided data
php artisan forge-status:test --status=successThen open your Laravel app in the browser to see the overlay in action!
php artisan forge-status:routesThis command will show you all registered Forge Status routes and verify they're working correctly.
If routes aren't auto-registered, run:
php artisan package:discoverIf you encounter issues with Laravel 12, ensure you have:
- PHP 8.2+ installed
- Updated dependencies - run
composer update - Cleared caches - run
php artisan config:clear && php artisan cache:clear
Make sure you have:
-
Polling interval configured in your
.env:FORGE_POLL_INTERVAL=5
-
Status endpoint is accessible at
/forge-status -
Cache is working - check your cache configuration
Verify:
- Webhook URL is correctly registered in Laravel Forge
- Token verification is properly configured (if using)
- Route is accessible - check
/forge-webhookendpoint
MIT License. See LICENSE file for details.
Fakhar Zaman Khan - SoftPyramid
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request