Releases: EasyEngine/easyengine
Release list
EasyEngine v4.13.1
Highlights
- Complete WordPress 7.x core. New and restored WordPress sites get a complete core, checked with
wp core verify-checksums, and existing WordPress 7.x sites with truncated core files are repaired on upgrade (site-type-wp#241, site-command#504). - Failed Let's Encrypt alias changes roll back. When a certificate can't be issued for new alias domains, the aliases, certificate and redirect files stay as they were and the command exits with an error, instead of reporting success and revoking the certificate still in use (site-command#505).
ee site ssl-verifyno longer breaks the proxy. A request on an already-finalized order could deploy a certificate next to a new key that didn't match it, which stopped nginx-proxy reloads for all sites. The previous key is now kept when a request fails, and a certificate that doesn't match its key is never deployed (site-command#506).- More reliable SSL handling. Custom certificates are validated and installed on
ee site update --ssl=custom, stale ACME orders are rebuilt on retry, concurrent SSL commands no longer race, and warnings now show the actual Let's Encrypt error (site-command#489, site-command#492, site-command#493, site-command#498, site-command#486). - Safer site creation. In the rare case where two site names map to the same database name or volume prefix, a failed create no longer removes the other site's database, user or volumes (site-command#503, site-type-wp#240, site-type-php#115).
- IP whitelist and cron fixes. An invalid CIDR prefix in
ee auth --ipis rejected instead of stopping proxy reloads (auth-command#59), and the cron scheduler no longer restarts in a loop when there are no cron jobs (cron-command#60). - Updated images: PHP 8.3.35, Redis 8.10.2, postfix on Debian 13.7 and newrelic-daemon on Alpine 3.24.2.
Upgrade notes
Cron jobs saved with ee cron update run on their intended schedule
ee cron update stored a five-field schedule without the seconds field, so it was read as a six-field one: * * * * * ran every second instead of once a minute. The scheduler config is regenerated on upgrade, so these jobs now fire on their intended schedule (cron-command#60).
IP whitelist entries are checked and cleaned up
ee auth create --ip lists are now split on any whitespace or comma, and a repeated IP is stored once. Entries with an invalid CIDR prefix (such as 192.0.2.1/abc, /99 or an IPv6 prefix over 128) are refused. On upgrade, a migration removes invalid entries from existing whitelist files and normalizes the ones nginx accepts (such as 10.0.0.0/08). The database rows are kept; an invalid one is skipped with a warning that names the command to remove it (auth-command#59).
WordPress 7.x sites with truncated core files are repaired
On upgrade, a migration runs wp core verify-checksums on each WordPress site that has wp-includes/php-ai-client/, and repairs the truncated core files in place. Content and database are not touched. Disabled or stopped sites, and sites that can't be checked, get a warning with the command to check them later (site-type-wp#241).
Colliding site names
Existing sites, including pairs that already share a database name or volume prefix, are left as they are. New creates that would collide are refused: a site whose volume prefix or compose project another site uses, or a --dbname/--dbuser that is already taken. A default database name that is already taken gets a _2 (then _3, …) suffix (site-command#503).
Let's Encrypt needs a valid le-mail
Issuing or renewing a Let's Encrypt certificate now stops with a clear error when le-mail is empty or not a valid address, including the nightly ssl-renew --all. Check it with ee config get le-mail and set it with ee config set le-mail <email> if needed (site-command#496).
WordPress and PHP sites get new images
Every WordPress and PHP site is recreated on the new postfix image during the upgrade, and sites on PHP 8.3 also move to PHP 8.3.35. Expect a short interruption per site.
Fixes
SSL and Let's Encrypt
- A failed Let's Encrypt alias change restores the certificate, ACME and redirect files, keeps the aliases unchanged and exits non-zero. Only certificates that an alias change actually replaced are revoked (site-command#505).
ee site update --ssl=lefails when no certificate was issued, andee site ssl-renew <site>exits non-zero when the renewal fails. A failure inee site update --ssl=…puts the site back to HTTP-only before anything is saved (site-command#505).- A site's certificate and ACME files, including those of its aliases, are removed on
ee site deleteand--ssl=off, also for wildcard sites.--ssl=offis refused while other sites inherit the certificate, works on sites stored as wildcard, and a self-signed site can turn SSL back on afterwards (site-command#505). - Certificates without a subject CN are parsed, and ACME challenge types EasyEngine can't solve no longer break certificate orders (site-command#505).
- When a first certificate request fails, the previous key is restored, and a 403 from Let's Encrypt gives a warning with its reason instead of a PHP fatal error. Certificate keys are no longer written to
ee.logwhen a request fails (site-command#506). ee site update --ssl=customnow copies the certificate and key; before, it turned on HTTPS without them (site-command#489).- Custom certificates are checked before install: an invalid PEM file, a broken chain or a key that doesn't match the certificate is refused, and an expired certificate or one expiring within 30 days gives a warning (site-command#492).
ee site ssl-verifyis refused on sites without Let's Encrypt SSL, so it can no longer replace a custom certificate. On a site without SSL it points toee site update <site> --ssl=le(site-command#487).ee site ssl-verifyrebuilds a stored ACME order that has expired or failed, instead of failing on every retry (site-command#493).- Certificates are copied to nginx-proxy through temporary files, so a failed copy no longer leaves a mismatched key and certificate. The file permissions are kept on renewal (site-command#491).
- SSL commands wait for each other: a second one waits up to 120 seconds (600 for
ssl-renew) and then stops with a clear message (site-command#498). le-mailis validated before registering with Let's Encrypt, and renewals use the currentle-mail(site-command#496, site-command#497).- SSL warnings include the Let's Encrypt error, and the misleading "Challenge Authorization failed" line is gone from renewal failures (site-command#486). The renewal message now says "less than 35 days", matching the actual threshold (site-command#485).
ssl-renew --allpauses 1–5 seconds between due renewals, reports Let's Encrypt rate limits as such, and carries on with the next site when one is rate-limited (site-command#499).- A warning is shown when the Let's Encrypt account key is missing while certificates issued under it still exist, instead of silently creating a new account (site-command#500).
- Self-signed certificate generation quotes the site name and file paths it passes to
openssl(site-command#495). - The SSL flag migration no longer marks sites with custom, self-signed or inherited SSL as Let's Encrypt, on installs that still have to run it (site-command#490).
Proxy
- A proxy cache update that fails keeps a valid nginx-proxy config: the files it wrote are restored, and the config test is retried once (site-command#505).
- Alias changes reload nginx-proxy instead of restarting it, and sites without SSL stay HTTP-only when their aliases change (site-command#505).
- After a site is deleted, nginx-proxy is reloaded, so its
www.redire...
EasyEngine v4.13.0
Highlights
- HTTP auth and IP whitelists now cover every domain a site serves. Until now,
ee authonly protected a site's own domain: the subsites of a WordPress subdomain multisite (*.example.com) and a site's alias domains were served with the global auth or with no auth at all. In v4.13.0, auth and whitelists apply to subdomain multisite subsites, plain alias domains and*.aliaswildcard aliases, and stay in sync when aliases are added or removed (auth-command#57, site-command#502). - No more auth leaking between sites. The nginx-proxy wildcard lookup no longer guesses from the host name: an unrelated site such as
shop.example.comno longer asks for the credentials of the multisiteexample.com, and subsites of multisites with 4+ labels (*.ms.dev.example.com) are now matched correctly (dockerfiles#354). - Existing sites are fixed on upgrade. A migration regenerates every site's auth and whitelist files, so subsites and aliases that were unprotected become protected with the site's existing credentials, without any manual step. The upgrade never applies a site's wildcard auth to another site, not even while the old nginx-proxy is still running (auth-command#58).
- Safer upgrades. When an upgrade fails before all containers are upgraded (for example because an image can't be pulled), EasyEngine now also undoes the auth file changes made earlier in the same run, so the host is left as it was and the next attempt starts cleanly (easyengine#1936).
- No slow requests after upgrading. Sites whose containers are recreated during the upgrade no longer serve intermittent ~3 s (sometimes 10 s+) requests until their nginx is reloaded by hand (easyengine#1937).
- Safer proxy reloads. EasyEngine now only reloads nginx-proxy when the regenerated config passes
nginx -t. A broken config is no longer loaded into the running proxy; ee warns with the nginx error instead (site-command#494). - Updated images: nginx-proxy 1.11.6, PHP 8.2.34 / 8.3.33 / 8.4.26 / 8.5.11, PHP 8.1.34 with refreshed Debian 13 packages, Redis 8.10.1, postfix on Debian 13.6, and a final rebuild of the PHP 7.4 and 8.0 images with the last Debian 11 security updates.
Upgrade notes
nginx-proxy: wildcard auth files are now looked up only for *.X hosts
dockerfiles#354 changes how the proxy picks the htpasswd and ACL file for a host:
htpasswd/<host>(andvhost.d/<host>_acl) if it exists;- for a host that is literally
*.X(a subdomain multisite or a*.Xalias):htpasswd/_wildcard.X(andvhost.d/_wildcard.X_acl); - otherwise the global
htpasswd/default(andvhost.d/default_acl).
The label-counting fallback added in v4.11.0 (dockerfiles#298), which tried _wildcard.<last 3 labels> and then _wildcard.<last 2 labels> for any host, is removed. The same mapping is now used for the IP whitelist include, including the /ee-admin/ and mailhog locations. Setups managed with ee auth are not affected: before this release, EasyEngine never wrote _wildcard.X files, so only hand-made files relied on the old fallback.
PHP sites get new images
Every site on PHP 8.1, 8.2, 8.3, 8.4 or 8.5 is recreated on its new easyengine/php<version>:v4.13.0 image during the upgrade: PHP 8.2.34, 8.3.33, 8.4.26 and 8.5.11, and PHP 8.1.34 (unchanged) with up-to-date Debian 13 packages. All five images are based on Debian 13.7. PHP 8.1 is end of life upstream and its official base image is no longer rebuilt, so the EasyEngine image now applies the Debian security updates itself at build time; plan to move 8.1 sites to a newer PHP version.
Sites on PHP 7.4 and 8.0 are recreated on the new easyengine/php7.4:v4.13.0 and easyengine/php8.0:v4.13.0 images during the upgrade, like every other WordPress and PHP site. PHP itself doesn't change (7.4.33 and 8.0.30, both end of life upstream); the images are rebuilt on the last Debian 11 security snapshot, which brings up to two years of Debian security updates that the old images (built 2024-09-13 and 2025-02-13) didn't have. Debian 11 is now end of life too, so this is the last build of these two images: future releases keep them at v4.13.0. Move these sites to a supported PHP version with ee site update <site> --php=8.4 (or 8.2, 8.3, 8.5) when you can.
New features
auth-command
- HTTP auth and IP whitelists now apply to all domains of a site: subdomain multisite subsites, alias domains and
*.aliaswildcard aliases. Plain aliases get their own files; only subdomain multisites and*.Xaliases get_wildcardfiles (auth-command#57). - Auth files follow alias changes: files for a new alias are written before the proxy starts serving it, removed again if the alias update fails, and removed for deleted aliases (auth-command#57).
- New upgrade migration that regenerates every site's auth and whitelist files (auth-command#57, auth-command#58).
site-command
- New hooks around alias domain updates (
site_alias_domains_before_update,site_alias_domains_updated,site_alias_domains_update_failed) for packages that keep per-domain proxy files (site-command#502). - Alias domain names are now validated on
ee site update --add-alias-domainsandee site create --type=html --alias-domains: only a hostname or*.hostnameis accepted, labels can't start with-or_or end with-, and the reserved namesdefault/default_admin_toolsare refused. Invalid names are listed in the error before anything changes. Existing invalid aliases can still be deleted (site-command#502).
core
- New hook
after_docker_image_migration, fired during an upgrade right after the image migration, once the updated global containers run. Packages can use it for changes that need the new containers (easyengine#1936).
Fixes
core
- A failed upgrade now also reverts the container migrations that ran earlier in the same run (for example when an image can't be pulled), and removes their records so the next attempt runs them again. Before, they stayed applied on the old containers and were never re-run. Once the image migration has completed, a later failure keeps them (easyengine#1936).
- After the upgrade recreates a WordPress or PHP site's containers, its nginx is reloaded, so it no longer keeps sending some requests to the removed temporary php container (each took ~3 s, sometimes 10 s+, until
ee site reload <site> --nginx). The same reload runs for each site when a failed upgrade rolls the sites back. If a reload fails, ee warns with the site name and the command to run (easyengine#1937).
auth-command
- Site delete now removes all of the site's auth and whitelist rows and every htpasswd and ACL file it used (the cleanup hook existed but was never loaded, so these were left behind) (auth-command#57).
- Usernames and passwords are shell-escaped when the htpasswd files are written: passwords with spaces,
$or;were silently cut or broke the command (auth-command#57). - Passwords and usernames are no longer written to
ee.log(auth-command#57). - htpasswd files are written atomically (temp file and rename), so a failed write keeps the previous file, including the global
defaultfile (auth-command#57). - Sites without auth or whitelist entries of their own no longer keep stale files, and correctly fall back to the global auth (auth-command#57).
- The upgrade migration backs up the auth files and restores them exactly if the upgrade fails. It holds the
_wildcard.*files back while the old nginx-proxy template runs and puts them in place once the new proxy is up, so sibling sites never pick up another site's wildcard auth during an upgrade, even when the upgrade fails or is interrupted. If a site's auth changed in between (for example after an interrupted upgrade), its files are regenerated from the current settings instead (auth-command#58).
site-command
- nginx-proxy is only reloaded when
nginx -tpasses, and the test now checks the regenerated config rather than the previous one. On failure, ee warns with the nginx error and skips the reload (site-command#494). - Adding or removing alias domains on a site with custom, self-signed or inherited SSL no longer aborts halfway with "Only Letsencrypt certificate renewal is supported." (which left the containers and the database out of sync). Let's Encrypt sites still get a renewed certificate, custom-cert sites get a warning to supply a certificate covering the new aliases, and self-signed sites keep HTTPS (site-command#488).
- Blank entries in alias lists (
a.com,,b.com,) are dropped instead of...
EasyEngine v4.12.0
What's Changed
- chore(release): prepare v4.12.0 #1928 @mrrobot47
- feat(cli): configure logrotate during migration #1927 @mrrobot47
- fix(cli): avoid phar autoload during self-update #1926 @mrrobot47
- ci: add GitHub Actions CI with ShellCheck, bats unit tests, and a host-prep matrix EasyEngine/installer#48 @mrrobot47
- feat: add option to wait on apt locks EasyEngine/installer#47 @L0RD-ZER0
- chore(deps): bump jwilder/nginx-proxy from 1.11.0 to 1.11.2 in /nginx-proxy EasyEngine/dockerfiles#338 @dependabot
- chore(deps): bump actions/checkout from 6 to 7 EasyEngine/dockerfiles#337 @dependabot
- chore(deps): bump alpine from 3.23.4 to 3.24.1 in /newrelic-daemon EasyEngine/dockerfiles#336 @dependabot
- fix: clean up downloaded helper scripts after install EasyEngine/installer#46 @mrrobot47
- Fix host PHP setup for Ubuntu 26.04 (+ deterministic version control) EasyEngine/installer#45 @mrrobot47
- fix: run apt non-interactively during installation EasyEngine/installer#44 @mrrobot47
- docs(readme): refresh outdated requirements, distros, links, and command list #1924 @mrrobot47
- docs: regenerate README for current PHP version support EasyEngine/site-type-php#112 @mrrobot47
- docs: regenerate README for current PHP version support EasyEngine/site-type-wp#237 @mrrobot47
- chore(deps): bump php from 8.5.0-fpm to 8.5.7-fpm in /php/8.5 EasyEngine/dockerfiles#334 @mrrobot47
- fix(php): remove stale PHP version fallbacks EasyEngine/site-type-php#111 @mrrobot47
- feat(php): make PHP 8.4 the default version EasyEngine/site-type-wp#236 @mrrobot47
- chore(deps): bump mariadb from 12.1 to 12.3 in /mariadb EasyEngine/dockerfiles#332 @dependabot
EasyEngine v4.11.0
What's Changed
- chore(composer): update site-command to v3.7.6 #1923 @mrrobot47
- fix(restore): raise PHP memory_limit for wp core download to prevent OOM EasyEngine/site-command#479 @mrrobot47
- chore(composer): update site-command to v3.7.5 #1922 @mrrobot47
- fix(backup): support older rclone on restore and add a backup --list preflight EasyEngine/site-command#478 @mrrobot47
- chore(composer): update site-command to v3.7.4 #1921 @mrrobot47
- Release/v4.11.0 #1920 @mrrobot47
- chore(deps): bump php from 8.4.21-fpm to 8.4.22-fpm in /php/8.4 EasyEngine/dockerfiles#333 @dependabot
- chore(deps): bump redis from 8.6.4 to 8.8.0 in /redis EasyEngine/dockerfiles#331 @dependabot
- chore(deps): bump openresty/openresty from 1.29.2.5-bookworm to 1.31.1.1-bookworm in /nginx EasyEngine/dockerfiles#330 @dependabot
- chore(deps): bump redis from 8.6.2 to 8.6.4 in /redis EasyEngine/dockerfiles#329 @mrrobot47
- chore(deps): bump php from 8.4.20-fpm to 8.4.21-fpm in /php/8.4 EasyEngine/dockerfiles#328 @mrrobot47
- chore(deps): bump php from 8.3.30-fpm to 8.3.31-fpm in /php/8.3 EasyEngine/dockerfiles#327 @mrrobot47
- chore(deps): bump php from 8.2.30-fpm to 8.2.31-fpm in /php/8.2 EasyEngine/dockerfiles#326 @mrrobot47
- chore(deps): bump jwilder/nginx-proxy from 1.10.1 to 1.11.0 in /nginx-proxy EasyEngine/dockerfiles#325 @mrrobot47
- chore(deps): bump alpine from 3.23.3 to 3.23.4 in /newrelic-daemon EasyEngine/dockerfiles#324 @mrrobot47
- fix(postfix): update package names for Debian 13 (trixie) compatibility EasyEngine/dockerfiles#323 @mrrobot47
- chore(deps): bump openresty from 1.27.1.1-buster to 1.29.2.5-bookworm in /nginx EasyEngine/dockerfiles#322 @mrrobot47
- chore(deps): bump php from 8.5.0-fpm to 8.5.7-fpm in /php/8.5 EasyEngine/dockerfiles#321 @mrrobot47
- fix: cap rclone backup/restore memory to prevent OOM kills EasyEngine/site-command#477 @mrrobot47
- chore(deps): bump composer/composer from 2.2.26 to 2.2.28 #1918 @dependabot
- chore(deps): bump php from 8.4.16-fpm to 8.4.20-fpm in /php/8.4 EasyEngine/dockerfiles#320 @dependabot
- chore(deps): bump mcuadros/ofelia from 0.3.20 to 0.3.22 in /cron EasyEngine/dockerfiles#319 @dependabot
- chore(deps): bump redis from 8.4.0 to 8.6.2 in /redis EasyEngine/dockerfiles#318 @dependabot
- fix: resolve unbound variable error for tmp_phar and tmp_checksum under set -u EasyEngine/installer#43 @mrrobot47
- fix: replace apt with apt-get and consolidate apt-get update EasyEngine/installer#42 @mrrobot47
- fix: fail fast and validate SHA-512 checksum on phar download EasyEngine/installer#41 @mrrobot47
- chore(deps): bump debian from 13.2-slim to 13.4-slim in /postfix EasyEngine/dockerfiles#317 @dependabot
- chore(deps): bump jwilder/nginx-proxy from 1.9.0 to 1.10.1 in /nginx-proxy EasyEngine/dockerfiles#315 @dependabot
- chore(deps): bump docker/login-action from 3 to 4 EasyEngine/dockerfiles#314 @dependabot
- chore(deps): bump docker/setup-qemu-action from 3 to 4 EasyEngine/dockerfiles#313 @dependabot
- chore(deps): bump docker/build-push-action from 6 to 7 EasyEngine/dockerfiles#312 @dependabot
- chore(deps): bump docker/setup-buildx-action from 3 to 4 EasyEngine/dockerfiles#311 @dependabot
- chore(deps): bump alpine from 3.23.2 to 3.23.3 in /newrelic-daemon EasyEngine/dockerfiles#304 @dependabot
- chore(deps): bump symfony/process from 5.4.47 to 5.4.51 #1915 @dependabot
- chore(deps-dev): bump phpunit/phpunit from 9.5.28 to 9.6.33 #1914 @dependabot
- chore(deps): bump php from 8.3.29-fpm to 8.3.30-fpm in /php/8.3 EasyEngine/dockerfiles#302 @dependabot
- feat(nginx-proxy): Add SSL_STAPLING env var to control OCSP stapling EasyEngine/dockerfiles#299 @mrrobot47
- feat(nginx-proxy): Add wildcard HTTP auth support for WordPress multisite EasyEngine/dockerfiles#298 @mrrobot47
EasyEngine v4.10.2
What's Changed
- Release/v4.10.2 #1911 @mrrobot47
- Add retry mechanism with exponential backoff for Docker availability check #1910 @mrrobot47
- Improvements for handling site disabled state in backup EasyEngine/site-command#475 @mrrobot47
- chore(deps): bump composer/composer from 2.2.24 to 2.2.26 #1909 @dependabot
- chore(deps): bump mcuadros/ofelia from 0.3.19 to 0.3.20 in /cron EasyEngine/dockerfiles#295 @dependabot
- chore(deps): bump php from 8.4.15-fpm to 8.4.16-fpm in /php/8.4 EasyEngine/dockerfiles#294 @dependabot
- chore(deps): bump php from 8.1.33-fpm to 8.1.34-fpm in /php/8.1 EasyEngine/dockerfiles#293 @dependabot
- chore(deps): bump php from 8.2.29-fpm to 8.2.30-fpm in /php/8.2 EasyEngine/dockerfiles#292 @dependabot
- chore(deps): bump php from 8.3.28-fpm to 8.3.29-fpm in /php/8.3 EasyEngine/dockerfiles#291 @dependabot
- chore(deps): bump alpine from 3.23.0 to 3.23.2 in /newrelic-daemon EasyEngine/dockerfiles#290 @dependabot
EasyEngine v4.10.1
What's Changed
- Release/v4.10.1 #1908 @mrrobot47
- feat(backup): add global lock to prevent concurrent backup OOM crashes EasyEngine/site-command#474 @mrrobot47
- fix(backup): handle 7z exit codes correctly to avoid false failures EasyEngine/site-command#473 @mrrobot47
- feat(pra): fetch latest release from GitHub API with fallback EasyEngine/admin-tools-command#53 @mrrobot47
EasyEngine v4.10.0
What's Changed
- Release/v4.10.0 #1907 @mrrobot47
- feat(config): add PHP 8.5 configuration zip file EasyEngine/site-command#471 @mrrobot47
- Backup cleanup improvement EasyEngine/site-command#470 @mrrobot47
- feat: php-fpm 8.5 support EasyEngine/site-type-wp#235 @L0RD-ZER0
- feat: php-fpm 8.5 support EasyEngine/site-type-php#110 @L0RD-ZER0
- feat: php-fpm 8.5 support EasyEngine/site-command#469 @L0RD-ZER0
- feat: php-fpm 8.5 support EasyEngine/dockerfiles#289 @L0RD-ZER0
- feat: php-fpm 8.5 support #1906 @L0RD-ZER0
- Error Tracking for Backup Failure Callbacks to EasyEngine dashboard EasyEngine/site-command#472 @mrrobot47
- feat(dash-command): add EasyEngine version to server data EasyEngine/dash-command#1 @mrrobot47
- fix(backup): follow symlinks to backup complete config content EasyEngine/site-command#468 @mrrobot47
- Enhance and stabilize API retry handling EasyEngine/site-command#467 @mrrobot47
- feat(dash): add retry logic for EasyEngine Dashboard API requests EasyEngine/site-command#466 @mrrobot47
- chore(deps): bump alpine from 3.22.1 to 3.23.0 in /newrelic-daemon EasyEngine/dockerfiles#288 @dependabot
- feat: EasyEngine Dashboard API callback for async backups EasyEngine/site-command#465 @mrrobot47
- Improve disk space error message clarity EasyEngine/site-command#464 @mrrobot47
- chore(deps): bump php from 8.4.13-fpm to 8.4.15-fpm in /php/8.4 EasyEngine/dockerfiles#287 @dependabot
- chore(deps): bump debian from 13.0-slim to 13.2-slim in /postfix EasyEngine/dockerfiles#286 @dependabot
- chore(deps): bump php from 8.3.26-fpm to 8.3.28-fpm in /php/8.3 EasyEngine/dockerfiles#285 @dependabot
- chore(deps): bump actions/checkout from 5 to 6 EasyEngine/dockerfiles#284 @dependabot
- chore(deps): bump redis from 8.2.2 to 8.4.0 in /redis EasyEngine/dockerfiles#283 @dependabot
- chore(deps): bump mariadb from 11.5 to 12.1 in /mariadb EasyEngine/dockerfiles#282 @dependabot
- fix(clone): Prevents overwriting wp-config.php when cloning a remote site with a custom public directory EasyEngine/site-command#462 @rodrigo-gpereira
- fix(clone-utils): update database import command to use mysql EasyEngine/site-command#461 @mrrobot47
- Add --skip-ssl option to db export command EasyEngine/site-type-wp#234 @mrrobot47
- fix(clone-utils): add --skip-ssl option to db export/import commands EasyEngine/site-command#460 @mrrobot47
- chore(deps): bump jwilder/nginx-proxy from 1.8.0 to 1.9.0 in /nginx-proxy EasyEngine/dockerfiles#279 @dependabot
- chore(deps): bump redis from 8.2.1 to 8.2.2 in /redis EasyEngine/dockerfiles#276 @dependabot
- Adjust DNS record name for wildcard domains EasyEngine/site-command#459 @mrrobot47
- fix(formatter): improve JSON output formatting #1903 @mrrobot47
- feat(migrations): implement concurrent docker image pulls #1902 @mrrobot47
- chore(deps): bump php from 8.4.12-fpm to 8.4.13-fpm in /php/8.4 EasyEngine/dockerfiles#275 @dependabot
- chore(deps): bump mcuadros/ofelia from 0.3.18 to 0.3.19 in /cron EasyEngine/dockerfiles#274 @dependabot
- chore(deps): bump php from 8.3.25-fpm to 8.3.26-fpm in /php/8.3 EasyEngine/dockerfiles#273 @dependabot
EasyEngine v4.9.3
What's Changed
- Release/v4.9.3 #1901 @mrrobot47
- feat: ssl-info command to show SSL details and DNS challange records EasyEngine/site-command#457 @mrrobot47
- feat(site): update add_site_redirects to handle redirect for non-ssl EasyEngine/site-command#458 @mrrobot47
- Add migration to fix SSL flag in DB for edge cases EasyEngine/site-command#456 @mrrobot47
- feat(redirects): check for SSL cert/key before adding redirects EasyEngine/site-command#455 @mrrobot47
- Add ssl-dns-info command to display DNS-01 TXT record values post site creation EasyEngine/site-command#454 @mrrobot47
- Add config unset and list commands with format support EasyEngine/config-command#13 @mrrobot47
- Fix/cert return EasyEngine/site-command#453 @mrrobot47
- fix typo EasyEngine/site-command#421 @gingerbeardman
EasyEngine v4.9.2
What's Changed
- feat(backup/restore): add --skip-ssl option to database commands EasyEngine/site-command#452 @mrrobot47
EasyEngine v4.9.1
What's Changed
- feat(backup): add --skip-ssl option to mysqldump command EasyEngine/site-command#451 @mrrobot47
- Add self-signed certificate generation EasyEngine/service-command#81 @mrrobot47
- Skip cert generation if certs dir missing EasyEngine/site-command#450 @mrrobot47
- Release/v4.9.1 #1900 @mrrobot47
- Add default self-signed cert to server EasyEngine/site-command#449 @mrrobot47
- Add default HTML page for unconfigured domains EasyEngine/dockerfiles#271 @mrrobot47
- Install libc-client-dev from sury for debian trixie EasyEngine/dockerfiles#270 @mrrobot47
- Flush MySQL privileges before database backup EasyEngine/site-command#448 @mrrobot47
- feat(PHP): update default PHP version to 8.3 EasyEngine/site-type-php#109 @mrrobot47
- feat(php): update default PHP version to 8.3 EasyEngine/site-type-wp#233 @mrrobot47
- Fix site deletion when ssl is not issued EasyEngine/site-command#447 @mrrobot47
- chore(deps): bump php from 8.4.11-fpm to 8.4.12-fpm in /php/8.4 EasyEngine/dockerfiles#269 @dependabot
- chore(deps): bump php from 8.3.24-fpm to 8.3.25-fpm in /php/8.3 EasyEngine/dockerfiles#268 @dependabot
- chore(deps): bump redis from 8.2.0 to 8.2.1 in /redis EasyEngine/dockerfiles#267 @dependabot
- chore(deps): bump actions/checkout from 4 to 5 EasyEngine/dockerfiles#265 @dependabot
- chore(deps): bump debian from 12.11-slim to 13.0-slim in /postfix EasyEngine/dockerfiles#264 @dependabot
- Bump php from 8.3.23-fpm to 8.3.24-fpm in /php/8.3 EasyEngine/dockerfiles#263 @dependabot
- Bump php from 8.4.10-fpm to 8.4.11-fpm in /php/8.4 EasyEngine/dockerfiles#262 @dependabot
- Bump redis from 8.0.2 to 8.2.0 in /redis EasyEngine/dockerfiles#261 @dependabot
- Bump jwilder/nginx-proxy from 1.7.1 to 1.8.0 in /nginx-proxy EasyEngine/dockerfiles#260 @dependabot
- Bump mcuadros/ofelia from 0.3.17 to 0.3.18 in /cron EasyEngine/dockerfiles#259 @dependabot
- Bump alpine from 3.22.0 to 3.22.1 in /newrelic-daemon EasyEngine/dockerfiles#258 @dependabot