PHPackages                             fanat98/laravel-task-orchestrator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. fanat98/laravel-task-orchestrator

ActiveLibrary

fanat98/laravel-task-orchestrator
=================================

Lightweight Laravel task orchestration dashboard with scheduling, dependencies and real-time monitoring

v1.0.3(1mo ago)08↑2900%MITPHP

Since Mar 24Pushed 1mo agoCompare

[ Source](https://github.com/fanat98/laravel-task-orchestrator)[ Packagist](https://packagist.org/packages/fanat98/laravel-task-orchestrator)[ RSS](/packages/fanat98-laravel-task-orchestrator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (5)Used By (0)

[![Laravel](https://camo.githubusercontent.com/e4ed477e6a74318715e1339753f1e5fd5f7021a9ce0572836c049f0fa6a2c083/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31322d726564)](https://camo.githubusercontent.com/e4ed477e6a74318715e1339753f1e5fd5f7021a9ce0572836c049f0fa6a2c083/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31322d726564)[![License](https://camo.githubusercontent.com/b8cadaa967891081f8f165695470689986c028821dd8a040132f6e661795dc0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c7565)](https://camo.githubusercontent.com/b8cadaa967891081f8f165695470689986c028821dd8a040132f6e661795dc0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c7565)

Laravel Task Orchestrator
=========================

[](#laravel-task-orchestrator)

A lightweight task orchestration dashboard for Laravel applications.

[![Dashboard](./docs/dashboard.png)](./docs/dashboard.png)

Run, monitor, and schedule your Artisan commands with a clean UI — inspired by tools like Airflow, but built for Laravel simplicity.

---

✨ Features
----------

[](#-features)

- Run Laravel Artisan commands from a web dashboard
- Real-time logs &amp; progress streaming
- Queue-based execution (non-blocking)
- Task scheduling (cron + human-readable)
- Task grouping and ordering
- Task dependencies (mini DAG support)
- Run history with status indicators
- Live dashboard updates (auto refresh)
- System health monitoring (queue, stale runs)
- Flexible authorization (Gate or user field)

---

📦 Installation
--------------

[](#-installation)

```
composer require fanat98/laravel-task-orchestrator
```

Publish config and assets:

```
php artisan vendor:publish --tag=task-orchestrator-config
php artisan vendor:publish --tag=task-orchestrator-assets
```

Run migrations:

```
php artisan migrate
```

---

⚙️ Configuration
----------------

[](#️-configuration)

```
// config/task-orchestrator.php

return [
    'route_prefix' => 'task-orchestrator',

    'middleware' => ['web', 'auth'],

    'authorization' => [
        'enabled' => true,

        // 'gate' or 'user_field'
        'mode' => 'user_field',

        // used when mode = user_field
        'user_field' => 'is_admin',

        // used when mode = gate
        'gate' => 'viewTaskOrchestrator',

        'forbidden_message' => 'You do not have permission to access Task Orchestrator.',
    ],
];
```

---

🔐 Authorization
---------------

[](#-authorization)

### Option 1 — User field (simple)

[](#option-1--user-field-simple)

```
'mode' => 'user_field',
'user_field' => 'is_admin',
```

User must have:

```
$user->is_admin === true
```

---

### Option 2 — Gate (advanced)

[](#option-2--gate-advanced)

```
Gate::define('viewTaskOrchestrator', fn ($user) => $user->is_admin);
```

---

🧠 Defining Tasks
----------------

[](#-defining-tasks)

Tasks are defined in a discovery config file:

```
app/TaskOrchestrator/discovery.php
```

Example:

```
return [
    'commands' => [
        'import:services' => [
            'name' => 'import-services',
            'label' => 'Import Services',
            'group' => 'ETL Imports',
            'group_order' => 10,
            'order' => 10,
            'schedule' => [
                'expression' => '0 */3 * * *',
                'human' => 'Every 3 hours',
            ],
        ],

        'import:control-requirements' => [
            'name' => 'control-requirements',
            'label' => 'Import Control Requirements',
            'group' => 'ETL Imports',
            'order' => 20,
            'depends_on' => ['import-services'],
            'schedule' => [
                'expression' => '0 20 * * *',
                'human' => 'Daily at 20:00',
            ],
        ],
    ],
];
```

---

⏱ Scheduling
------------

[](#-scheduling)

Uses Laravel’s native scheduler.

Run:

```
php artisan schedule:work
```

---

▶️ Running Tasks
----------------

[](#️-running-tasks)

### From dashboard

[](#from-dashboard)

Open:

```
/task-orchestrator

```

---

### From CLI

[](#from-cli)

```
php artisan task-orchestrator:run-task control-requirements
```

---

📊 Dashboard
-----------

[](#-dashboard)

The dashboard provides:

- Task groups
- Status badges (success, failed, running)
- Last &amp; next execution time
- Task dependencies
- Run history (last 5 runs)
- System health overview

---

🧩 Task Dependencies
-------------------

[](#-task-dependencies)

Define dependencies between tasks:

```
'depends_on' => ['import-services']
```

This is visualized in the dashboard and prepares for future workflow execution.

---

🧪 Queue Requirements
--------------------

[](#-queue-requirements)

Tasks run via Laravel queues.

Make sure you run:

```
php artisan queue:work
```

---

🧱 Architecture Overview
-----------------------

[](#-architecture-overview)

- Tasks = Laravel Artisan commands
- Runs = stored in database
- Execution = queued jobs
- Logs = streamed + persisted
- UI = Vue.js (inside the package)
- Scheduler = Laravel native scheduler

---

📁 Database Tables
-----------------

[](#-database-tables)

- `task_runs`
- `task_run_logs`

---

🚀 Future Improvements
---------------------

[](#-future-improvements)

- Full DAG execution (auto-run dependencies)
- Retry failed tasks
- Notifications &amp; alerts
- Parallel pipelines
- Metrics dashboard

---

🤝 Contributing
--------------

[](#-contributing)

Contributions are welcome!

---

📄 License
---------

[](#-license)

MIT

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance90

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

50d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c8dd1d4bcc79f63faf08d6b5ba264b46edc13cfd14fd62a8a1fd1354a5e62e97?d=identicon)[fanat98](/maintainers/fanat98)

### Embed Badge

![Health badge](/badges/fanat98-laravel-task-orchestrator/health.svg)

```
[![Health](https://phpackages.com/badges/fanat98-laravel-task-orchestrator/health.svg)](https://phpackages.com/packages/fanat98-laravel-task-orchestrator)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
