Cron Jobs

The Cron page edits the www-data crontab — jobs run as the web server user.

The Cron Editor

Go to Server → Cron Jobs. The editor reads and writes the www-data user's crontab via sudo crontab -u www-data. Edit the crontab directly in the textarea and click Save.

Laravel Scheduler

Do not schedule a site's Laravel tasks from this screen. This crontab runs as the web server user, while each site's PHP-FPM pool runs as that site's own isolated user. Tasks started here would create log files, compiled views, and caches that the site itself cannot write, which surfaces later as intermittent permission errors.

Open the site, then Tools → Scheduler. It runs schedule:work under systemd as the site's own user, and can be started, stopped, and inspected from the panel.

Cron Syntax

Standard cron syntax applies: minute hour day month weekday. Standard five-field cron syntax:

┌───────────── minute (0–59)
│ ┌───────────── hour (0–23)
│ │ ┌───────────── day of month (1–31)
│ │ │ ┌───────────── month (1–12)
│ │ │ │ ┌───────────── day of week (0–7, 0 and 7 = Sunday)
│ │ │ │ │
* * * * * command

Common Examples

  • * * * * * — every minute
  • 0 * * * * — every hour at :00
  • 0 2 * * * — every day at 02:00
  • 0 2 * * 0 — every Sunday at 02:00
  • */5 * * * * — every 5 minutes

Cron jobs run as <code>www-data</code> — the same user as your web application. Make sure the commands have the necessary permissions.

Queue Workers

For simple Laravel queues, prefer a one-shot worker from cron so each run exits after it drains the current queue:

* * * * * cd /var/www/example.com/web_root && php artisan queue:work --stop-when-empty >> /dev/null 2>&1

Use a process supervisor only when the app needs a long-running worker and you have configured the server process management separately.