Assets 18


See the installation instructions for details, but it's easy:

  • macOS Homebrew: brew upgrade ddev
  • Linux or macOS via script:
    curl | bash
  • Windows: Download the ddev_windows_installer.v1.3.0.exe above.

And anywhere, you can just download the tarball or zipball, untar or unzip it, and place the executable in your path where it belongs.

To upgrade to this release with each existing project, please be cautious and:

  1. Temporarily remove any docker-compose.*.yaml customizations you’ve made, and any nginx, apache, php or mariadb overrides.
  2. Run ddev config in your project directory to update your .ddev/config.yaml
  3. After you've verified basic operation, add your customizations back in.


  • v1.3.0 (the previous release to this one) upgraded MariaDB from 10.1 to 10.2. For most users and most projects, this will happen automatically on first start of a project. However:
    • Snapshots from v1.2.0 and previous ddev projects cannot be restored with v1.3+. There's an easy workaround explained in the docs
  • Databases from versions before ddev v1.1 (bind-mounted, stored in ~/.ddev/<project>/mysql) cannot be migrated to Docker volumes by this version because that process uses snapshots. However, you can migrate with v1.2.0 and then use v1.4.0; but the easiest thing to do with those old ones is to mv ~/.ddev/<project>/mysql ~/.ddev/<project/mysql.saved and then use ddev import-db to load from a sql dump file.
  • The default directory on TYPO3 for ddev ssh, ddev exec, and exec hooks in config.yaml has changed from the docroot to the project root. This won't likely change anything for most TYPO3 users.

Key changes in v1.4.0:

  • The ddev composer command now provides in-container composer commands for nearly anything you'd want to do with composer. We found that lots of people, and especially WIndows users, were having trouble with fairly difficult workarounds to use composer. However this has value to most ddev users:
    • The composer and php version used are the exact version configured for your project.
    • Your composer project will be configured for the OS it's actually running (Linux in the container). This was a serious problem for Windows users, as composer install on Windows OS did not result in the same results as composer install in Linux, even if symlinks were working.
    • Note that because of problems with symlinks on Windows, it is not recommended to use code from the host (Windows) side, or to check it in. That means it will not be appropriate to check in the vendor directory on the host (although it would be safe inside the container), but most people do a composer build anyway.
    • The ddev composer create command is almost the same as composer create-project but we couldn't make it exactly the same. See docs for its usage.
  • Composer caching: composer downloads are now cached in a shared docker volume, making in-container composer builds far faster.
  • Shared ssh authentication in web container: You can now ddev auth ssh to authenticate your keys in the automatically-started ddev-ssh-agent container, which shares auth information with ever project's web container. This allows access to private composer repositories without the pain of manually mounting ssh keys and authenticating each time you need them in each web container. It also allows easier use of facilities like drush rsync that need ssh auth. This means that the previous manual workaround for mounting ssh keys is now obsolete. Please use ddev auth ssh instead.
  • Configurable working and destination directories. You can now specify the container directory you land in with ddev ssh, ddev exec, and exec hooks in config.yaml (#1214). This also means that TYPO3 users will land in the project root by default; Drupal/Backdrop users land in the project root by default.
  • ddev export-db makes textual exports of the database easier; Don't forget about ddev snapshot as well.

Minor changes in v1.4.0

  • The openssh-client package (ssh, ssh-agent, etc) was accidentally omitted from the web container in v1.3.0 and is added back here.
  • ddev debug command, especially ddev debug compose-config was added; this outputs a consolidated docker-compose.yaml for debugging.
  • ddev no longer mounts anything from the user's HOME directory. This helps people who have network-mounted home directories, and can help with running ddev on Windows WSL.
  • You can omit starting the phpmyadmin and ddev-ssh-agent containers if you choose to do so with omit_containers in the .ddev/config.yaml, or ddev config --omit-containers=dba for example.
  • Container healthchecks are improved and provide more information. This especially should help debug problems with the ddev-router.

Commits since v1.3.0

407beda Turn off strict ssh host key checking in container (#1266)
9f7b350 Create a new randomized installation directory for 'ddev composer create' (#1262)
e4726e0 Fix panic in GetWebContainerPublicPort() (#1264)
e6f43e5 Add huge COMPOSER_PROCESS_TIMEOUT for Win10 reasons (#1261)
b46e486 Stop using winpty, let them prompt for it (#1260)
cafac3f Bump container versions for v1.4.0 release (#1259)
2bff894 Minor test fixes for assertions and an unbound env var in web containertest (#1258)
fd21649 Update 'ddev composer create' install directory (#1257)
9195b31 Add php-bz2 to php packages for #1033 (#1254)
6c86f0e Try using php 7.2 with TestDdevRestoreSnapshot to get past SIGBUS (test only) (#1251)
65f699c Fix test not to pull if already existing to fix nightly build (#1250)
721b417 Fix typo (#1255)
36a5324 Unset/reset noninteractive env var when testing Confirm() (#1256)
ac82d37 Add 'ddev composer' command, closes #1131 (#1241)
f2171f3 Move internal docs links from 'latest' to 'stable'. (#1252)
4a5d041 Minor cleanup of test and buildkite setup (tests only) (#1246)
c8c8ade Add persistent composer cache docker volume, fixes #1027 (#1248)
7c4b9b5 Improve healthchecks, especially ddev-router, fixes #774, fixes #1237 (#1240)
1893afc Add ddev-ssh-auth container to provide ssh-auth, fixes #414, fixes #1152 (#1223)
5ea986c Add export-db command, fixes #767 (#1242)
9676ae8 Stop mounting from global ddev directory, fixes #883 (#1243)
a53b99d Add configurable working and destination directories, resolves #1112, resolves #505 (#1214)
53785e9 Add step to ensure new versions are listed on ReadTheDocs (#1238)
b139f19 Nightly build shouldn't use gometalinter (#1234)
e87a458 Add debugging for TestDdevRestoreSnapshot (#1231)
9516369 Add command to output final docker-compose config, closes #1192 (#1193)
5de168f Add move for issues (#1229)
53fc669 Better error handling when opening/writing config files, fixes #1177 (#1213)
799548b Add sequelpro.spf to .ddev gitignore, fixes #1216 (#1218)
aad2c14 Add openssh-client to web container for #414 (#1217)
8b100df Add a link to docker-for-windows (#1215)
6e61e6b Add uninstall instructions, docs only, fixes #1059 (#1180)
a1cae9d Update docs to not use unreleased functionality (#1199)
1627281 Add timeouts to queries on dynamic-generated URLS (tests only), fixes #1172 (#1179)
920a32f Add config flags to specify image values, closes #1181 (#1182)
83467f4 Use faster golangci-lint only, less linting (build/test only) (#1178)
73e7f0f Remove extraneous WP config env var (#1173)