Background Jobs (Project)

The Background Jobs tab manages long-lived processes attached to a project. The tab is split into two sections: Managed Services (Laravel plugins) and Background Jobs (your own workers). Open it from the project's tab strip in the Console.

The actions in this tab require the same permission as updating the project — Owner, Admin, Manager, or Developer.

Managed Services (Laravel Plugins)

If your project is a Laravel application, you can install Laravel-specific services with one click:

  • Octane — keeps the application booted in memory for much faster responses. Pick a server runtime (FrankenPHP or Swoole) during install.
  • Reverb — Laravel's WebSocket server, for broadcasting events to the browser.
  • Horizon — a queue dashboard and supervisor for Laravel queues.
  • Nightwatch — Laravel's monitoring service.

For each installed plugin, the tab shows:

  • The plugin name and current status (Running / Stopped / Error)
  • Actions: Start / Stop / Restart / Remove
  • A View Logs action that opens the live log of the supervised process

Installing a plugin

Click Install Plugin, pick the plugin, fill in any plugin-specific options (Octane's runtime, Reverb's port, etc.), and save. Depfloy installs the supporting packages on the server and starts the supervised process. The plugin row picks up the new status without you needing to refresh.

Plugin error visibility

When a plugin fails to start — most often because of an nginx configuration conflict or a missing dependency — the plugin row gets an Error badge with a destructive banner underneath. The banner shows:

  • A truncated, single-line error message with Show full error to expand
  • A Copy button to grab the error text for sharing or pasting into a bug report
  • A Logs button that opens the full supervised log

For nginx-related errors specifically, see Nginx Configuration → Custom snippets can override Depfloy's defaults — many setup failures resolve once the custom snippet directive override behaviour kicks in.

Removing a plugin

Click Remove on a plugin row to uninstall it. Depfloy stops the supervised process and removes the plugin's configuration. Your project's application code is not touched — only the runtime supervision.

Background Jobs

Below the Managed Services section is a list of your own background jobs — queue workers, custom daemons, anything that needs to run continuously alongside your application.

Adding a job

Click Add Background Job and fill in:

  • Job Name — for your reference; appears in the list
  • Command — what to run. For a typical Laravel queue: php artisan queue:work --queue=default --tries=3
  • Directory — defaults to the project's current/ directory; usually leave it as-is
  • User — usually depfloy
  • Processes — how many copies of the command to run in parallel
  • Start seconds — how long the process must stay alive before Depfloy considers it "started"
  • Stop seconds — how long Depfloy waits for a graceful exit before forcing a stop (default 15)
  • Stop signal — the signal sent to ask the process to stop (default TERM)

Actions

The actions menu on each row changes depending on the job's state:

  • Running — Output Logs, View Status, Edit, Restart, Stop, Delete
  • Stopped — Output Logs, View Status, Edit, Start, Clear Logs, Delete
  • Failed — Output Logs, View Status, Force Restart, Clear Logs, Edit, Delete

Force Restart is the right action for a job that has crashed repeatedly — Depfloy stops it cleanly, re-applies its configuration, and starts it again.

Clear Logs truncates the standard output and error log files (keeps writing to the same files), so you start with a clean slate without disturbing the running process.

Log viewer

Click Output Logs to open the live log. The viewer auto-refreshes while open, with a "last fetched" indicator and a manual refresh button. If a job has been quiet for a while, the viewer slows its refresh rate to save bandwidth; new output bumps it back to live mode.

Server-level background jobs

If a background job is purely a server concern (a cron-like daemon shared across projects, for example) you can also create it at the server level from Background Jobs. Project-scoped is the right place for anything tied to a specific application — the project name appears next to the job in the server view so you can find it from either side.

Was this page helpful?