Job types
Every kind of job the panel runs, 37 types in all, grouped as the filters on Automations → All jobs group them. The id under each name is what the API and the job log use.
How lanes work
Section titled “How lanes work”A lane decides what a job waits for. Jobs in one lane run one at a time, and jobs in different lanes run side by side.
| Lane | What waits for what |
|---|---|
| Server | One job at a time per server: the site’s server, or the server the job works on. |
| Both servers | A move holds the lanes of both servers it works on. |
| Shared queue | Jobs that belong to no server run one at a time among themselves. |
| A named lane | Jobs in a named lane run one at a time within it, beside the server lanes. A lane marked one per server has a lane for each server. |
The lanes and starters below are read from the places in the code that queue each job. Every job a person starts in the panel goes through the same API.
| Job | What it does | Lane | Started by |
|---|---|---|---|
Create sitesite.create |
Creates the site’s database and container, installs WordPress, and applies the plugins and recipes chosen on the New site form. | Server | API: POST /api/sites |
Delete sitesite.delete |
Removes the site’s container, database and files, after a final backup when one was asked for. | Server Both servers |
API: DELETE /api/sites/:slug |
Start sitesite.start |
Starts the site’s container. | Server | API: POST /api/sites/:slug/startCustom schedule: Start sites |
Stop sitesite.stop |
Stops the site’s container. The site does not answer until it is started again. | Server | API: POST /api/sites/:slug/stopCustom schedule: Stop sites |
Restart sitesite.restart |
Restarts the site’s container. | Server | API: POST /api/sites/:slug/restartCustom schedule: Restart sites |
Change PHP versionsite.changePhp |
Recreates the site’s container on another PHP version. Files and database stay as they are. | Server | API: PUT /api/sites/:slug/php |
Recreate site containersite.reconcile |
Recreates the site’s container so it runs under the current isolation policy - its networks, its container capabilities and what it may send mail as - and with the certificate its server gives it now. | Server | API: DELETE /api/dns/token, PATCH /api/servers/:id, POST /api/sites/:slug/reconcile, POST /api/sites/reconcile-all, PUT /api/dns/servers/:id/wildcardBuilt-in schedule: Site network repair Another job: Apply container limits, Finish panel update The panel itself |
Change domainssite.updateDomains |
Changes the site’s hostnames - going live, adding or removing a domain - and updates WordPress’s own URLs to match. | Server | API: POST /api/sites/:slug/go-live, PUT /api/sites/:slug/domains |
Move sitesite.move |
Copies the site to another server and switches its traffic over. The old copy is parked until every hostname points at the new server. | Both servers | API: POST /api/sites/:slug/move |
Finish movesite.moveFinalize |
Removes the copy a move parked on the old server, once every hostname resolves to the new one. | Server | API: POST /api/sites/:slug/move/finalizeAnother job: Nightly housekeeping |
Shell commandsite.shell |
Runs a shell command inside the site’s container as www-data and keeps its output in the job log. | exec, one per server |
API: POST /api/sites/:slug/shellCustom schedule: Shell command |
Backups
Section titled “Backups”| Job | What it does | Lane | Started by |
|---|---|---|---|
Back up sitebackup.create |
Dumps the site’s database and archives its files into a new backup. | Server | API: POST /api/sites/:slug/backupsBuilt-in schedule: Scheduled backups Custom schedule: Back up |
Restore backupbackup.restore |
Replaces the site’s files and database with a backup, after a safety copy of the current state unless that was skipped. | Server | API: POST /api/backups/:id/restore |
Offsite copybackup.offsite |
Uploads a backup to every offsite destination that should hold it. | offsite, one per server |
API: PATCH /api/backup-destinations/:id, POST /api/backup-destinations, POST /api/backups/:id/offsite, PUT /api/sites/:slug/offsite-enabledBuilt-in schedule: Offsite copies Another job: Back up site, Panel snapshot |
Fetch offsite backupbackup.fetch |
Downloads a backup back from an offsite destination, so it can be restored. | offsite, one per server |
API: POST /api/backups/:id/fetch |
Empty offsite destinationbackup.offsitePurge |
Deletes this panel’s copies from an offsite destination. | offsite, one per server |
API: DELETE /api/backup-destinations/:id |
Delete backupsbackup.delete |
Deletes several backups at once: their files on the server and their copies at the remote destinations. A backup that is in use is left alone and named in the log. | backup-delete |
API: POST /api/backups/bulk-deleteAnother job: Delete site |
Panel snapshotpanel.snapshot |
Backs up the panel’s own database - servers, sites, domains, DKIM keys - which is what a fleet is rebuilt from. | Server | Built-in schedule: Scheduled backups Custom schedule: Panel snapshot |
WordPress
Section titled “WordPress”| Job | What it does | Lane | Started by |
|---|---|---|---|
Update WordPresswp.coreUpdate |
Updates WordPress itself on the site, then re-reads what the site has installed. | Server | API: POST /api/sites/:slug/wp/core-update |
Plugin changewp.pluginTask |
Installs, activates, deactivates, updates or deletes one plugin on the site. | Server | API: DELETE /api/sites/:slug/wp/plugins/:name, POST /api/sites/:slug/wp/plugins, POST /api/sites/:slug/wp/plugins/:name/activate, POST /api/sites/:slug/wp/plugins/:name/deactivate, POST /api/sites/:slug/wp/plugins/:name/update |
Theme changewp.themeTask |
Activates, updates or deletes one theme on the site. | Server | API: DELETE /api/sites/:slug/wp/themes/:name, POST /api/sites/:slug/wp/themes/:name/activate, POST /api/sites/:slug/wp/themes/:name/update |
WordPress updateswp.bulkTask |
Runs a list of plugin, theme and core operations on one site in one go, optionally after a backup and with a check that the site still answers. Bulk runs and update schedules both use it. | Server | API: POST /api/sites/:slug/wp/bulk, POST /api/wp/bulkCustom schedule: Update plugins, themes and WordPress |
WordPress inventory scanwp.scanAll |
Asks every running site which plugins, themes and WordPress version it has and what has an update, then checks the installed versions against the vulnerability feed. | Shared queue | API: POST /api/wp/scanBuilt-in schedule: WordPress inventory scan Custom schedule: Scan WordPress inventory |
Plugin recipeswp.recipes |
Runs the recipes that license and set up premium plugins on the site. | Server | API: POST /api/sites/:slug/wp/recipes/apply |
WP-CLI commandwp.cli |
Runs a WP-CLI command inside the site’s container and keeps its output in the job log. | exec, one per server |
API: POST /api/sites/:slug/wp/cliCustom schedule: WP-CLI command |
REST API requestwp.rest |
Sends a request to one of the site’s WordPress REST API routes (/wp-json/…), signed in with an application password when it has one, and keeps the response in the job log. Anything but a 2xx answer fails the job. | exec, one per server |
API: POST /api/sites/:slug/wp/restCustom schedule: REST API request |
| Job | What it does | Lane | Started by |
|---|---|---|---|
Extract archivefiles.extract |
Unpacks an archive among the site’s files. | Server | API: POST /api/sites/:slug/files/extract |
Compress filesfiles.compress |
Packs files and folders of the site into a zip archive. | Server | API: POST /api/sites/:slug/files/compress |
Security
Section titled “Security”| Job | What it does | Lane | Started by |
|---|---|---|---|
Malware scansite.malwareScan |
Checks a site’s files against wordpress.org’s published checksums, then looks for known malware in what those cannot vouch for. Runs in a throwaway container with no network that can only read the site. | scan, one per server |
API: POST /api/security/scans, POST /api/sites/:slug/security/findings/:id/put-back, POST /api/sites/:slug/security/scanBuilt-in schedule: Malware scans Another job: Reinstall original |
Plugin zip checkplugin.zipCheck |
Unpacks a zip from the plugin catalog in a throwaway container with no network, records each file’s hash and scans the files for known malware. Sites that hold its files unchanged have them vouched for. | scan, one per server |
API: POST /api/plugins/:id/check, POST /api/plugins/uploadBuilt-in schedule: Malware scans |
Reinstall originalwp.reinstall |
Downloads WordPress or a plugin again from wordpress.org, at the version the site has, over files a malware scan found changed. Then scans the site again. | Server | API: POST /api/sites/:slug/security/findings/:id/reinstall |
Servers
Section titled “Servers”| Job | What it does | Lane | Started by |
|---|---|---|---|
Set up serverserver.provision |
Installs or updates the server’s stack: Docker services, Traefik, MariaDB and the mail relay. | Server | API: POST /api/servers, POST /api/servers/:id/updateAnother job: Finish panel update |
Sync plugin libraryserver.syncPlugins |
Copies the panel’s plugin zips to the server, so sites on it can install them. | Server | API: POST /api/servers |
Apply container limitsserver.applySiteLimits |
Brings every site container on the server to the CPU, memory and process limits in Settings, in place, without a restart. Lifting a CPU cap is the exception: those sites each get a “Recreate site container” job. | Server | API: PUT /api/settingsBuilt-in schedule: Container limits follow-up |
Move backupsserver.relocateBackups |
Copies a server’s backups to a new location, verifies them, and points the server at it. | Server | API: POST /api/servers/:id/backups/relocate |
| Job | What it does | Lane | Started by |
|---|---|---|---|
Finish panel updatesystem.postUpdate |
What a panel update leaves for the new version to do: bringing servers and sites up to what it expects. | Shared queue | API: POST /api/system/update/post-updateThe panel itself |
Nightly housekeepingsystem.housekeeping |
Prunes old backups, statistics, mail and API logs and finished jobs, applies offsite retention, finishes moved sites whose DNS has settled and refreshes the vulnerability feed. | housekeeping |
Built-in schedule: Nightly housekeeping |