One command updates EasyEngine and everything it runs: the CLI, its bundled commands, the global services and each site’s containers.
Before you update
Check your Let’s Encrypt email
From v4.13.1, Let’s Encrypt certificates are issued and renewed only when EasyEngine has a valid contact email. This includes the nightly renewal. Check the address:
ee config get le-mail
If it is empty or wrong, set it:
ee config set le-mail admin@example.com
Plan for a short restart per site
An update that brings new images recreates the containers that use them. For v4.13.1 that means every WordPress and PHP site, so expect a short interruption on each site while its containers restart. Run the update at a quiet time.
Update
ee cli update
EasyEngine downloads the new version, checks it, replaces the running copy and then runs the upgrade steps.
Other options:
| Command | What it does |
|---|---|
ee cli update --yes | Updates without asking for confirmation |
ee cli update --stable | Installs or reinstalls the latest stable release |
ee cli update --nightly | Installs the latest build of the develop branch. For testing only |
ee cli version | Shows the installed version |
What the update does for you
The upgrade steps depend on the version you move to. From v4.13.0 onwards they include:
- HTTP auth and IP whitelists for every domain. Each site’s rules are regenerated so they cover its multisite subsites and alias domains. See HTTP Auth and IP Whitelisting.
- WordPress 7 core check (v4.13.1). The upgrade verifies WordPress 7 core integrity on existing sites. See WordPress Core Integrity.
- IP whitelist tidy-up (v4.13.1). Stored entries are checked, and any that the proxy can’t load are left out with a warning.
- Cron schedules (v4.13.1). The scheduler config is regenerated, so every job runs on the schedule you set.
- A reload for every recreated site. After a site’s containers are recreated, its nginx reloads so requests go straight to the new containers.
- Log rotation (v4.12.0). EasyEngine sets up daily log rotation for its own logs, site logs and nginx-proxy logs, and keeps 30 days.
If an update fails
If a step fails before all containers are upgraded (for example, when an image can’t be downloaded), EasyEngine undoes the container changes it made in that run. Your server is left as it was, and the next ee cli update starts cleanly.
EasyEngine also reloads nginx-proxy only when its new configuration passes nginx -t. If it doesn’t, EasyEngine keeps the running configuration and shows the nginx error.
Move sites off old PHP versions
PHP 8.4 is the default for new WordPress sites from v4.12.0.
The PHP 7.4 and 8.0 images got their last build in v4.13.0, and PHP 8.1 is end of life upstream. Sites on these versions keep running, but you should move them to a supported version:
ee site update example.com --php=8.4
You can also choose 8.2, 8.3 or 8.5.
Test on a staging copy before you move a production site. Clone the site, switch the copy to the new PHP version and check it:
ee site clone example.com staging.example.com
ee site update staging.example.com --php=8.4
When the copy works as expected, update the production site and delete the copy with ee site delete staging.example.com.