Skip to content

Run the Laravel scheduler on OrbixPanel

Laravel defines all its scheduled tasks in code (app/Console/Kernel.php or routes/console.php), but something has to trigger it every minute. That’s one cron entry — the only cron job a Laravel app needs.

The single cron entry

Add this in the panel’s Cron section:

* * * * * php /home/orbix-you/yourapp/artisan schedule:run >> /dev/null 2>&1

Replace the path with your app’s real location. That runs schedule:run every minute; Laravel itself then decides which of your tasks are actually due — so you define ->hourly(), ->dailyAt('03:00'), etc. in code and never touch cron again.

Define tasks in code

app/Console/Kernel.php
protected function schedule(Schedule $schedule): void
{
$schedule->command('backup:run')->dailyAt('02:00');
$schedule->command('reports:send')->weekly()->mondays()->at('08:00');
$schedule->job(new PruneOldData)->hourly();
}

Add, change, or remove tasks here — the single cron line keeps working.

Verify it’s running

  • List due tasks: php artisan schedule:list
  • Run it once by hand to check for errors:
    Terminal window
    php /home/orbix-you/yourapp/artisan schedule:run
  • Confirm the cron job shows as active in the panel.

Gotchas

  • Full path to artisan — cron starts in your home dir, not the project. Use the absolute path (see cron cheat sheet).
  • Right PHP version — if your app needs PHP 8.x, make sure the php cron uses it (PHP version).
  • Queues are separate — scheduled tasks ≠ queued jobs. For queues see background jobs & queues.

Running OrbixPanel? Add the one scheduler cron line in the panel and you’re set. OrbixPanel.com → — the free, self-hosted, AI-powered hosting control panel.