Laravel Scheduler
Control Center
A breathtaking, premium, real-time developer dashboard for monitoring, searching, filtering, and manually executing Laravel scheduled tasks in a single click — fully inspired by Laravel Pulse.
Overview
devakshay/scheduler-list-laravel is a zero-dependency Laravel package that provides a stunning, self-contained web dashboard for your application's task scheduler. Once installed, visit/schedulers in your browser to see every registered scheduled task with its next run time, cron expression, type, and constraints — all in real time.
✨ Package Features
Installation
Step 1 — Install via Composer
composer require devakshay/scheduler-list-laravelStep 2 — Publish the Config File
Publish the simplified, clean configuration file to your application's config/ directory:
php artisan vendor:publish --tag="scheduler-list-laravel-config"Configuration
The published config file at config/scheduler-list.php structure is as follows:
<?php
return [
/*
* The path/URL where the scheduler dashboard will be accessible.
*/
'path' => env('SCHEDULER_LIST_PATH', 'schedulers'),
/*
* The middleware applied to the scheduler dashboard routes.
* Keep auth enabled in production and add any tenant/admin/IP middleware your app needs.
*/
'middleware' => ['web', 'auth'],
/*
* Optional Gate ability used by the package. The default Gate only grants access
* in local environments; production apps should define this ability explicitly.
*/
'ability' => env('SCHEDULER_LIST_ABILITY', 'viewSchedulerList'),
/*
* Optional authorization callback. Return true to allow access.
*/
'authorize' => null,
/*
* Whether the scheduler dashboard is enabled.
*/
'enabled' => env('SCHEDULER_LIST_ENABLED', false),
/*
* Allow developers to run scheduled tasks manually from the dashboard.
*/
'manual_execution' => env('SCHEDULER_LIST_MANUAL_EXECUTION', false),
/*
* Maximum number of output characters returned to the browser after a manual run.
*/
'output_limit' => 12000,
];Configuration Options
| Key | Type | Default | Description |
|---|---|---|---|
| path | string | 'schedulers' | The URL path where the dashboard is mounted. |
| middleware | array | ['web', 'auth'] | Middleware array stack. Add custom admin/IP protection middlewares here. |
| ability | string | 'viewSchedulerList' | Optional gate authorization check name. |
| authorize | Closure|null | null | Optional authorization callback (e.g. fn($req) => true). |
| enabled | boolean | false | Master toggle to enable or disable the dashboard. |
| manual_execution | boolean | false | Controls whether users can trigger tasks manually via the UI. |
| output_limit | integer | 12000 | Max character length captured and returned from console tasks. |
Production Security
The dashboard is disabled by default. To use it safely in production, configure your environment variables:
SCHEDULER_LIST_ENABLED=true
SCHEDULER_LIST_MANUAL_EXECUTION=falseOption A — Define an Access Gate
Define the Gate inside your application's service providers:
use Illuminate\Support\Facades\Gate;
Gate::define('viewSchedulerList', function ($user) {
return $user->is_admin;
});Option B — Direct Authorization Callback
Publish the config and register an inline authorize check callback:
'authorize' => fn (\Illuminate\Http\Request $request) => $request->user()?->is_admin === true,Usage
Register your scheduled tasks in routes/console.php (Laravel 11+):
use Illuminate\Support\Facades\Schedule;
Schedule::command('inspire')
->everyMinute()
->description('Displays a random motivational quote.');
Schedule::call(function () {
echo "Processing database backups...";
})->everyFiveMinutes()->description('Database Backup');Step 1 — Start the Local Server
php artisan serveStep 2 — Enable the Dashboard
Add this environment variable inside your local config .env:
SCHEDULER_LIST_ENABLED=trueStep 3 — Access and Trigger
Open 👉 http://localhost:8000/schedulers. To unlock manual runs via the UI buttons, set:
SCHEDULER_LIST_MANUAL_EXECUTION=trueTesting
The package includes a comprehensive feature test suite validating routes, manual triggers, standard output streaming, and security blocks:
composer testContributing & License
🤝 Contributing
Contributions are welcome! Please feel free to open a Pull Request or report bugs in the GitHub Issues page.
📄 License
The MIT License (MIT). Please see the License File for more details.