devakshay/scheduler-list-laravel

A beautiful, real-time developer control center to monitor, search, and manually execute scheduled tasks directly from a premium Pulse-like web interface.

Maintainers

Package info

github.com/Akshayp2002/scheduler-list-laravel

Language:Blade

pkg:composer/devakshay/scheduler-list-laravel

Transparency log

Fund package maintenance!

akshay

Statistics

Installs: 2 407

Dependents: 0

Suggesters: 0

Stars: 72

Open Issues: 0

v1.0.0.2 2026-05-23 10:35 UTC

This package is auto-updated.

Last update: 2026-06-26 07:13:09 UTC


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads License

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.

✨ Features

  • πŸ’« Pulse-Style Dashboard: A premium user interface featuring fluid modern glassmorphism panels, harmonious tailored HSL color schemes, and subtle interactive micro-animations.
  • πŸŒ— Steady Toggle Theme Switcher: Full Dark and Light theme adaptability with local storage persistence and transition controls.
  • ⚑ Controlled Manual Triggering: Optionally trigger Artisan commands, Closure callbacks, and shell jobs directly from the UI when explicitly enabled.
  • πŸ“Ÿ Beautiful Built-in Console: Executes and streams terminal logs in real-time within an interactive overlay (custom-designed in Xcode-dark and DevTools-light styles).
  • πŸ” Real-Time Fuzzy Search & Filtering: Instantly search by command name, expression, or description. Filter tasks by type (Artisan, Callbacks, Shell) with active badge indicators.
  • 🏷️ Smart Meta Indicators: Real-time next run schedules (Carbon countdowns), timezone details, total task count, and task constraints (e.g. Without Overlapping, On One Server, In Maintenance).
  • 🎨 Custom Favicon & Logo: Displays a bespoke console terminal brand logo and a matching self-contained inline SVG favicon.
image

πŸš€ Installation

You can install the package via Composer:

composer require devakshay/scheduler-list-laravel

You can publish the configuration file using:

php artisan vendor:publish --tag="scheduler-list-laravel-config"

This will place a simplified and clean configuration file inside config/scheduler-list.php.

βš™οΈ Configuration

Here is the default configuration file structure inside config/scheduler-list.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,
];

πŸ” Production Security

The dashboard is disabled by default. To use it in production, enable it deliberately and restrict it to trusted operators:

SCHEDULER_LIST_ENABLED=true
SCHEDULER_LIST_MANUAL_EXECUTION=false

Manual execution should stay disabled unless your team explicitly needs it. If you enable it, define a Gate in your application:

use Illuminate\Support\Facades\Gate;

Gate::define('viewSchedulerList', function ($user) {
    return $user->is_admin;
});

Alternatively, publish the config and provide an authorize callback:

'authorize' => fn (\Illuminate\Http\Request $request) => $request->user()?->is_admin === true,

Never expose the dashboard with only ['web'] middleware on a public application.

πŸ’‘ Usage

  1. Open your host application's console router (routes/console.php or Console/Kernel.php) and register your scheduled tasks:
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');
  1. Make sure your local development server is running:
php artisan serve
  1. Enable the dashboard in your environment:
SCHEDULER_LIST_ENABLED=true
  1. Visit the dashboard directly in your browser: πŸ‘‰ http://localhost:8000/schedulers (or your custom path configuration).

  2. To allow the Run button, explicitly enable manual execution:

SCHEDULER_LIST_MANUAL_EXECUTION=true

πŸ§ͺ Testing

The package includes a comprehensive feature test suite validating routes, manual triggers, standard output streaming, and security blocks:

composer test

🀝 Contributing

Contributions are welcome! Please feel free to open a Pull Request or report bugs in the Issues page.

πŸ“„ License

The MIT License (MIT). Please see the License File for more details.