Additional Services
Additional Service Configurations for ddev¶
DDEV-Local projects can be extended to provide additional add-ons, including services. This is achieved by adding docker-compose files to a project's .ddev directory that defines the added add-on(s).
If you need a service not provided here, see Defining an additional service with Docker Compose
Although anyone can create their own services with a .ddev/docker-compose.*.yaml
file, a growing number of services are supported and tested and can be installed with the ddev get
command starting with DDEV v1.19.0+.
You can see available supported and tested add-ons with the command ddev get --list
. To see all possible add-ons (not necessarily supported or tested), use ddev get --list --all
.
For example,
ddev get --list
┌───────────────────────────┬──────────────────────────────────────────────────┐
│ ADD-ON │ DESCRIPTION │
├───────────────────────────┼──────────────────────────────────────────────────┤
│ drud/ddev-memcached │ Install memcached as an extra service in ddev* │
├───────────────────────────┼──────────────────────────────────────────────────┤
│ drud/ddev-beanstalkd │ beanstalkd for ddev* │
├───────────────────────────┼──────────────────────────────────────────────────┤
│ drud/ddev-drupal9-solr │ Drupal 9 Apache Solr installation for DDEV* │
├───────────────────────────┼──────────────────────────────────────────────────┤
│ drud/ddev-elasticsearch │ Elasticsearch add-on for DDEV* │
├───────────────────────────┼──────────────────────────────────────────────────┤
│ drud/ddev-redis-commander │ Redis commander for use with ddev redis service* │
├───────────────────────────┼──────────────────────────────────────────────────┤
│ drud/ddev-redis │ redis service for ddev* │
└───────────────────────────┴──────────────────────────────────────────────────┘
Here are some of the add-ons that are officially supported:
- Redis:
ddev get drud/ddev-redis
. - Redis Commander:
ddev get drud/ddev-redis-commander
. - Elasticsearch:
ddev get drud/ddev-elasticsearch
. - Apache Solr for Drupal 9:
ddev get drud/ddev-drupal9-solr
. - Memcached:
ddev get drud/ddev-memcached
. - Beanstalkd:
ddev get drud/ddev-beanstalkd
.
Creating an additional service for ddev get
¶
Anyone can create an add-on for ddev get
(see screencast and instructions in ddev-addon-template):
- Click "Use this template" on ddev-addon-template.
- Create a new repository
- Test it and preferably make sure it has valid tests in
tests.bats
. - When it's working and tested, create a release.
- Add the label
ddev-get
and a good short description to the repository on GitHub. - When you're ready for the add-on to become official, open an issue in the DDEV issue queue requesting upgrade to official. You'll be expected to maintain it of course, and subscribe to all activity and be responsive to questions.
Additional services in ddev-contrib (MongoDB, Elasticsearch, etc)¶
Commonly used services will be migrated from the ddev-contrib repository to individual, tested, supported repositories, but
ddev-contrib repository has a wealth of additional examples and instructions:
- ElasticHQ:See ElasticHQ.
- Headless Chrome: See Headless Chrome for Behat Testing
- MongoDB: See MongoDB.
- Old PHP Versions to Run Old Sites: See Old PHP Versions
- RabbitMQ: See RabbitMQ
- TYPO3 Solr Integration: See TYPO3 Solr
Your PRs to integrate other services are welcome at ddev-contrib.