Skip to content
How to install

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.

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 site
site.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 site
site.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 site
site.start
Starts the site’s container. Server API: POST /api/sites/:slug/start
Custom schedule: Start sites
Stop site
site.stop
Stops the site’s container. The site does not answer until it is started again. Server API: POST /api/sites/:slug/stop
Custom schedule: Stop sites
Restart site
site.restart
Restarts the site’s container. Server API: POST /api/sites/:slug/restart
Custom schedule: Restart sites
Change PHP version
site.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 container
site.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/wildcard
Built-in schedule: Site network repair
Another job: Apply container limits, Finish panel update
The panel itself
Change domains
site.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 site
site.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 move
site.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/finalize
Another job: Nightly housekeeping
Shell command
site.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/shell
Custom schedule: Shell command
Job What it does Lane Started by
Back up site
backup.create
Dumps the site’s database and archives its files into a new backup. Server API: POST /api/sites/:slug/backups
Built-in schedule: Scheduled backups
Custom schedule: Back up
Restore backup
backup.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 copy
backup.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-enabled
Built-in schedule: Offsite copies
Another job: Back up site, Panel snapshot
Fetch offsite backup
backup.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 destination
backup.offsitePurge
Deletes this panel’s copies from an offsite destination. offsite, one per server API: DELETE /api/backup-destinations/:id
Delete backups
backup.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-delete
Another job: Delete site
Panel snapshot
panel.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
Job What it does Lane Started by
Update WordPress
wp.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 change
wp.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 change
wp.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 updates
wp.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/bulk
Custom schedule: Update plugins, themes and WordPress
WordPress inventory scan
wp.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/scan
Built-in schedule: WordPress inventory scan
Custom schedule: Scan WordPress inventory
Plugin recipes
wp.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 command
wp.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/cli
Custom schedule: WP-CLI command
REST API request
wp.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/rest
Custom schedule: REST API request
Job What it does Lane Started by
Extract archive
files.extract
Unpacks an archive among the site’s files. Server API: POST /api/sites/:slug/files/extract
Compress files
files.compress
Packs files and folders of the site into a zip archive. Server API: POST /api/sites/:slug/files/compress
Job What it does Lane Started by
Malware scan
site.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/scan
Built-in schedule: Malware scans
Another job: Reinstall original
Plugin zip check
plugin.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/upload
Built-in schedule: Malware scans
Reinstall original
wp.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
Job What it does Lane Started by
Set up server
server.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/update
Another job: Finish panel update
Sync plugin library
server.syncPlugins
Copies the panel’s plugin zips to the server, so sites on it can install them. Server API: POST /api/servers
Apply container limits
server.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/settings
Built-in schedule: Container limits follow-up
Move backups
server.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 update
system.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-update
The panel itself
Nightly housekeeping
system.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