augustash / ddev-drupal
AugustAsh ddev installer.
Requires
- php: >=7
Requires (Dev)
- phpunit/phpunit: ^10
- symfony/yaml: ^6.4 || ^7.0
- dev-master
- 1.1.58
- 1.1.57
- 1.1.56
- 1.1.55
- 1.1.54
- 1.1.53
- 1.1.52
- 1.1.51
- 1.1.50
- 1.1.49
- 1.1.48
- 1.1.47
- 1.1.46
- 1.1.45
- 1.1.44
- 1.1.43
- 1.1.42
- 1.1.41
- 1.1.40
- 1.1.39
- 1.1.38
- 1.1.37
- 1.1.36
- 1.1.35
- 1.1.34
- 1.1.33
- 1.1.32
- 1.1.31
- 1.1.30
- 1.1.29
- 1.1.28
- 1.1.27
- 1.1.26
- 1.1.25
- 1.1.24
- 1.1.23
- 1.1.22
- 1.1.21
- 1.1.20
- 1.1.19
- 1.1.18
- 1.1.17
- 1.1.16
- 1.1.15
- 1.1.14
- 1.1.13
- 1.1.12
- 1.1.11
- 1.1.10
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.55
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-update-pantheon-ssh-keepalive
This package is auto-updated.
Last update: 2026-06-04 20:54:03 UTC
README
Single line
ddev composer config --json --merge extra.drupal-scaffold.allowed-packages '["augustash/ddev-drupal"]' && ddev composer config scripts.ddev-setup "Augustash\\Ddev::postPackageInstall" && ddev composer config scripts.post-update-cmd "Augustash\\Ddev::postUpdate" && ddev composer require --dev augustash/ddev-drupal && ddev composer ddev-setup
Why scalar
composer config, not--json? The two script values contain backslashes (theAugustash\Ddevnamespace separator). Passing them as inline JSON throughddev composer config --json '[...]'lets the double shell (host → container) eat the backslashes, so Composer stores the value as a quoted string —"[\"Augustash\\Ddev::postUpdate\"]"— instead of an array. The nextcomposer updatethen fails withClass "[\"Augustash\Ddev ... is not autoloadable. The scalar form above sidesteps it: a single hook is a valid scalar script value. (Theallowed-packagesline keeps--jsonsafely — it has no backslashes.)Already have a
post-update-cmd? (e.g. a PantheonDrupalComposerManaged\ComposerScripts::postUpdatehook) the scalar command replaces it. Skip that one segment and instead addAugustash\Ddev::postUpdateto the existing array by editingcomposer.jsondirectly, so both hooks run:"post-update-cmd": [ "DrupalComposerManaged\\ComposerScripts::postUpdate", "Augustash\\Ddev::postUpdate" ]
Updating
The generated scaffolding and hooks refresh automatically on every
composer update: the post-update-cmd hook (Augustash\Ddev::postUpdate)
re-runs setup in update mode without re-prompting. So pulling the latest
ddev-drupal is normally all you need:
ddev composer update augustash/ddev-drupal
Update mode keeps your existing config.yaml values (client code, docroot,
Drupal/PHP version, subdomains) and only rebuilds what may have changed —
Selenium, BrowserSync, Solr (if already enabled), the Terminus image, and the
Pantheon add-on hook (upgraded in place to track develop). Run ddev restart
afterward to rebuild the containers and re-pull add-ons.
To force a refresh without updating the package — or to run the one-time
wkhtmltopdf→dompdf migration, which the automatic hook skips — re-run setup
manually in update mode (-u):
ddev composer ddev-setup -- -u
Omit -u to be re-prompted for the configuration values (the original setup
flow):
ddev composer ddev-setup
Zookeeper image swap (Solr add-on)
The zoo service moved from the legacy Bitnami image to the official multi-arch
zookeeper:3.9 image (fixes the linux/amd64 platform warning on Apple Silicon).
The data path changed from /bitnami/zookeeper to /data, so the existing volume
must be recreated. After updating the add-on, run:
ddev stop && docker volume rm "ddev-$(ddev describe -j | jq -r .raw.name)_zoo" && ddev start
The post-start ddev solrcollection hook will repopulate the configset and
recreate the collection in the fresh ZK store.
Configuration
On ddev-setup, you will be prompted for:
- Client code
- Document root (defaults to
web) - Drupal version
- PHP version
- Is this site hosted on Pantheon? — if yes:
- Pantheon site name
- Pantheon site environment
- Subdomains (optional)
- Solr support
These are used to set config.yaml ddev configuration.
Database
Database pull is handled by the ddev-pantheon-db add-on, which is automatically installed on ddev start.
Will not download if there is more than one table in the existing local db.
To force a fresh pull:
ddev db -f
Troubleshooting
Configset upload failed with error code 405: Solr HTTP error: OK (405).
Solr HTTP error: OK (405).
- Rerun ddev start.
Drush was unable to query the database.
- The key part is 'Drush was unable to query the database'.
- Make sure you do not have database credentials in settings.local.
- You have an empty database, partial import, something is wrong with it.
- Download a fresh database.
Failed to execute command drush en search_api_solr_admin -y.
Failed to execute command drush sapi-sl --field=id:.
Failed to execute command drush solr-upload-conf.
- Run composer require drupal/search_api_solr_admin -W.
- Run ddev solrcollection.
Server [server-name] is not a Solr server.
- An existing solr server is configured as a database server.
- Remove this server and create a new solr cloud server.
- Ensure your settings.local overrides are correct.
(The) server with ID 'local' could not be retrieved for index 'Global'.
- The server 'local' does not exist.
- Comment out configuration overrides in settings.local.php.
- Start ddev, create the server [name].
- Assign the following values:
- Server name: local
- Backend: solr
- Configure Solr Backend: Solr Cloud with Basic Auth
- Default Solr Collection: search
- Username: solr
- Password: SolrRocks
- Assign the following values:
- Uncomment configuration values.
- Make sure [name] matches the configuration overrides, in all respective lines.
- Ex. $config['search_api.index.global']['server'] = [name];
- Ex. $config['search_api.server.[name]']['backend_config']['connector'] = 'solr_cloud_basic_auth';
- Run: ddev solrcollection
- Start ddev, create the server [name].
Solr version is 8.8.2 in docker-compose.solr, but does not match server version.
- Build version was changed to 8.8.2 to match Pantheon hosts exact version.
- Recreate your collection.
- Navigate in your browser to http://[site-name].ddev.site:8983/solr/#/~collections.
- Delete existing collection.
- Run ddev solrcollection.
- Navigate in your browser to http://[site-name].ddev.site:8983/solr/#/~collections.
- Reload your collection.
- Navigate to http://[site-name].ddev.site/admin/config/search/search-api/server/[server-name].
- Click 'Reload Collection'.
- Server version should now be 8.8.2.
- Navigate to http://[site-name].ddev.site/admin/config/search/search-api/server/[server-name].
- Recreate your collection.
TypeError: Drupal\search_api_solr\Utility\SolrCommandHelper::__construct(): Argument #4 ($configset_controller) must be of type Drupal\search_api_solr\Controller\SolrConfigSetController.
- Update drupal/search_api_pantheon.