Using DDEV Add-ons¶
DDEV add-ons are pre-packaged extensions that add functionality to your development environment with a single command. They handle installation, configuration, and integration automatically.
Add-ons vs. Custom Docker Compose Services¶
Use add-ons when:
- A standard, tested service is available as an add-on (Redis, Elasticsearch, Solr)
- You want automatic configuration and setup
Use custom Docker Compose services when:
- You need a custom or highly specialized service
- You require deep customization of the service configuration
- You’re prototyping or experimenting with service configurations
See Defining Additional Services with Docker Compose for custom Docker Compose service setup.
Discovering Add-ons¶
Web-based Add-on Registry¶
Use DDEV Add-on Registry to discover, explore, and leave comments on available add-ons.
Command Line Discovery¶
List official add-ons:
See all possible add-ons (including community add-ons):
Installing Add-ons¶
Public Add-ons¶
Install any public add-on using the repository format:
Examples:
# Download the official Redis add-on
ddev add-on get ddev/ddev-redis
# Get debug info about `ddev add-on get` failure
ddev add-on get ddev/ddev-redis --verbose
# Download the official Redis add-on, version v1.0.4
ddev add-on get ddev/ddev-redis --version v1.0.4
# Download the Drupal Solr add-on from its v1.2.3 release tarball
ddev add-on get https://github.com/ddev/ddev-drupal-solr/archive/refs/tags/v1.2.3.tar.gz
# Download the Drupal Contrib add-on from its main branch tarball
ddev add-on get https://github.com/ddev/ddev-drupal-contrib/tarball/main
# Download the OpenSearch add-on from a pull request #15 tarball
ddev add-on get https://github.com/ddev/ddev-opensearch/tarball/refs/pull/15/head
# Copy an add-on available in another directory
ddev add-on get /path/to/package
# Copy an add-on from a tarball in another directory
ddev add-on get /path/to/tarball.tar.gz
# Download the official Redis add-on and install it into a project named "my-project"
ddev add-on get ddev/ddev-redis --project my-project
Add-ons are installed into your project’s .ddev
directory and automatically integrated with your project configuration.
Private Add-ons¶
Add-ons from private GitHub repositories are supported, but you have to provide a GitHub token with the correct privileges to allow access to them:
- Fine-grained personal access tokens with the
contents:read
scope are recommended for better security. - Classic tokens with the
repo
scope also work.
Can I reuse my token from a different environment variable?
Yes, supported environment variables include:
DDEV_GITHUB_TOKEN
(highest priority)GH_TOKEN
(lower priority thanDDEV_GITHUB_TOKEN
)GITHUB_TOKEN
(lowest priority)
export DDEV_GITHUB_TOKEN=<your-github-token>
# Get the private add-on from the latest stable release
ddev add-on get <owner>/<repo>
# Or get a tarball for a specific branch, tag, or commit SHA
ddev add-on get https://api.github.com/repos/<owner>/<repo>/tarball/<ref>
# Note: the format below may not work with fine-grained tokens
ddev add-on get https://github.com/<owner>/<repo>/tarball/<ref>
Private repositories on other platforms:
Managing Add-ons¶
View Installed Add-ons¶
Update an Add-on¶
This updates to the latest version while preserving your customizations.
Remove an Add-on¶
This cleanly removes all add-on files and configurations.
Customizing Add-on Configuration¶
Sometimes you need to customize an add-on’s default configuration.
Method 1: Environment Variables (Recommended)¶
Many add-ons support customization through environment variables. For example, to change the Redis version in ddev-redis
:
This sets REDIS_TAG="7-bookworm"
which the add-on uses during service startup.
You can also edit the .ddev/.env.redis
file directly:
Check add-on documentation
Each add-on documents its available environment variables. Check the add-on’s GitHub repository for configuration options.
Method 2: Docker Compose Override¶
For more complex customizations, create an override file. For example, .ddev/docker-compose.redis_extra.yaml
:
This approach:
- Maintains your customizations when updating the add-on
- Allows complex service modifications
- Doesn’t require modifying the original add-on files
Note
Remove the #ddev-generated
line from any add-on file you customize directly, but using override files is preferred.
Official Add-ons¶
Database and Caching¶
ddev/ddev-redis
- Redis cache and data store serviceddev/ddev-memcached
- High-performance Memcached caching serviceddev/ddev-mongo
- MongoDB database support
Search and Analytics¶
ddev/ddev-elasticsearch
- Elasticsearch full-text search and analytics engineddev/ddev-opensearch
- OpenSearch analytics, logging, and full-text searchddev/ddev-solr
- Apache Solr server setup for search indexingddev/ddev-drupal-solr
- Apache Solr search engine integration for Drupal
Development Tools¶
ddev/ddev-adminer
- Adminer web-based MySQL, MariaDB, PostgreSQL database browserddev/ddev-phpmyadmin
- Web-based phpMyAdmin interface for MySQL, MariaDBddev/ddev-redis-commander
- Redis Commander Web UI for use with Redis serviceddev/ddev-browsersync
- Live-reload and HTTPS auto-refresh on file changes
Platform and Cloud Integration¶
ddev/ddev-platformsh
- Platform.sh integration for project syncing and workflowsddev/ddev-ibexa-cloud
- Pull projects and data from Ibexa Cloudddev/ddev-minio
- MinIO S3-compatible object storage solution
Specialized Services¶
ddev/ddev-rabbitmq
- RabbitMQ message broker, queue managerddev/ddev-cron
- Run scheduled tasks and cron jobs inside web containerddev/ddev-ioncube
- Enable ionCube PHP loaders for encoded filesddev/ddev-selenium-standalone-chrome
- Headless Chrome browser testing with Selenium
Development Environment¶
ddev/ddev-drupal-contrib
- Contrib module development environment for Drupal projects
Troubleshooting Add-ons¶
Check Add-on Status¶
This shows logs from an add-on’s service.
Explore Add-on Files¶
Look for files created by the add-on, typically:
docker-compose.<addon-name>.yaml
- Configuration files in
.ddev/<addon-name>/
- Custom commands in
.ddev/commands/
Restart Services¶
This restarts all services and applies any configuration changes.
Review Add-on Configuration¶
This shows the final Docker Compose configuration including add-on services.
Common Issues¶
Service not starting: Check ddev logs -s <service>
for error messages from the add-on service.
Configuration not applied: Ensure you’ve run ddev restart
after making configuration changes.
Getting Help¶
- Add-on documentation: Check the add-on’s GitHub repository readme
- DDEV Discord: Join the DDEV Discord for community support
- GitHub Issues: Report add-on-specific issues to the add-on’s repository
- Stack Overflow: Use the ddev tag
Next Steps¶
- Create custom add-ons: See Creating Add-ons
- Manual services: See Defining Additional Services with Docker Compose
- Advanced customization: See Extending and Customizing Environments