Releases: ddev/ddev
v1.24.6
Installation
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev/ddev
or justbrew upgrade ddev
. - Linux or WSL2: Use
apt install ddev
orapt upgrade ddev
see apt/yum installation. - Traditional Windows: Use
choco upgrade -y ddev
, or download the ddev_windows_installer below. - Consider
ddev delete images
orddev delete images --all
after upgrading to free up disk space used by previous docker image versions. This does no harm. - Consider
ddev config --auto
to update your projects to current configuration.
Highlights
This is a bugfix release. There were several regressions in v1.24.5 that needed some work:
- Increase timeout for downloading docker-compose on slower networks.
- Fix support for TYPO3 v12 and below (adding support for TYPO3 v14 broke some nginx routing).
- Fix Craft CMS problem with passing values from
.ddev/.env.web
toweb
container. - Fix broken
.ddev/.gitignore
file for Craft CMS.
Minor Updates
- Add checks for "generic" webserver without 80/443 ports.
- Make "generic" webserver work with busy 80/443 ports.
- Bump
docker-compose
to v2.36.1.
Otherwise, same features as in v1.24.5.
What's Changed
- build: update brew instructions for old formula, fixes #7297 by @stasadev in #7295
- fix: change download timeout to 5 minutes instead of 20s, fixes #7298 by @rfay in #7300
- fix: Make sure env-type settings are populated before start, don't override
.ddev/.gitignore
file, for #7236 by @rfay in #7286 - fix: make TYPO3 nginx config work with TYPO3 v12, fixes #7299, for #7230 by @stasadev in #7301
- build: bump docker-compose to v2.36.1 by @stasadev in #7311
- test: adding quickstarts for typo3 v13 and v12 plus bats tests by @rpkoller in #7302
- feat: make generic webserver work with ephemeral ports by @stasadev in #7171
- fix: add checks for "generic" webserver without 80/443 ports, for #6935, fixes #7313 by @stasadev in #7306
- docs: fix indentation for code block by @stasadev in #7314
- build: bump images to v1.24.6 for release, fixes #7310 by @stasadev in #7315
Full Changelog: v1.24.5...v1.24.6
v1.24.5
Note: This release contains regressions. Update to the latest version for fixes.
Installation
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev/ddev
or justbrew upgrade ddev
. - Linux or WSL2: Use
apt install ddev or apt upgrade ddev
see apt/yum installation - Traditional Windows: Use
choco upgrade -y ddev
, or download the ddev_windows_installer below. - Consider
ddev delete images
orddev delete images --all
after upgrading to free up disk space used by previous docker image versions. This does no harm. - Consider
ddev config --auto
to update your projects to current configuration.
⚠ Homebrew users with old drud
formula only
If you can't update or remove the old ddev
formula from drud
, use this:
rm -rf "$(brew --repo drud/homebrew-ddev)"
brew uninstall -f ddev
brew install ddev/ddev/ddev
Highlights
- Improved (experimental) support for WSL2 "Mirrored" Networking. Fixed port waiting timeouts (thanks to @marvinhinz) and added automatic Xdebug connection configuration.
If you're using Windows WSL2 with "Mirrored" Networking, set the experimentalhostAddressLoopback=true
feature. - Resolved "unknown" state caused by PhpStorm's use of
docker-compose run
for one-off containers. The DDEV Integration plugin will no longer fail in this case. Edge cases with Node remain; see JetBrains issue WEB-64513. - VPN or Proxy configuration with DDEV? A dedicated Special Network Configurations docs page is now available.
- Want to learn more about DDEV? AI-generated insights available at ddev/ddev | DeepWiki.
Features
- Downloaded Mutagen and
docker-compose
binaries now pass SHA checksum verification with retry logic. - New environment variables:
DDEV_PRIMARY_URL_PORT
,DDEV_PRIMARY_URL_WITHOUT_PORT
, andDDEV_SCHEME
. Thanks to @AkibaAT. DDEV_APPROOT
variable available in theweb
container. Thanks to @shelane.- Support for
prepend.Dockerfile*
files for multi-stage Docker builds. Thanks to @hanoii. - Improved output of
ddev add-on get
and added warning exit code. Thanks to @hanoii. - WordPress
--path
is now added automatically toddev wp
whendocroot
is set. Thanks to @pfructuoso from www.nazaries.com. - Craft CMS settings now reside in
.ddev/.env.web
;.env
is no longer managed by DDEV. - Added shell completion for the
--service
(-s
) flag inddev exec
,ddev logs
,ddev ssh
,ddev debug rebuild
. - Support TYPO3 v14 nginx configuration.
Bug Fixes
- Remove redundant media stanzas from
nginx.conf
. Thanks to @barbieswimcrew. ddev xhgui launch
now correctly respects non-default ports. Thanks to @PierrePaul.- Avoid overriding
WP_ENVIRONMENT_TYPE
for WordPress. ddev config
now works with non-default project names inconfig.*.yaml
.- Prevent PhpStorm's debug integration from triggering stdin-related connections. Thanks to @AkibaAT.
- PostgreSQL exports now use fast checkpoints to avoid prolonged backup blockages. Thanks to @AkibaAT.
ddev_version_constraint
now supports wildcards like1.24.x
and comparison operators like> 1.24.5
.- Fixed broken HTTP/HTTPS port resolution. Thanks to @AkibaAT.
Deprecations
ddev composer create
is deprecated. Useddev composer create-project
.ddev debug capabilities
is deprecated. Useddev_version_constraint
for project and add-on checks.
Minor Updates
- PHP 8.3.21 and 8.4.7.
docker-compose
v2.36.0.- Chocolatey removed from automated Windows installation scripts. Thanks to @colans.
- Magento 2 quickstart now uses OpenSearch. Drupal CMS quickstart improved. Thanks to @rpkoller.
- Updated Craft CMS quickstart. Thanks to @timkelty.
ddev start
checks for anindex.*
file in docroot and warns if missing (403 errors in browser).- Pimcore quickstart now requires a license due to upstream license change.
What's Changed
- docs: Add missing
sequelace
command link todatabase-management.md
by @TravisCarden in #7184 - docs: add tip on using per-project API tokens for hosting providers, fixes #7177 by @stasadev in #7183
- fix: ignore curl error in
Dockerfile.test
forddev debug test
by @stasadev in #7186 - fix: don't wait for one-off containers from PhpStorm, fixes #7146 by @stasadev in #7148
- fix: add timeout for netutil::IsPortActive check for WSL2 with "mirrored networking mode" as opposed to default "NAT mode", fixes #6245 by @marvinhinz in #7166
- fix: nginx.conf should let index.php handle 404 errors for media files by @barbieswimcrew in #7050
- docs: Explain corp vpn and proxy, fixup FAQ, fixes #7048 by @rfay in #7061
- build: stop installing chocolatey, fixes #6636, fixes #6344 [skip buildkite] by @colans in #7049
- fix: XHGui launch command support custom ports, fixes #7181 by @PierrePaul in #7182
- test: fix for magento2 quickstart and bats test, fixes #7191 by @rpkoller in #7192
- docs: fix minor typo in the Grav quickstart by @jgonyea in #7197
- refactor: move
WP_ENVIRONMENT_TYPE
to the docs, fixes #7178 by @stasadev in #7179 - fix: make
ddev config
work with project name fromconfig.*.yaml
, fixes #7060 by @stasadev in #7062 - docs: Improve buildkite windows setup script run [skip buildkite] by @rfay in #7200
- fix: make sure mutagen agents file is fresh on upgrade, add shasum testing, test shasum for mutagen+docker-compose by @rfay in #7077
- test: make the drupal cms bats test a bit more robust and trustworthy by @rpkoller in #7203
- feat: add DDEV_APPROOT variable to web container and updates documentation, fixes #7198 by @shelane in #7199
- build: switch to official percona release for xtrabackup, fixes #6963 by @rfay in #7207
- fix: disable xdebug trigger for xdebug and xhprof status checks, fixes #6191, fixes ddev/ddev-intellij-plugin#414 by @AkibaAT in #7216
- fix: Use fast checkpoint during postgresql backup, fixes #7098 by @AkibaAT in #7219
- feat: add new envs
DDEV_PRIMARY_URL_PORT
,DDEV_PRIMARY_URL_WITHOUT_PORT
andDDEV_SCHEME
, fixes #7214 by @AkibaAT in #7218 - feat: support prepend.Dockerfile* files for multi-stage builds by @hanoii in #7071
- fix: Improve the output of ArrayToReadableOutput by @rfay in #7222
- docs: Improvements to Zscaler instructions, fixes #7209, fixes #7211 [skip buildkite] by @rfay in #7212
- test: Add TestUploadDirs to verify upload_dirs, fixes #7109 by @rfay in #7224
- feat: add success message for xhgui on and off, fixes #7202 by @rpkoller in #7205
- refactor: Hide ddev debug capabilities, fixes #7174 by @rfay in #7227
- refactor: check for docroot/index.* on start, fixes #7157 by @rfay in #7228
- build: bump actions/setup-python from 5.5.0 to 5.6.0 by @dependabot in #7240
- docs: use ddev composer create-project everywhere, fixes #6920 by @rfay in #7231
- refactor: Add retries to util.Download(), both the SHASUM and the target file by @rfay in #7234
- build: Use some artifacts that we control building windows installer (nsis), fixes #7086 by @rfay in #7229
- test: add timeout to buildkite maintenance, fixes #7176 by @rfay in #7226
- docs: wrap quotes around commands that use the caret symbol by @nmangold in #7237
- docs: Remove --no-interaction from Pimcore, disable test, fixes #7243 by @rfay in #7245
- fix: support TYPO3 v14 nginx configuration, fixes #6944 by @rfay in #7230
- build: Reject the use of
drud/ddev/ddev
homebrew recipe by @rfay in #7244 - build: bump golangci/golangci-lint-action from 7 to 8 by @dependabot in #7264
- fix: add BASE_IMAGE arg before everything else, for #7071 by @hanoii in #7258
- fix: allow status code 429 for linkspector by @stasadev in #7270
- fix: WSL2 install script should wait longer for DDEV Windows installer to complete [skip ci] by @rfay in #7269
- refactor: Make DownloadFile() retry logic more robust, improve curling in Makefile by @rfay in #7252
- fix: correct warning output formatting (Drupal) and don't try to do exec when not running by @stasadev in #7247
- fix: set `XDEBUG_MODE...
v1.24.4: XHGui for XHProf Profiling
Installation
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev/ddev
or justbrew upgrade ddev
. - Linux or WSL2: Use
apt install ddev
orapt upgrade ddev
see apt/yum installation - Traditional Windows: Use
choco upgrade -y ddev
, or download the ddev_windows_installer below. - Consider
ddev delete images
orddev delete images --all
after upgrading to free up disk space used by previous docker image versions. This does no harm. - Consider
ddev config --auto
to update your projects to current configuration.
Highlights:
- Sponsored by the TYPO3 Community: Integrate XHGui into DDEV, enable it with
ddev poweroff && ddev config global --xhprof-mode=xhgui
, then useddev xhgui
in any of your projects. - DevDb VS Code extension: First class support for DDEV, thanks to @damms005
Features:
- Optional Docker Compose profiles: You can now start projects with specific profiles using
ddev start --profiles=list,of,profiles
- Backdrop: a new quickstart based on the official add-on, thanks to @laryn
- New
MutagenSync
annotation: Custom commands that alter the host system can now use this annotation to help synchronize changes.
Bug Fixes:
- DDEV router now works properly behind proxies (regression from v1.24.0).
- Show router URLs in
ddev describe
andddev list
when default 80/443 port is busy (regression from v1.24.3). - Correct status color formatting in
ddev describe
andddev list
. - Remove outdated Traefik images with
ddev delete images
, thanks to @rpkoller - Resolve misleading errors in
ddev debug test
when run outside the project root. - Fix invalid
upload_dirs
on traditional Windows setups. - Sanitize
~/.ddev/project_list.yaml
to prevent panic. - Make the
DDEV_PAGER
environment variable optional to prevent it from breakingwp-cli
output. - Prevent overwriting the
generic
project type when runningddev config --update
. - Update
DATABASE_URL
to usecharset=utf8mb4
in MySQL and MariaDB for Symfony projects, thanks to @RubenColpaert - Delete third-party built images on
ddev delete
.
Minor Updates:
- PHP 8.3.19 and 8.4.5
- Fix displaying for
#ddev-description
stanza in add-on install actions, thanks to @hanoii - Show custom
config.*.yaml
onddev start
, thanks to @hanoii - Laravel 12 quickstart with tests.
- Update DDEV brand logos for dark theme.
- Update all Go vendor dependencies.
- Add quickstart tests for Magento 2, CakePHP, ExpressionEngine, Kirby CMS, Symfony, Silverstripe CMS, CraftCMS, and Statamic, thanks to @rpkoller
- Add OpenMage/Magento 1 quickstart test and split it from Magento 2, thanks to @sreichel
What's Changed
- fix: the
#ddev-description
stanza in add-on install actions not showing if it's the first line by @hanoii in #7022 - feat: add
go-version
toddev version
, fixes #7021 by @stasadev in #7023 - feat: Add live link to Discord by @tyler36 in #7042
- docs: remove the recommendation not to use colima by @rfay in #7025
- build: fix new mkdocs failure on git by @rfay in #7046
- refactor: use
ddev composer create-project
in the code, for #6920 by @stasadev in #7027 - feat: Laravel 12 quickstart with tests by @stasadev in #7028
- fix: delete traefik images based on the pattern used for ddev-dbserver and use constants for targeting, fixes #6326 by @rpkoller in #7036
- feat: Support docker compose optional profiles, allow
ddev start --profiles=list,of,profiles
, for #6894 by @rfay in #7007 - fix: explicitly ping 127.0.0.1 in Traefik healthcheck to make proxying work, fixes #7044, fixes #6931 by @stasadev in #7045
- fix: remove refreshenv from WSL2 install scripts, fixes #7024 [skip ci] by @rfay in #7026
- docs: add Backdrop-specific config considerations. by @laryn in #7037
- build: don't use go 1.24 yet until docker issues resolved, fixes #7051 by @rfay in #7057
- test: Run quickstart tests with mutagen enabled [skip buildkite] by @rfay in #7017
- docs: Improve troubleshooting docs for hosting by @rfay in #7056
- build: skip testing with buildkite if diff is not from that branch by @stasadev in #7064
- docs: update mkdocs logo, update word/figurative mark svg for dark mode by @stasadev in #7055
- build: put both git and ssh in both webserver images, fixes #7054 by @rfay in #7063
- build: Use specific binfmt for qemu in push-tagged-image [skip ci] by @rfay in #7070
- build: use special qemu binfmt version for db push [skip ci] by @rfay in #7073
- fix: add check for app in
ddev debug test
and run it from approot by @stasadev in #7072 - build: Update go mod files except docker, replaces #7074 by @rfay in #7078
- test: don't load 1password secrets if not available [skip buildkite] by @rfay in #7088
- test: Fix secret loading [skip buildkite] by @rfay in #7090
- build: upgrade docker/docker to v28 usages, followup to #7078, fixes #7079 by @rfay in #7081
- docs: Fix pull request title link in pull request template [skip ci] by @rfay in #7097
- test: Add quickstart test for magento2 (by @rpkoller) [skip buildkite] by @rfay in #7082
- test: Disable link check on freedesktop.org since it will be out for a week by @rfay in #7100
- docs: add Wordpress special handling info about wp-cli.yml by @nickchomey in #7080
- docs: add DevDb tip to database management documentation by @damms005 in #7084
- docs: update Windows installation docs to use 'Docker Engine' terminology by @Nick-Hope in #7092
- fix: use filepath for calculateHostUploadDirFullPath, fixes #7065 by @rfay in #7066
- test: simplify the zip based test and quickstart for backdrop based on feedback from @stasadev by @rpkoller in #7106
- test: use a more robust approach downloading the latest zip file (by @stasadev) by @rpkoller in #7104
- test: Bats test for CakePHP composer quickstart by @rpkoller in #7103
- test: bats tests for expression engine and adjustments to its quickstart by @rpkoller in #7101
- test: adding kirby quickstart bats test by @rpkoller in #7099
- fix: remove obsolete references to non-traefik router by @rfay in #7096
- fix: add ddev_nointeractive to common-setup.bash (per @stasadev) by @rpkoller in #7115
- test: attempt to fix the returned 503 error on ee tests [skip buildkite] by @rpkoller in #7114
- test: symfony bats tests by @rpkoller in #7102
- docs: Update quickstart.md to remove Drupal CMS zip file instructions by @phenaproxima in #7119
- test: adding silverstripe quickstart bats test by @rpkoller in #7112
- test: craftcms bats test by @rpkoller in #7107
- docs: ddev debug rebuild is great for debugging [skip buildkite] by @rfay in #7120
- test: bats test for Statamic Composer quickstart [skip buildkite] by @rpkoller in #7116
- test: add OpenMage/Magento 1 quickstart test and split it from Magento 2, for #7094 by @sreichel in #7091
- feat: show config..yml on ddev start by @hanoii in #7089
- fix: make linkspector ignorePatterns work properly, for #6951 by @stasadev in #7125
- docs: Add docs about configuring browser for HTTPS certificates by @MurzNN in #7075
- test: adjust openmage bats test assertions to the now available demo content by @rpkoller in #7126
- build: remove go toolchain, bump docker library to 28.0.2, for #7057 by @stasadev in #7127
- test: improve
ddev debug test
by @stasadev in #7128 - docs: ignore mutagen links in linkspector by @stasadev in #7129
- docs: fix example file name by @stasadev in #7130
- fix: sanitize
~/.ddev/project_list.yaml
, fixes #7132 by @stasadev in #7136 - fix: set
NO_PROXY=*
in ddev-router to allow internal connections, use default Traefik config file location by @stasadev in https://github.com/ddev/dde...
v1.24.3: Mutagen fix, Generic Webserver Type for Node.js
Installation
We would really appreciate if if you would upgrade to this release soon, especially if you're on macOS, because when you upgrade your Docker provider, the previous version of Mutagen won't work for you.
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev/ddev
or justbrew upgrade ddev
. - Linux or WSL2: Use
apt install ddev
orapt upgrade ddev
see apt/yum installation - Traditional Windows: Use
choco upgrade -y ddev
, or download the ddev_windows_installer below. - Consider
ddev delete images
orddev delete images --all
after upgrading to free up disk space used by previous docker image versions. This does no harm. - Consider
ddev config --auto
to update your projects to current configuration.
Highlights:
- New
generic
web server type for Node.js: we've introduced quickstarts for this, and we want your feedback! - New SvelteKit and Node.js Web Server quickstart.
- Experimental FrankenPHP quickstart.
- Want to contribute a quickstart for your favorite framework? We've got you covered with this guide.
Recent Docker Issues:
- macOS: Problems with Docker v28.0.0 and Mutagen: Unable to connect to container, "CreateOrResumeMutagenSync Failure", fixed in DDEV v1.24.3, thanks to @xenoscopic for the quick Mutagen bugfix release and @LoganHornbuckle for reporting the issue.
- Linux and Docker v28.0.0: Some users have reported networking issues, though not everyone seems to be affected. See the Moby issue queue for more details.
- Arch Linux and Docker v28.0.0: Intermittent problems with
docker pull
, see this issue. - Docker Desktop v4.38.0: Some users have reported slow command execution.
Bug Fixes:
- Fixed a panic regression in v1.24.2 affecting DDEV projects in the parent directories of existing DDEV projects.
- User-defined ports in
.ddev/docker-compose.*.yaml
now respect thebind_all_interfaces
config option. - Arguments with spaces in
ddev exec
now behave as expected (no need to useddev exec --raw
anymore). - Added a better validation for
docroot
, and nowddev config --docroot=""
works as expected.
Minor Updates:
- PHP 8.3.17 and 8.4.4
- Many new quickstart tests, thanks to @rpkoller
- ProcessWire quickstart, thanks to @BernhardBaumrock
- The file
/etc/supervisor/conf.d/mailhog.conf
inside theweb
container renamed to/etc/supervisor/conf.d/mailpit.conf
- Apache 2 change: switch from
mpm_prefork
tompm_event
, thanks to @vever001 - nginx change: set
decorate_workers_output
tono
by default, thanks to @atomicptr - Bump minimal recommended Docker version to 25.0 (API 1.44), thanks to @AndrewGearhart
What's Changed
- docs: Update Rancher Desktop buildkite agent setup [skip ci] by @rfay in #6923
- test: prepare for magento2 quickstarts by providing composer secrets [skip ci] by @rfay in #6919
- build: rename mailhog.conf to mailpit.conf by @rfay in #6924
- docs: Fix formatting for staging server in Let's Encrypt [skip ci] by @rfay in #6928
- test: make lima/colima tests work after lima 1.0.4 by @rfay in #6936
- fix: don't panic when running project in not allowed location, fixes #6925 by @stasadev in #6926
- docs: add more examples for testing a PR by @stasadev in #6942
- fix: unset JAVA_HOME to prevent mkcert hang by @rfay in #6940
- feat: Add info about web_extra_exposed_ports and web_extra_daemons to Amplitude instrumentation by @rfay in #6947
- fix: allow
ddev config
for existing parent projects, fixes #6937 by @stasadev in #6941 - test: use linkspector for external links, use mkdocs for internal links, for #6860 by @stasadev in #6951
- build: run golangci-lint only for changed code in PRs by @stasadev in #6954
- build: run linkspector on the main branch, for #6860 by @stasadev in #6953
- build: hide extra output from linkspector [skip ci] by @stasadev in #6952
- docs: Add info on maintaining and testing quickstarts, fixes #6880 by @rfay in #6888
- docs: Add ProcessWire to the Quickstart List by @BernhardBaumrock in #6879
- build: bump actions/setup-python from 5.3.0 to 5.4.0 by @dependabot in #6957
- fix: trim single quotes, double quotes, and spaces from filepath input, fixes #6938 by @stasadev in #6939
- fix: improve error message for invalid env flag, fixes #6949 by @stasadev in #6960
- fix: check snapshot name for valid characters, fixes #6955 by @stasadev in #6956
- feat: Add "generic" webserver type for Node.js and other things like FrankenPHP, fixes #4854, fixes #5655, fixes #4312 by @rfay in #6935
- test: allow a margin of +2 for ephemeral port checks due to flakiness by @stasadev in #6965
- fix: add patch command to hardened prod web image, fixes #6958 by @stasadev in #6959
- feat: bind IP to user-defined ports if not set, fixes #6943 by @stasadev in #6950
- feat: switch apache mpm_prefork to mpm_event, fixes #6966 by @vever001 in #6967
- build: remove custom Xdebug 3.4.1 by @stasadev in #6969
- build: autoload Python and Node deps from Makefile with direnv [skip ci] by @stasadev in #6968
- docs: add MySQL 8.4 to supported databases by @pbowyer in #6971
- feat: change php-fpm setting 'decorate_workers_output' to 'no' by @atomicptr in #6964
- feat: normalize docroot usage in
ddev config
by @stasadev in #6962 - build: remove Xdebug 3.2.2 builds for php8.1 and php8.2 by @stasadev in #6976
- build: push tagged images with ubuntu 22.04 [skip ci] by @rfay in #6979
- fix: correct spelling for Xdebug by @stasadev in #6981
- fix: do not show router URL in
ddev list
if it's stopped by @stasadev in #6980 - docs: Fix niggling code sample inconsistency in
troubleshooting.md
by @TravisCarden in #6984 - build: go back to normal blackfire packaging, fixes #6078 by @rfay in #6985
- docs: add link for DDEV Add-on Registry, fixes #6383 by @stasadev in #6989
- test: add yes flag to ddev start cmd by @rpkoller in #6996
- test: civicrm bats test by @rpkoller in #6986
- test: grav quickstart bats tests by @rpkoller in #6988
- test: quickstart bats test for ibexa by @rpkoller in #6990
- test: quickstart bats test for moodle by @rpkoller in #6991
- test: bats test for pimcore quickstart by @rpkoller in #6992
- test: shopware quickstart bats test by @rpkoller in #6993
- test: joomla quickstart bats test by @rpkoller in #6997
- test: figure out why buildkite tests are running for quickstart bats tests by @rfay in #6999
- test: add more joomla specific tests [skip buildkite] by @rpkoller in #7000
- fix: add a mutagen sync at the end of the dotenv cmd by @rpkoller in #6994
- fix: handle args with spaces in
ddev exec
, don't panic about invalid syntax inexec_raw
, fixes #5865 by @stasadev in #6930 - test: run ClearDockerEnv() before tests, fixes #472 by @rfay in #7012
- test: Makefile - try again if curl fails to download something it needs by @rfay in #7009
- docs: change code refs to include info about Backdrop config storage options, fixes #7013 by @laryn in #7014
- refactor: improve docker version checks, set minimum supported docker API to 1.44, fixes #6916 by @AndrewGearhart in #6946
- docs: Remove gitpod/drupalpod from docs, for #6891 [skip buildkite] by @rfay in #6974
- fix: wrap args with spaces in
ddev exec
with double quotes instead of using raw, for #6930 by @stasadev in #7006 - test: contao quickstart bats test by @rpkoller in https://github.com/dde...
v1.24.2: MySQL 8.4 support, improved ddev composer create
Installation
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev/ddev
or justbrew upgrade ddev
. - Linux or WSL2: Use
apt install ddev
orapt upgrade ddev
see apt/yum installation. - Traditional Windows: Use
choco upgrade -y ddev
, or download the ddev_windows_installer below. - Consider
ddev delete images
orddev delete images --all
after upgrading to free up disk space used by previous docker image versions. This does no harm. - Consider
ddev config --auto
to update your projects to current configuration.
Highlights:
- Support for MySQL 8.4: DDEV now uses
bitnami/mysql
as the base image formysql:8.x
. - Improved argument handling for
ddev composer create
: Theddev composer create-project
alias has been added for better usability. - Global DDEV commands available inside the
web
container: Commands likeddev xdebug toggle
can now be run directly within the web container, e.g., simply usexdebug toggle
. - New
ddev mariadb
command: Theddev mysql
command remains available for MariaDB users, but you can now also useddev mariadb
. (MariaDB is moving away from havingmysql
in the names of its commands.)
Breaking Changes:
ddev config
location restriction: You can no longer runddev config
from the parent directory of a project, preventing accidental setups in incorrect locations.
Behavior Changes:
- Subdirectory support for
ddev config
: You can now runddev config
in the subdirectories of an existing project, aligning it with other DDEV commands. - Improved database output: The environment variable
PAGER="less -SFX"
has been added to both the web and db containers for cleaner database output. You can modify or disable this behavior by settingexport DDEV_PAGER=""
outside of DDEV. Thanks to @tyler36.
Bug Fixes:
- OpenSSH certificates for
ddev auth ssh
: Fixed missing OpenSSH certificates when usingddev auth ssh
. ddev pull acquia
fix for multiple databases, thanks to @charginghawk.- A fix for Drupal 7
settings.ddev.php
prevents problems with Mutagen not being able to updatesettings.php
after doing a Drupal installation. Thanks to @eporama. - The
nginx-site.conf
was not being properly updated for projects of typedrupal
anddrupal11
, causing problems duringupdate.php
.
Minor Updates:
- PHP 8.3.16 and 8.4.3.
- A dummy
ddev
command is available inside theweb
container to help users understand the context they're working in. - Laravel Installer quickstart.
- Drupal CMS quickstart, thanks to @rpkoller.
- CiviCRM Standalone quickstart, thanks to @gitressa.
- Repository update: The
master
branch of theddev/ddev
repository has been renamed tomain
. - Quickstarts in docs can now have automated tests, and the Drupal, Backdrop, WordPress, and TYPO3 examples already do, thanks to @rpkoller.
CI
status added to Amplitude instrumentation, so we can exclude/count usages when projects are run in CI. Thanks to @IndraGunawan.
What's Changed
- test: Add configuration verification tests for mariadb and mysql by @rfay in #6831
- docs: buildkite lima setup needs --mount-writable by @rfay in #6833
- docs: how to add unsupported PHP versions without
ddev config
, fixes #6835 by @stasadev in #6836 - docs: Remove run-ddev-on-old-mac from faq by @rfay in #6843
- fix: don't copy Dockerfiles to
*imageBuild
folder, add examples to assets, fixes #6757 by @stasadev in #6810 - fix: mount OpenSSH certificate for
auth ssh
, fixes #6832 by @stasadev in #6837 - build: reorganize
ddev-webserver
packages, addvim
alternative, fixes #6840 by @wazum in #6839 - feat: accept all args in
ddev composer create
, addcreate-project
alias, fixes #6766 by @stasadev in #6784 - feat: Add pager to database output by @tyler36 in #6842
- fix: add CI to instrumentation tags by @IndraGunawan in #6834
- fix: Use bitnami/mysql as base for mysql:8.x images, and support MySQL 8.4, fixes #6241, fixes #6511 by @rfay in #6589
- build: bump go-pretty and x/crypto, fixes #6844 by @rfay in #6849
- fix: remove nfs setup script from install_ddev.sh [skip ci] by @rfay in #6855
- docs: add Laravel Installer quickstart by @stasadev in #6850
- test: Use linkspector instead of markdown-link-check, fixes #6859 by @rfay in #6860
- docs: bump mkdocs/readthedocs dependencies for python 3.13 by @stasadev in #6862
- docs: Update mkdocs installation as docker doesn't work [skip ci] by @rfay in #6864
- docs: Add link to hostnames article on ddev.com by @rfay in #6863
- docs: Add a quickstart for drupal cms by @rpkoller in #6829
- docs: add CiviCRM Standalone to quickstart.md by @gitressa in #6846
- docs: Add database management examples including how to create empty database by @gitressa in #6848
- build: new
ddev mariadb
command, adjust~/.my.cnf
to always useroot
, hide some Docker build warnings, fixes #6462 by @stasadev in #6851 - test: Minor updates to linux-setup.sh by @rfay in #6869
- test: get more disk space on hosted runner, switch to ubuntu 24.04, fixes #6865 by @rfay in #6866
- build: dependabot complaint about net/html by @rfay in #6867
- test: Add bats test coverage for backdrop quickstart, for #6222 by @rfay in #6868
- docs: add setup step for macOS test runners (full disk access) [skip ci] by @rfay in #6871
- docs: Update maintained date to 2025 in README [skip ci] by @rfay in #6877
- fix: Make xhprof-prepend.php mount writable, for #3782 by @rfay in #6873
- docs: Add funding.json to apply for funding via floss.fund [skip ci] by @rfay in #6878
- docs: Stop checking stopwords 'just' and 'simply' [skip ci] by @rfay in #6881
- refactor: rename branch master to main, fixes #6476 by @stasadev in #6876
- fix: In acquia.yaml, specify default site source for ddev pull acquia. by @charginghawk in #6874
- feat: disable
ddev config
in parent folders of a project, but allow it in subfolders, fixes #6783, fixes #5493 by @stasadev in #6852 - fix: Fix Acquia push, Minor cleanup in provider integrations [skip buildkite] by @rfay in #6883
- fix: DB container: Remove MYSQL_PWD, use ARG in mysql/mariadb Dockerfile, remove OPTIMIZE TABLES, fixes #6886 by @rfay in #6887
- test: Quickstart tests for TYPO3 quickstart by @rpkoller in #6895
- test: Use new ddev/test-typo3 repo for automated testing of typo3 by @rfay in #6896
- docs: replace GOOS and GOARCH for a DDEV_ alternative, for #6752 by @stasadev in #6901
- docs: Improve windows buildkite setup workflow by @rfay in #6889
- docs: change the quickstart repo for typo3 to test-typo3 by @rpkoller in #6904
- feat: override
PAGER
withDDEV_PAGER
env variable, for #6842 by @stasadev in #6900 - refactor: remove outdated
move-issue
config , fixes #6899 by @tyler36 in #6906 - test: Improve WP quickstart and add wordpress bats tests by @rpkoller in #6897
- test: Add bats test coverage for Drupal Core and Drupal CMS quickstarts by @rpkoller in #6893
- fix: provide a dummy ddev command inside container, allow web commands there, fixes #6574 by @rfay in #6902
- build: bump docker-compose to 2.32.4 by @rfay in #6905
- test: add force flag to the remove cmd and a fixed dl link to the latest version of Drupal CMS by @rpkoller in #6907
- fix: remove noise from
docker-compose
on build and reformatddev start
output, for #6905 by @stasadev in #6909 - test: some tests should skip skippable testsites by @rfay in #6914
- fix: update Drupal 7 settings.ddev.php and settings.php to match Drupal 7.103 by @eporama in #6913
- fix: nginx-site-drupal11.conf wasn't being installed, fixes #6910 by @rfay in #6911
- build: bump images to v1.24.2 for release by @stasadev in #6915
New Contributors
- @charginghawk made their first contribution in #6874
- @eporama made their first contribution in #6913
Full Changelog: v1.24.1...v1.24.2
v1.24.1: More default locales, Quickstart improvements, bugfixes
Installation
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev/ddev
or justbrew upgrade ddev
. - Linux or WSL2: Use
apt install ddev
orapt upgrade ddev
see apt/yum installation - Traditional Windows: Use
choco upgrade -y ddev
, or download the ddev_windows_installer below. - Consider
ddev delete images
orddev delete images --all
after upgrading to free up disk space used by previous docker image versions. This does no harm. - Consider
ddev config --auto
to update your projects to current configuration.
Bug Fixes:
- Unsupported PHP (< 8.1) couldn't be installed in environments requiring additional SSL certificates, thanks @TerrorSquad !
- Reverted pinned SQLite 3.45.1 (leave it only for Drupal 11), which could block some package installations.
Changes:
- Added more default locales:
es_ES
,es_MX
,pt_PT
, andpt_BR
, thanks @jonhattan !
If you want more, usewebimage_extra_packages: ["locales-all"]
in.ddev/config.yaml
. - Show system databases for MySQL in
ddev dbeaver
. - Improved Silverstripe CMS quickstart, thanks @GuySartorelli !
- Fixed some quickstarts.
What's Changed
- fix: show system databases in DBeaver, add more Windows binaries, fixes #6730, fixes #6654 by @stasadev in #6805
- fix: improve
ddev debug test
by @stasadev in #6801 - build: extend default locales with es_ES, es_MX, pt_PT and pt_BR by @jonhattan in #6804
- fix: move pre.Dockerfile injection before installing PHP by @TerrorSquad in #6809
- test: Stop testing for NFS capability by @rfay in #6813
- docs: use shortlink for discord access by @rfay in #6819
- fix: remove python leftovers, for #6733 by @stasadev in #6815
- feat: add CLI completion for sake for Silverstripe CMS 6+ (plus some docs changes) by @GuySartorelli in #6814
- refactor: pre-download sqlite3 3.45.1 for Drupal 11, fixes #6807 by @stasadev in #6817
- fix: unset DDEV_NONINTERACTIVE in Gitpod by @stasadev in #6823
- fix: correct panic on ddev describe on gitpod by @rfay in #6821
- test: Remove a couple of tests from lima/colima/rancher execution by @rfay in #6826
- fix: show correct warning for Dockerfiles in
web-build
anddb-build
by @stasadev in #6824 - build: bump images to v1.24.1 for release by @stasadev in #6825
- docs: update magento2, pimcore, sulu quickstarts by @stasadev in #6822
New Contributors
- @jonhattan made their first contribution in #6804
- @TerrorSquad made their first contribution in #6809
Full Changelog: v1.24.0...v1.24.1
v1.24.0: PHP8.4.1, Stasadev Birthday Release!
Highlights:
This is a major version of DDEV, with some changes in defaults.
- PHP 8.4.1 is included, with all of the normal extensions, including Xdebug.
- The
drupal11
project type is added, and thedrupal
project type simply becomes an alias for it. ddevcd
command can be used to switch between projects. Seeddev debug cd
.- The
ddev-webserver
image is at least 25% smaller. Only a few locales are included by default, and only currently-supported versions of PHP are built in by default (but all the other versions still work). It was 480MB compressed, is now 361MB compressed. ddev auth ssh
can now be used with individual key files and can follow symlinks. This is really nice for people with many SSH keys that have passwords, because you can just add the key you want, instead of having it add all the keys in the~/.ssh
folder. For example,ddev auth ssh -f ~/.ssh/id_rsa
orddev auth ssh -f ~/.ssh/id_rsa -f ~/.ssh/second_key
.- Explicit support for the
symfony
project type, thanks to @IndraGunawan!
Change in defaults:
- PHP 8.3 becomes the default for new projects for most project types. As always, you can set the
php_version
to anything from 5.6 to 8.4. - Node.js 22 becomes the default
nodejs_version
unless configured otherwise in the project's.ddev/config.yaml
. As always, you can specify anynodejs_version
down to the patch level, for example,nodejs_version: 23
ornodejs_version: 21.7.3
.
Questions
- Do I have to change how I use the
drupal
project type? - If your project is actually a Drupal 11 project, there's no reason to make any changes. If your project is Drupal 8-10, you may want to change it to project type
drupal10
, for example although there's no meaningful difference in this release. - What if I want more locales than the ones provided by default?
- The default locales installed in the web container for v1.24.0 are
en_CA.UTF-8, en_US.UTF-8, en_GB.UTF-8, de_DE.UTF-8, de_AT.UTF-8, fr_CA.UTF-8, fr_FR.UTF-8, ja_JP.UTF-8, ru_RU.UTF-8
. If you need other locales, all locales will be installed if you addlocales-all
to yourwebimage_extra_packages
in.ddev/config.yaml
For example,webimage_extra_packages: ["locales-all"]
. (If you use other locales that you think should be added by default, we're happy to hear about them.) - What should I do after upgrading DDEV?
- DDEV will already ask you to do a
ddev poweroff
, but consider doing addev config --update
on your projects. This will auto-detect your project type and required PHP version. It may switch thedrupal
type todrupal10
ordrupal11
.
Installation
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev/ddev
or justbrew upgrade ddev
. - Linux or WSL2: Use
apt install ddev
orapt upgrade ddev
see apt/yum installation - Traditional Windows: Use
choco upgrade -y ddev
, or download the ddev_windows_installer below. - Consider
ddev delete images
orddev delete images --all
after upgrading to free up disk space used by previous docker image versions. This does no harm. - Consider
ddev config --auto
to update your projects to current configuration.
Reversions and removals:
drupal
project type is no longer a generic project type, but instead is an alias to latest stable Drupal (drupal11
right now)- In v1.23.5 we started preferring
vendor/bin/composer
to the specifiedcomposer_version
but users thought that was a mistake, so this was reverted - The
nginx-proxy
router has been removed. - The
ddev service enable
andddev service disable
commands were deprecated, as they have long been superseded by the use ofddev add-on get
andddev add-on remove
- Removed support for Python and Django4 projects.
Behavior Changes and Smaller Items:
- Added dynamic timeout handling for scripts on start based on setting of
default_container_timeout
. ddev describe
changes how exposed ports are displayed for better clarity (thanks @hanoii)- Only a limited set of locales is now installed in ddev-webserver by default. If you need more, use
webimage_extra_packages: [locales-all]
- Complex
ddev composer
command usage with json or args with spaces is fixed. (Bug was introduced in v1.23.5)
What's Changed
- build: make latest tag same hash, push latest for most by @rfay in #6622
- docs: separate Debian and Homebrew install instructions for previous DDEV versions, link to it from Building, Testing, and Contributing page by @gitressa in #6631
- build: disable repo tagging for devcontainers, for #6613 [skip ci] by @stasadev in #6625
- docs: add docker volumes to ddev uninstall docs by @IanEdington in #6632
- build: update Gitpod ports, update Gitpod README.md, for #6613 [skip ci] by @stasadev in #6624
- docs: Fix copy-paste error in add-on list docs by @GuySartorelli in #6637
- build: try new mutagen 0.18.0 by @rfay in #6648
- fix: make drupal detection only detect drupal8+ by @rfay in #6652
- build: bump actions/setup-python from 5.2.0 to 5.3.0 [skip ci] by @dependabot in #6658
- fix: help mutagen work with Drupal's read-only settings files, fixes #6491 by @rfay in #6529
- fix: improve
ddev describe
output for HTTP only, fixes #6661 by @stasadev in #6662 - refactor: add
drush
andcomposer
command aliases, fixes #6642 by @TravisCarden in #6649 - fix: validate
--all
flag with args inddev delete
, for #6209 by @stasadev in #6650 - build: bump docker-compose to 2.30.0 by @rfay in #6664
- fix: composer revert Cmd back to RawCmd and add PATH env, for #6604, fixes #6628 by @stasadev in #6627
- docs: update link to Backdrop documentation, fixes #6573 by @jenlampton in #6666
- docs: mention how to use xdebug with drush 13+ by @hanoii in #6626
- feat: ignore config..local.yml by @hanoii in #6634
- refactor: install limited locales by default, provide configuration for additional locales, for #5984 by @deviantintegral in #6570
- test: tests.yml needs to check out full depth [skip ci] by @rfay in #6673
- feat: add
ddev debug match-constraint
by @hanoii in #6645 - feat: add
ddev cd
command, fixes #6639 by @stasadev in #6644 - build: Improve ddev-php-base and ddev-webserver image build by @rfay in #6672
- test: run full tests that are sometimes short-circuited by @rfay in #6693
- test: Try to get lima and colima sane with LIMA_SSH_PORT_FORWARDER by @rfay in #6697
- docs: note that setting a nodejs version always downloads something by @deviantintegral in #6684
- docs: Add Contao recipe to Quickstarts by @fkaminski in #6674
- docs: use apache-fpm for Kirby CMS by @stasadev in #6698
- feat: add WordPress WP_ENVIRONMENT_TYPE support to wp-config-ddev.php by @graham73may in #6695
- docs: rearrange documentation on making PRs by @joachim-n in #6676
- build: Remove unsupported PHP versions by default, fixes #5984 by @rfay in #6691
- fix: expand
~/bin
in PATH and ensure consistency in subshells, for #6627 by @stasadev in #6689 - fix: match snapshot using full filename, fixes #6694 by @castanearie in #6704
- fix: escape dollar sign $ properly in .env, for #6406, fixes #6683 by @stasadev in #6687
- build: fix static errors from golangci-lint by @stasadev in #6710
- test: Fix TestGetAllURLs failure on tb-wsldd-16 by @rfay in #6708
- fix: use /usr/bin/env bash instead of direct /bin/bash in scripts by @rfay in #6706
- fix: not-included PHP version should work with webimage_extra_packages by @rfay in #6707
- fix: use TARGETARCH instead of TARGETPLATFORM in user Dockerfiles by @stasadev in #6711
- refactor: use
n install --cleanup
by @stasadev in #6712 - feat: allow files and symlinks in
ddev auth ssh
, fixes #5465, fixes #6677 by @stasadev in #6678 - fix: update usage syntax for
ddev exec
, fixes #6660 by @stasadev in #6715 - fix: Improve clarity in explanation by removing awkward 'normally', fixes #6723 by @wazum in #6724
- docs: Update schema.json to include cakephp project type by @arodu in #6713
- docs: fix 8.3 typo and adding PHP version strategy by @gitressa in #6721
- fix: make "Shopware Update" work with nginx, fixes #6656 by...
v1.23.5: Automatic ports, automatic timezones, Windows ARM64
Installation
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev/ddev
or justbrew upgrade ddev
. - Linux or WSL2: Use
apt install ddev
orapt upgrade ddev
see apt/yum installation - Traditional Windows: Use
choco upgrade -y ddev
, or download the ddev_windows_installer below. - Consider
ddev delete images
orddev delete images --all
after upgrading to free up disk space used by previous docker image versions. This does no harm. - Consider
ddev config --auto
to update your projects to current configuration.
Highlights:
- Windows ARM64 installer support.
- Your projects can be run with random ports when your main ports 80/443 are occupied by something else, thanks @agviu ! When DDEV tries to start up with default ports and finds them occupied by another application, it will open alternate ports instead of just failing.
- PostgreSQL 17 support.
- New
ddev dotenv
commands to set and get environment variables for add-ons customization. - Container timezone is read from
$TZ
variable or from/etc/localtime
if explicittimezone
is not specified in config. - Improved support for TYPO3 non-composer projects, thanks @sbuerk !
- PHP 8.4 is up to PHP 8.4.0 RC1
Behavior Changes:
- Refactor
ddev get
toddev add-on
and into sub-commands, thanks @GuySartorelli ! ddev get
is deprecated, useddev add-on
instead. (Note thatddev get
is still supported, with a deprecation notice, and will be supported for a long time.)- New
--project
flag forddev add-on
commands, thanks @GuySartorelli ! - Build warnings for things like updating Composer or installing the appropriate database client to
ddev-webserver
are now displayed duringddev start
(previously they were quietly skipped when internet connections timed out, etc.). - Allow overrides for Docker networks in
.ddev/docker-compose.*.yaml
files, which was previously not possible. - SVG support for ImageMagick, thanks @saitho !
ddev debug refresh
is renamed toddev debug rebuild
, with more features, seeddev help debug rebuild
. The old command was changed to an alias.bash-completion
package is added toddev-webserver
.vim
is replaced withvim-tiny
inddev-webserver
, thanks @deviantintegral !- If you composer-install
composer/composer
, that version of composer will now be used byddev composer
, overriding any configuredcomposer_version
. - Anything in your composer-installed
vendor/bin
will now be preferred in your$PATH
of things in/usr/local/bin
inside the container.
Bug Fixes:
- Traefik with Let's Encrypt works correctly as documented.
- A few people have had problems with
ddev pull
and Mutagen, which are finally resolved. ddev
commands no longer try to write/update file stubs when executed in the random directories, and don't rewrite files when in project directory.- DNS lookups now only check IPv4, but previously checked both IPv4 and IPv6, but we didn't need IPv6.
Minor Notes:
ddev snapshot --list
output is improved, thanks @GuySartorelli !- The waiting message on
ddev start
is more accurate and is not repeated forweb
anddb
containers.
What's Changed
- docs: Remove unnecessary and failing links to Travis CI by @rfay in #6466
- test: minor updates to avoid use of literals 80 and 443 by @rfay in #6470
- docs: add instruction how to brew upgrade ddev head by @rpkoller in #6467
- ci: add new check from golangci-lint by @stasadev in #6485
- fix: drupal class_loader_auto_detect no longer needed by @rfay in #6478
- docs: mention using docker builder for offline by @rfay in #6479
- feat: automatic timezone detection from
$TZ
env or/etc/localtime
symlink, fixes #6458 by @stasadev in #6468 - feat: output snapshot list as a table, fixes #6116 by @GuySartorelli in #6490
- fix: Lets Encrypt traefik formatting was broken, fixes #6486 by @rfay in #6494
- docs: ddev debug test should suggest current stable [skip ci] by @rfay in #6471
- feat: adds support to ephemeral ports for 80/443, fixes #5326 by @agviu in #6414
- docs: clearer statement about
ddev start
before offline, for #6499 by @rfay in #6502 - test: Improve several tests, make sure containers get removed by @rfay in #6504
- fix: Make sure that we actually wait for bound ports to be released by @rfay in #6507
- test: Rancher Desktop and other problems when non-default ports used by @rfay in #6506
- fix: flush mutagen after deletion of .downloads directory by @rfay in #6496
- refactor: Refactor
ddev get
toddev add-on
and into sub-commands, fixes #6146 by @GuySartorelli in #6482 - docs: fix link for advanced add-ons, for #6482 by @stasadev in #6514
- test: fix TestExtraPortExpose with correct URL by @rfay in #6509
- build: fix FromAsCasing warning from Dockerfile, for #6462 [skip ci] by @stasadev in #6520
- build: bump actions/setup-python from 5.1.1 to 5.2.0 by @dependabot in #6521
- test: leave docker desktop context as desktop-linux [skip ci] by @rfay in #6522
- feat: add
--project
flag toddev add-on
commands, fixes #6513 by @GuySartorelli in #6517 - feat: add SVG support for ImageMagick by @saitho in #6519
- test: apt key expiration management, fixes #5829 [skip buildkite] by @rfay in #6516
- fix: don't touch
.ddev
dir in everyddev
command, avoid overwriting.ddev/.gitignore
if unchanged, fixes ddev/ddev-intellij-plugin#361 by @stasadev in #6510 - test: Fix TestLagoonPush by upgrading lagoon CLI, replaces #6524 by @rfay in #6526
- docs: maintainer info about GitHub notifications by @stasadev in #6527
- test: Use 1password for test secrets [skip buildkite] by @rfay in #6536
- fix: Remove obsolete code that fixed up absolute mountpoints by @rfay in #6537
- test: Make forked PRs skip loading secrets by @rfay in #6540
- build: bump docker-compose to 2.29.3 by @rfay in #6538
- build: Revert "build: bump docker-compose to 2.29.3 (#6538)" by @rfay in #6545
- docs: fix link to ngrok agent config by @rfay in #6547
- build: bump docker-compose to 2.29.5 by @stasadev in #6548
- build: Use 1password secrets for most push secrets instead of github secrets by @rfay in #6541
- fix: allow overrides for Docker networks, fixes #5706, fixes #6376 by @stasadev in #6501
- docs: add Magento tools to docs by @cmuench in #6551
- fix: ddev debug test - show customizations in .ddev/nginx if they exist [skip ci] by @rfay in #6552
- fix: remove SVG policy to allow processing by @saitho in #6550
- feat: streamline TYPO3 non-composer mode configuration support by @sbuerk in #6525
- test: Remove brew setup for linux from buildkite testbot_maintenance.sh [skip ci] by @rfay in #6558
- docs: Typo fix, incorrect code section usage by @mxr576 in #6560
- refactor: Use DIR instead of dirname(FILE) by @mxr576 in #6555
- test: buildkite testbot_maintenance.sh apt upgrade hung on linux, remove it by @rfay in #6561
- build: change to new gitpod image with current ddev, make codespaces work [skip ci] by @rfay in #6562
- feat: Don't force Drush's Xdebug environment variable to 1 by @weitzman in #6565
- fix: remove unused file for router, for #5266 by @stasadev in #6581
- build: add bash-completion to standard packages by @rfay in #6575
- build: fix Docker's InvalidDefaultArgInFrom warning by @stasadev in #6582
- feat: support postgres:17, fixes #6566 by @stasadev in #6567
- feat: expand
.ddev/.env.*
files onddev start
, addddev dotenv
, add variable expansion toddev add-on get
, fixes #4430 by @stasadev in #6406 - feat: show warnings from stderr, auto rebuild for web image w/o cache on warnings, fixes #6451, for #5073 by @stasadev in #6546
- feat: rename refresh to rebuild in
ddev debug refresh
, allow to build different services, add cache f...
v1.23.4
Installation
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev/ddev
or justbrew upgrade ddev
. - Traditional Windows: Use
choco upgrade -y ddev
, or download the ddev_windows_installer below. - Linux or WSL2: Use
apt-get install ddev
orapt-get upgrade
see apt/yum installation or use the install_ddev.sh:curl -fsSL https://raw.githubusercontent.com/ddev/ddev/master/scripts/install_ddev.sh | bash
- And anywhere, you can just download the tarball or zipball, untar or unzip it, and place the executable in your
$PATH
where it belongs. - Consider
ddev delete images
orddev delete images --all
after upgrading to free up disk space used by previous docker image versions. This does no harm. - Consider
ddev config --update
to update your projects to current configuration.
Highlights:
- PHP 8.4.0 Alpha 4 support with most extensions. (These extensions will be coming in later releases as they are supported upstream: apcu, opcache, redis, uploadprogress, xdebug, xhprof)
- Traefik v3 support.
Let's Encrypt works with Traefik, see contributor training and documentation.(A regression broke this, it will work in next DDEV release)- Autodetect Node.js version from a file, such as
.nvmrc
orpackage.json
withddev config --nodejs-version=auto
, see documentation. ddev phpmyadmin
command provided everywhere, will install the ddev-phpmyadmin add-on if wanted, thanks @nlighteneddesign- Custom DDEV commands can have aliases, and check out the new
ddev aliases
command.
Changes:
ddev config --omit-containers=""
and other flags work (clear the config) as expected, thanks @jonesrussell- PostgreSQL client versions in
web
container match with versions indb
container. - Replace underscores with hyphens in project-name, thanks @mbomb007
TARGETARCH
,TARGETOS
,TARGETPLATFORM
environment variables added to Docker builds in.ddev/web-build/Dockerfile.*
- DDEV add-ons can now use
ddev_version_constraint
in install.yaml to specify a constraint for the add-on. - Improved
ddev import-db
performance with MySQL 8.0, thanks @hkirsman
What's Changed
- build: Bump gitpod image for DDEV v1.23.3 [skip ci] by @rfay in #6371
- fix: Update to Traefik v3, make Let's Encrypt work with Traefik, fixes #6183, for #5940, fixes #4632 by @rfay in #6317
- build: Use ENV = in Dockerfile by @rfay in #6370
- build: percona xtrabackup changed install technique by @rfay in #6374
- test: stop testing deprecated nginx-proxy [skip ci] by @rfay in #6378
- fix: improve installation method for mariadb-client by @stasadev in #6377
- fix: Don't warn about Docker Desktop on WSL2, fixes #6339 [skip ci] by @rfay in #6384
- feat: Allow traefik merged static configuration override with
static_config.*.yaml
by @rfay in #6379 - docs: stop checking aur.archlinux.org link [skip ci] by @stasadev in #6387
- fix: Install matching postgresql client versions in ddev-webserver, fixes #6139 by @rfay in #6385
- fix: omit ddev-router for Gitpod (for DDEV PRs) [skip ci] by @stasadev in #6390
- fix: update regex for traefik v3 usage by @rfay in #6388
- fix: make
ddev launch
fully compatible with Gitpod and Codespaces, fixes #6389 by @stasadev in #6391 - fix: make composer subcommands ignore invalid flags on any errors, fixes #6380 by @stasadev in #6382
- feat: add ddev/ddev-utilities to the pulled images by @stasadev in #6395
- ci: update Codespaces link, fixes #6399 [skip ci] by @stasadev in #6400
- feat: add global phpmyadmin install command, fixes #6342 by @nlighteneddesign in #6343
- build(deps): bump actions/setup-python from 5.1.0 to 5.1.1 by @dependabot in #6402
- test: stop testing use_docker_compose_from_path, update related docs by @rfay in #6393
- fix: Use port 80 to get better headers for Codespaces, fixes #6102 by @rfay in #6398
- docs: correct config used to add extra-packages by @matlads in #6403
- docs: Update 'ddev get' example by @mfickers in #6404
- feat: Provide TARGETARCH, TARGETOS, TARGETPLATFORM to docker builds by @rfay in #6233
- test: make sure that volumes in buildkite are deleted at test start by @rfay in #6407
- feat: Replace underscores with hyphens in project-name, fixes #6206 by @mbomb007 in #6210
- docs: remove CircleCI badge as we aren't running their tests by @rfay in #6409
- build: try out docker-compose v2.29.0 by @rfay in #6408
- fix: clear omit_containers, additional_fqdns, additional_hostnames config with empty flag, fixes #6140 by @jonesrussell in #6202
- fix: Use turn off innodb_doublewrite to improve import-db performance, fixes #6244 by @rfay in #6411
- fix: default_container_timeout should work right, fixes #5133 again by @rfay in #6415
- test: Skip TestSSHAuth on Colima by @rfay in #6423
- fix: fail gently if sqlite3 can't be downloaded for drupal11, fixes #6425, for #6419 by @rfay in #6426
- docs: improve WSL2 buildkite install instructions by @rfay in #6396
- docs: Add tip how to setup additional hostnames debug by @maks-oleksyuk in #6436
- fix: create mutagen-agents tarball if it doesn't exist, fixes #6421 by @davearch in #6427
- docs: improve placement of .env for environment variables by @rfay in #6439
- feat: support PHP8.4, fixes #6205 by @rfay in #6446
- docs: show actual running context in
install.yaml
for add-ons by @stasadev in #6447 - feat: add
ddev_version_constraint
for add-ons, remove#ddev-nodisplay
, fixes #5969 by @stasadev in #6433 - build: bump github.com/docker/docker from 26.1.1+incompatible to 27.1.1+incompatible by @dependabot in #6450
- feat: add support for
n install auto
, addN_PREFIX
cache, replace node repo withn
, fixes #6418 by @stasadev in #6420 - docs: promote drupal 11 now that it's released, for #6452 by @rfay in #6453
- test: Update tests for Drupal11 to latest tarballs, fixes #6452 by @rfay in #6454
- docs: update magento1 and backdrop quickstarts, fixes #6448 by @stasadev in #6449
- docs: store magento2 credentials in the global config, for #5932, for #6380 by @stasadev in #6442
- test: mysql-client 9.0 in homebrew is broken, use 8.0 by @rfay in #6459
- feat: add aliases for custom commands,
art
alias forartisan
,ddev aliases
command, fixes #6443 by @stasadev in #6434 - feat: add
log-stderr.sh
command, for #6451, for #6420 by @stasadev in #6455 - fix: show containers we're waiting for and better error message on timeout/unhealthy by @rfay in #6422
- build: bump images to v1.23.4 and docker-compose to v2.29.1 by @stasadev in #6460
- docs: add readable tab anchors by @stasadev in #6464
New Contributors
- @nlighteneddesign made their first contribution in #6343
- @matlads made their first contribution in #6403
- @mfickers made their first contribution in #6404
- @jonesrussell made their first contribution in #6202
- @maks-oleksyuk made their first contribution in #6436
- @davearch made their first contribution in #6427
Full Changelog: v1.23.3...v1.23.4
v1.23.3: Fix results upstream Debian changes: [Errno 13] Permission denied: '/var/log/supervisord.log'
Installation
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev/ddev
or justbrew upgrade ddev
. - Traditional Windows: Use
choco upgrade -y ddev
, or download the ddev_windows_installer below. - Linux or WSL2: Use
apt-get install ddev
orapt-get upgrade
see apt/yum installation or use the install_ddev.sh:curl -fsSL https://raw.githubusercontent.com/ddev/ddev/master/scripts/install_ddev.sh | bash
- And anywhere, you can just download the tarball or zipball, untar or unzip it, and place the executable in your
$PATH
where it belongs. - Consider
ddev delete images
orddev delete images --all
after upgrading to free up disk space used by previous docker image versions. This does no harm. - Consider
ddev config --update
to update your projects to current configuration.
Changes:
- Fixes problems some projects with extra packages had after Debian 12.6 was released (See #6363 and its links) "PermissionError: [Errno 13] Permission denied: '/var/log/supervisord.log'"
- New
--skip-hooks
global flag, thanks to @hanoii - Support for MariaDB 11.4 LTS
- Drupal 10 + 11 settings improvements (state cache)
- Improvements in
ddev composer create
thanks to @stasadev - Windows ARM64 support, thanks @dennisameling
mysqladmin
added back into web container
What's Changed
- build: use $XDG_CONFIG_HOME in Gitpod for v1.23.2 release, for #6228 [skip ci] by @stasadev in #6315
- feat: add
--skip-hooks
global flag to avoid running hooks, fixes #2129, fixes #6185 by @hanoii in #6195 - docs: Remove stray info about packages from hooks docs by @rfay in #6322
- docs: Add FAQ about checking in .ddev by @rfay in #6320
- docs: suggestion ddev --version, move mkcert -install to later by @rfay in #6319
- docs: update the link to upgrade DDEV in faq.md by @kiatng in #6325
- fix: generated gitignore is not working correctly by @rfay in #6324
- refactor: error handling for PR artifact comment [skip ci] by @stasadev in #6327
- docs: Warn about Codespaces by @rfay in #6321
- docs: Improve ddev debug test by offering suggestions early [skip ci] by @rfay in #6323
- feat: add support for MariaDB 11.4 LTS, fixes #6061 by @hussainweb in #6243
- docs: pacify textlint on mysql/https by @rfay in #6336
- docs: revisit WSL Docker Desktop setup instructions by @rfay in #6330
- fix: autodownload yarn from corepack, and set cache-folder, fixes #6332 by @stasadev in #6333
- docs: windows-wsl2-dd needs apt install for ngrok by @rfay in #6341
- build: check docker-compose 2.28.1 by @rfay in #6340
- fix: use real path to global config location, fixes #6328 by @stasadev in #6329
- test: stop running nightly tests [skip ci] by @rfay in #6347
- test: Attempt to debug TestProcessHooks intermittent failures, fixes #6313 by @rfay in #6314
- fix: Drupal 10 and Drupal 11 settings have migrated, set state_cache by @rfay in #6346
- build: use IPv4 inside a container, mariadb-client 11.4 for the webserver by @stasadev in #6334
- fix: pass all valid options to nested commands in
ddev composer create
, fixes #6300, fixes #6246, for #5058 by @stasadev in #6303 - build: enable building windows arm64 binaries, fixes #6344 by @dennisameling in #6348
- docs: Fix textlint usage, make textlint work on PRs by @rfay in #6354
- docs: Joomla Quickstart by @rpkoller in #6255
- docs: Initial draft for adding a quickstart for Sulu, fixes #6230 by @rpkoller in #6256
- fix: add mysqladmin to web container for mysql, fixes #6355 by @rfay in #6360
- fix: add chmod for /var/log, for #5898 by @stasadev in #6363
- fix: install extra content in Dockerfile earlier, for #4394 by @stasadev in #6365
- docs: remove bad link to deb.sury.org, confusing extra verbiage by @rfay in #6367
- fix: Check to see if IP address is local to determine whether to add to hosts by @rfay in #6359
- fix: do not explicitly set the backdrop_drupal_compatibility and update_free_access settings, fixes #6090 by @klonos in #6091
- build: bump images to v1.23.3 by @rfay in #6369
New Contributors
- @kiatng made their first contribution in #6325
- @hussainweb made their first contribution in #6243
Full Changelog: v1.23.2...v1.23.3