Warning: This add-on is experimental and under active development.
Upsun is a unified, secure, enterprise-grade platform for building, running and scaling web applications.
This repository provides experimental integration between your Upsun (Flex or Fixed/Platform.sh) project and DDEV. It tries to configure your DDEV project to match your Upsun platform configuration by parsing your .upsun/config.yaml (or .platform.app.yaml) configuration file and generating equivalent DDEV settings for local development.
🚨 This add-on is experimental and under active development. Please report issues and provide feedback!
- Make sure you have DDEV v1.24.8+ installed.
- Your project should have a valid
.upsun/config.yamlor.platform.app.yamlfile.
- Clone your project repository
cdinto your project directory- Run
ddev configand answer the questions as appropriate - Run
ddev add-on get ddev/ddev-upsun - Run
ddev start - Run
ddev pull upsunto retrieve a copy of the database and file mounts from your Upsun environment.
To upgrade your version of ddev-upsun, repeat the ddev add-on get ddev/ddev-upsun to get the latest release. To see the installed version, ddev add-on list --installed.
If you change your .upsun/config.yaml (or .platform.app.yaml/.platform), repeat the ddev add-on get ddev/ddev-upsun so that the generated DDEV configuration will be updated.
- Works with Upsun php-based projects, for example
php:8.1,php:8.2,php:8.3, orphp:8.4. It has not been tested with non-PHP projects. - Takes your checked-out Upsun project and configures DDEV based on that information:
- PHP version mapping to DDEV equivalents
- Database services (MySQL, MariaDB, PostgreSQL)
- Basic environment variables and relationships
- A working
ddev pull upsunintegration
- Supports the following services:
- Databases
- MariaDB
- MySQL
- PostgreSQL
- Cache/Memory
- Redis
- Memcached
- Search
- OpenSearch
- Databases
These project types are included in the automated tests that run with every change:
- Drupal 11 - Extensive automated testing with three database types:
Each test configuration includes coverage for Redis, OpenSearch, and Memcache services.
- Multi-application Upsun projects
- Frameworks other than Drupal (Laravel, Symfony, etc.)
- Complex service relationships
- Workers and cron jobs
- Advanced Upsun features
- Single-app projects only - Multi-app configurations are not supported
- Basic service relationships - Complex service relationships beyond single database are not translated
- No worker/cron translation - Workers and cron jobs are not translated to DDEV equivalents
- Limited environment variables - Only basic Upsun environment variables are mapped
- PHP projects only - Non-PHP runtimes are not supported
Your experience is important: Please let us know about how it went for you here in the issue queue or in any of the DDEV support venues, especially Discord.
We're particularly interested in:
- Which project types and frameworks you'd like to see supported
- What Upsun services and features are most important for your workflow
- Any issues or edge cases you encounter
- Success stories and improvements
- If your local project has a different database type than the upstream (Upsun) database, it will conflict, so please back up your database with
ddev export-dbandddev deletebefore starting the project with new configuration based on upstream. - This add-on is based on lessons learned from ddev-platformsh but adapted for Upsun's configuration format, and using the new DDEV PHP-based actions add-on technique.
- PRs are welcome! The code here is mostly in PHP and is easier to understand than the ddev-platformsh code.
- Basic PHP project support with database configuration
- Drupal 11 testing
- Support Upsun-Fixed (Platform.sh-style) configuration,
.platform.app.yamlfiles - Additional Upsun service support (
elasticsearch-enterprise, etc.) - Service version specification support (e.g.,
redis:8) passed to DDEV add-ons - Laravel project support and testing
- Symfony project support and testing
- WordPress project support and testing
- Multi-app project support
- Worker and cron job translation
- Enhanced service relationship mapping
Let us know what's important to you on Discord and in the issue queue here!
Maintained by @rfay