Installation
See the installation instructions for details, but it's easy:
- macOS:
brew install ddev/ddev-edge/ddev
or justbrew upgrade ddev/ddev-edge/ddev
(You may need abrew update
for homebrew to find the new release.) - Linux or WSL2: Download the appropriate deb file from this release and install it with
dpkg -i <file>.deb
- Traditional Windows: Use
choco upgrade -y --pre ddev
to get this one, or download the ddev_windows_installer below. - 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
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:
ddev-webserver
is now upgraded to Debian 12 Bookworm, which means that many newer Debian packages are available.- Corepack and yarn v4 support.
- Drupal 11 support, including
corepack
support withcorepack_enable: true
and automatic detection of the new type. - New
drupal
project type to cover Drupal 8+. - New
cakephp
project type, thanks @ajibarra ! - Laravel 11 support for
mariadb
database connection. ddev pint
support for Laravel, thanks @penyaskito !- Autocompletion for custom/shell commands, thanks @GuySartorelli !
- PHP default version is now 8.2.
- Node.js default version is now 20, thanks @peter-neumann-dev !
- Default database is now
mariadb:10.11
. - Traefik Docker image is now 2.11, thanks @nilsandresen !
ddev composer create
is much more compatible withcomposer create-project
, thanks @gilbertsoft !ddev launch
can open full URLsddev launch https://ddev.com
and custom website portsddev launch :3000
.ddev config --update
is a new flag. It updates all known.ddev/config.yaml
settings based on detected code. Works great for most CMSs and frameworks. It's likeddev config --auto
, butddev config --auto
won't change existing settings.- And many, many bug fixes, docs, etc.
Breaking Changes:
- Check your
.ddev/config.yaml
, namelywebimage_extra_packages
anddbimage_extra_packages
for compatibility with Debian 12 Bookworm. - Check your custom Dockerfiles, e.g. if you made some customizations to
/etc/apt/sources.list
, it has been moved to/etc/apt/sources.list.d/debian.sources
with a different structure. - Python2 support has been removed from upstream, we recommend using an older DDEV if you really need it, see #5928.
- If you have used
localhost
TLD for your sites, thecurl
connection between them is broken, see #6040.
Behavior Changes:
- Your DDEV project list is located at
~/.ddev/project_list.yaml
, thanks @GuySartorelli ! CRAFT_WEB_URL
has been removed from Craft CMS auto-config as it's not necessary.ddev config
no longer requires the--create-docroot
flag, as it will create docroot automatically.- Update the deb.sury.org (upstream) package repository key, which will expire on 17 Feb 2024 (a little over a week).
- Improved performance for
ddev xhprof
as theXHPROF_FLAGS_CPU
flag has been removed by default. - Platform.sh legacy CLI replaced with the latest one.
- Our main recommendation for macOS Docker provider changed to OrbStack.
- Missing projects automatically removed from the
ddev list
after notification. - Website primary URL is correctly set to HTTPS when using custom certificates, thanks @tbmatuka !
Bug Fixes:
- Affected version v1.22.7:
ddev config
could accidentally override your project type to a detected one. - Affected versions from v1.22.4 to v1.22.7: A race condition could break structure for
docker-compose config
, thanks @deviantintegral !
Minor Notes:
- Zsh completion instructions are improved, thanks @rpkoller !
- Kirby CMS quickstart, thanks @texnixe !
- Grav CMS quickstart, thanks @rpkoller !
- Pimcore CMS quickstart.
- Symfony Framework quickstart.
- TablePlus support from
Setapp
directory, thanks @peterkraume ! - DBeaver support in WSL2, thanks @Brupes !
- Magento 2.4.5+ is correctly detected, thanks @Morgy93 !
- DDEV documentation uses bundled external js/css libraries for more privacy, thanks @gitressa !
What's Changed
- docs: Add using current stable version to troubleshooting section by @rfay in #5808
- docs: Revert "docs: temporarily revert docs on not needing --create-docroot" by @rfay in #5768
- test: golangci-lint got pickier, satisfy it by @rfay in #5812
- feat: support TablePlus application located in setapp directory (#5815) by @peterkraume in #5816
- fix: follow the zsh naming conventions for completion scripts by @rpkoller in #5814
- docs: update buildkite installation to include icinga by @rfay in #5802
- docs: show initial and project-checkout Backdrop installation by @tyler36 in #5781
- feat: enable autocompletion for custom commands, fixes #5783 by @GuySartorelli in #5785
- build: bump ddev-php-base and ddev-webserver to base on Debian 12 bookworm, replaces #5278 by @rfay in #5579
- docs: update developer release instructions by @stasadev in #5789
- build: improve goreleaser, add testing capabilities, "head" release, docs, fixes #5821, fixes #5811 by @rfay in #5824
- build: revert implementation of 'head' release, fixes #5830 by @rfay in #5831
- build: bump golangci/golangci-lint-action from 3 to 4 by @dependabot in #5827
- build: bump fuxingloh/multi-labeler from 2 to 3 by @dependabot in #5828
- build: filter binaries for deb and rpm on release, fixes #5734 by @stasadev in #5759
- docs: find all DDEV binaries using
which -a ddev
by @stasadev in #5834 - docs: update the section about zsh completions by @rpkoller in #5825
- build: bump traefik to 2.11 by @nilsandresen in #5833
- refactor: update to Node.js v20 LTS as current default by @peter-neumann-dev in #5453
- docs: improve buildkite setup for WSL2 by @rfay in #5846
- docs: use PHP 8.3 for the TYPO3 Quickstart by @jonaseberle in #5842
- feat: change php default version to 8.2, fixes #5767 by @rfay in #5835
- docs: add maintainer docs about remote-config testing by @rfay in #5850
- test: silence docker scout nonsense in buildkite [skip ci] by @rfay in #5851
- docs: don't link check a couple of unstable external urls [skip ci] by @rfay in #5852
- fix: make
ddev --version
work even if not in project and ~/.ddev/commands not yet created by @rfay in #5854 - feat: replace fsouza/go-dockerclient with docker/docker/client, fixes #3460 by @stasadev in #5787
- docs: stop checking all stack overflow links by @rfay in #5858
- docs: mostly warn people off of using xdebug_ide_location by @rfay in #5857
- docs: add auto light / dark mode by @stasadev in #5853
- build: bump fuxingloh/multi-labeler from 3 to 4 by @dependabot in #5867
- docs: buildkite wsl2 setup learning by @rfay in #5864
- docs: stop checking link to community.chocolatey.org by @rfay in #5869
- test: stop testing TestAutocompletionForCustomCmds on Windows, fixes #5870 by @rfay in #5872
- fix: do not create project network programmatically on
ddev start
, fixes #5810 by @stasadev in #5848 - test: Minor improvement to TestComposerVersion by @rfay in #5879
- test: Fix TestPantheonPush, broken due to php8.2 default by @rfay in #5874
- fix: don't panic in app.Describe() if container not found by @rfay in #5873
- fix: ddev start should not continue if web/db containers aren't healthy by @rfay in #5871
- docs: fix 404 link in phpstorm docs by @rfay in #5881
- docs: Link to 'Upgrading DDEV' in 'Usage' section by @amanire in #5877
- fix: error message 'Error converting to int' on
ddev import-db
by @rfay in #5856 - fix: cache Docker client instead of creating a new one all the time, fixes #5861 by @stasadev in #5878
- test: exclude TestPHPOverrides on Colima and TestProcessHooks on Windows by @rfay in #5883
- fix: don't start 'mutagen daemon run' during ddev stop/delete by @rfay in #5868
- feat: change database default to mariadb:10.11, fixes #5797 by @rfay in #5836
- test: Run colima tests native instead of github, fixes #5598 by @rfay in #5886
- test: make sure buildkite leaves docker in sane setup by @rfay in #5897
- docs: point to HEAD version of TestSites array by @diegoe in #5895
- docs: show a warning banner for the latest docs (readthedocs+mkdocs) by @stasadev in #5855
- feat: change upgrade pester interval to 4 hours, for #5889 by @rfay in #5890
- feat: make
ddev composer create
fully compatible withcomposer create-project
by @gilbertsoft in #5058 - test: more buildkite work, windows not working [skip ci] by @rfay in #5902
- fix: set permissions on /run/php so php-fpm can run by @stasadev in #5900
- docs: update Debugging & Profiling for recent updates to phpstorm ui by @vanWittlaer in #5903
- docs: improve database type and version visibility by @tyler36 in #5884
- fix: make a copy of the bytes array before passing to the channel, fixes #5470 by @deviantintegral in #5893
- docs: add instructions for Grav CMS to quickstart.md by @rpkoller in #5796
- docs: add kirby to cms quickstart instructions by @texnixe in #5791
- docs: fix systemd unit example for casual hosting by @vanWittlaer in #5876
- refactor: point go code to the stable docs by @stasadev in #5905
- fix: ddev config should not change unspecified options, fixes #5882 by @stasadev in #5887
- docs: mention more Docker providers for macOS by @stasadev in #5914
- docs: Add Pimcore quickstart, fixes #5843 by @rfay in #5909
- docs: Use backticks when referencing custom command annotations, fixes #5820 by @GuySartorelli in #5927
- docs: update faq with new questions, fix menus by @rfay in #5924
- docs: fix extraneous '#' in FAQ by @rfay in #5930
- fix: magento2 requires mariadb 10.6, for #5919 by @rfay in #5922
- docs: remove 'just' by @rfay in #5933
- docs: standardize capitalization of Docker-ce by @tyler36 in #5934
- docs: use stable URL for 404 [skip ci] by @stasadev in #5931
- fix: add nginx support for webp images in hidden directory, sync nginx conf by @stephanie-ehrling in #5580
- feat: invoke dbeaver inside wsl2, fixes #5375 by @Brupes in #5916
- fix: don't call app.WriteConfig twice by @rfay in #5923
- fix: isMagento2App() should detect version 2.4.5+, update test URLs by @Morgy93 in #5804
- fix: make the primary URL https if the custom cert exists by @tbmatuka in #5684
- build: use correct key pattern for blackfire, fixes #5929 by @rfay in #5944
- docs: some fixes for the cms quickstarts, fixes #5919 by @rpkoller in #5935
- docs: Improve magento2 quickstart and remember composer auth by @rfay in #5932
- fix: Adds text/javascript MIME type to gzip_types and mod_deflate.conf, fixes #5937 by @mmikkel in #5938
- fix: Don't kill supervisord when processes exit, for #5906, fixes #5358 by @stasadev in #5936
- feat: Add native lima Docker provider support by @rfay in #5892
- docs: Improve suggestions about WSL2 docker options by @rfay in #5952
- docs: change recommendation for colima to vz by @rfay in #5948
- fix: just delete compose orphans, fixes #5755 by @rfay in #5950
- docs: explain how to delete snapshots by @rfay in #5961
- fix: ddev debug test should check to make sure project is in homedir, for #3679 by @rfay in #5956
- docs: be more explicit about where projects go in home dir by @rfay in #5955
- fix: remove mutually exclusive COMPOSE_IGNORE_ORPHANS variable, for #5950 by @stasadev in #5957
- fix: remove debug code, fixes #5942 by @rfay in #5959
- docs: Use mysql:8.0 instead of mariadb for ExpressionEngine quickstart by @ssssct in #5965
- docs: update ddev-drupal9-solr to ddev-drupal-solr by @rfay in #5972
- feat: Laravel 11 support, fixes #5962 by @stasadev in #5963
- fix: Rewrite ComposeCmd() with just dots goroutine, fixes #5913 by @rfay in #5964
- build: bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by @dependabot in #5970
- fix: Build and run with race detection by @deviantintegral in #5901
- test: fix broken if for race-detection and add doc on BUILDARGS by @rfay in #5983
- docs: add disk space and memory check to troubleshooting by @rfay in #5980
- docs: add tip about using 0.0.0.0 not localhost by @rfay in #5981
- test: disable TestPHPConfig on Lima/Colima by @rfay in #5982
- build: bump docker-compose to v2.25.0 by @rfay in #5939
- test: Check goroutine count on several tests at completion, fixes #5920 by @rfay in #5975
- refactor: standardize suggested commands for container log, fixes #5899 by @stasadev in #5978
- feat: accept full URLs in
ddev launch
, fixes #5685 by @stasadev in #5986 - fix: make
ddev launch
test work on Windows, for #5986 by @stasadev in #5999 - build: show gitpod testing link in PR comment by @rfay in #5989
- fix: Revert setting 192.168.5.2 for host.docker.internal on colima, fixes #5537 by @rfay in #5994
- build: turn off verbose output of make build [skip ci] by @rfay in #5992
- build: use new go-based platform.sh CLI, fixes #4668 by @rfay in #5995
- docs: Fix "webimage_extra_packages" code example by @tyler36 in #6005
- test: minor updates to buildkite testbot_maintenance.sh [skip ci] by @rfay in #6007
- feat: add PR build link to test on Codespaces [skip ci] by @rfay in #6010
- fix: use natural sort for project+database types, fixes #3561 by @rfay in #6001
- docs: stop recommending colima by @rfay in #6008
- build: bump docker library to v26.0.0 by @stasadev in #6000
- fix: hide obsolete ddev config --http-port by @rfay in #6009
- build: use the official script to install Upsun by @stasadev in #6003
- feat: remove segment.io support, fixes #5365 by @rfay in #5997
- fix: add restart for database commands after ddev start, fixes #5949 by @stasadev in #5976
- fix: improve
ddev debug test
, fixes #3679, fixes #5345, fixes #5376 by @rfay in #6002 - feat: add cakephp project type, fixes #5713 by @ajibarra in #5888
- build: bump docker-compose to v2.26.0 by @stasadev in #6015
- feat: provide corepack_enable config, fixes #5987, replaces #5988 by @rfay in #6012
- fix: make TestCmdDebugTest work on trad Windows by @rfay in #6017
- docs: update dev docs to run mkdocs locally [skip buildkite] by @rfay in #6016
- fix: alphabetize global config storage and output, fixes #5046 by @rfay in #5998
- feat: Add a
drupal
project type that handles Drupal8-11, fixes #4957 by @rfay in #5991 - docs: add privacy plugins to not use external fonts, fixes #4982 by @gitressa in #6027
- docs: update CakePHP docs to include a link and instructions for 3.x by @ajibarra in #6021
- fix: rsync example should create db.sql.gz [skip ci] by @rfay in #6022
- fix: revert removal of Colima host.docker.internal setting by @rfay in #6031
- test: make circleci setup noninteractive so doesn't hang [skip buildkite] by @rfay in #6034
- fix: clean up missing project if it's gone, fixes #5322 by @rfay in #6029
- fix: handle wildcard hostnames when name resolution not available, fixes #4881 by @rfay in #6025
- test: try to fix sshfs-based failures on TestGetProjectsMissingApp by @rfay in #6041
- feat: more readable formatting of lists of files, fixes #5985 by @penyaskito in #6030
- build: bump actions/setup-python from 5.0.0 to 5.1.0 by @dependabot in #6038
- fix: ddev debug configyaml shouldn't double-report upload_dirs, fixes #6036 by @rfay in #6037
- feat: Keep hub.docker.com repositories updated, fixes #5847 [skip ci] by @rfay in #6032
- refactor: Use project_list.yaml as source of truth, fixes #5918 by @GuySartorelli in #5926
- fix: shutdown supervisor in healthcheck.sh on fatal error, fixes #5993 by @stasadev in #6033
- fix: Remove Craft CMS PHP version override by @AugustMiller in #5805
- docs: add a sticky warning about the latest version by @stasadev in #6048
- fix: make sure CGO_ENABLED is normally off, fixes #6046 by @rfay in #6050
- feat: Improve container errors messages format, fixes #6042 by @penyaskito in #6043
- fix: Fix spelling for DEBUG_KIT_SAFE_TLD env variable by @ajibarra in #6054
- feat: copy commands into volume, not into project, for #4416 by @GuySartorelli in #5753
- docs: fix the scroll margin for links with anchors, for #6048 by @stasadev in #6059
- docs: several maintenance items by @rfay in #6057
- docs: update FAQs on Chrome, large webserver, php-patch-build by @rfay in #6056
- docs: clarify additional compose service configuration by @manuelmeister in #6019
- docs: add instruction how to update add-ons by @mscieszka in #5990
- fix: Update defaults for config overrides by @rfay in #6058
- build: bump all images to v1.23.0 by @rfay in #6062
- feat: accept port in
ddev launch
, for #5525 by @stasadev in #6024 - feat: add pint command to laravel projects by @penyaskito in #6020
- fix: provide example .ddev/php folder and README, fixes #6052 by @rfay in #6063
- docs: Improve ddev_version_constraint by @rfay in #6064
- feat: add Docker API version to
ddev version
by @stasadev in #6065 - build: bump docker-compose to v2.26.1 by @stasadev in #6066
- test: Remove docker login from buildkite tests by @rfay in #6074
- test: Fix TestPHPOverrides on Windows by @rfay in #6075
- build: fix deprecated goreleaser configs, fixes #6049 [skip ci] by @rfay in #6076
- docs: limactl create needs --name=default, fixes #6068 by @rfay in #6073
- docs: add more examples how to use
ddev nvm
, fixes #6013 by @stasadev in #6067 - docs: Add drupal9/11 tabs and symfony to quickstart by @rfay in #6060
- feat: Add symfony cli by @rfay in #6080
- docs: Replaced --target-db by --database by @pcambra in #6084
- build: pin blackfire to working package, fixes #6078 by @rfay in #6079
- feat: add ddev debug capabilities with corepack, version-history.md, fixes #6051 by @rfay in #6077
- feat: Add ddev config --update flag, fixes #6035 by @penyaskito in #6055
New Contributors
- @nilsandresen made their first contribution in #5833
- @peter-neumann-dev made their first contribution in #5453
- @amanire made their first contribution in #5877
- @vanWittlaer made their first contribution in #5903
- @texnixe made their first contribution in #5791
- @stephanie-ehrling made their first contribution in #5580
- @Brupes made their first contribution in #5916
- @tbmatuka made their first contribution in #5684
- @mmikkel made their first contribution in #5938
- @ssssct made their first contribution in #5965
- @ajibarra made their first contribution in #5888
- @manuelmeister made their first contribution in #6019
- @mscieszka made their first contribution in #5990
- @pcambra made their first contribution in #6084
Full Changelog: v1.22.7...v1.23.0-rc1