DDEV and Ibexa Cloud¶
Two ways are available to run an Ibexa Cloud project locally with DDEV:
Note
The following examples use Ibexa Cloud CLI (ibexa_cloud).
With the ddev-platformsh add-on¶
To configure the ddev/ddev-platformsh add-on, you need a Platform.sh API Token.
The ddev/ddev-platformsh add-on configures the document root, the PHP version, the database, and the cache pool according to the Ibexa Cloud configuration. About the search engine, the add-on can configure Elasticsearch but can't configure Solr. If you use Solr on Ibexa Cloud and want to add it to your DDEV stack, see clustering with DDEV and ibexa/ddev-solr add-on.
COMPOSER_AUTH from Platform.sh can't be used, because JSON commas are incorrectly interpreted by --web-environment-add, which sees them as multiple variable separators.
But the variable must exist for Platform.sh hooks scripts to work. To use an auth.json file for this purpose, see Using auth.json.
You must remove Node.js and NVM installations as they're already included in DDEV.
The following sequence of commands:
- Downloads the Ibexa Cloud Platform.sh project from the default environment "production" into a new directory using Platform.sh CLI alias 
ibexa_clouddefined in introduction. (Replace<project-ID>with the hash of your own project. Seeibexa_cloud help getfor options like selecting another environment). - Configures a new DDEV project.
 - Ignores 
.ddev/directory from Git. (Some DDEV config could be committed like in this documentation.) - Sets Composer authentication by using an already existing 
auth.jsonfile. - Creates a 
public/vardirectory if it doesn't exist, to allow the creation ofpublic/var/.platform.installedby Platform.sh hook script. - Installs the 
ddev/ddev-platformshadd-on which prompts for the Platform.sh API token, project ID and environment name. - Comments out the Node.js and NVM installations from the hooks copied in 
.ddev/config.platformsh.yaml. (In this file, you may have to discard other specific features like New Relic.) - Changes 
maxmemory-policyfrom defaultallkeys-lfuto a value accepted by theRedisTagAwareAdapter. - Starts the project.
 - Gets the content from Platform.sh, both database and binary files by using 
ddev pull platformfeature from the add-on. - Restarts the project.
 - Displays information about the project services.
 - Opens the project in a browser.
 
1 2 3 4 5 6 7 8 9 10 11 12 13  |  | 
Note
The Platform.sh API token is set at user profile level, therefore it is stored globally under current user root as PLATFORMSH_CLI_TOKEN in ~/.ddev/global_config.yaml.
Without the Platform.sh add-on¶
The following example adapts the manual method to run an already existing project to the Platform.sh case:
The following sequence of commands:
- Downloads the Ibexa Cloud Platform.sh project from the default environment "production" into a new directory using Platform.sh CLI alias 
ibexa_clouddefined in introduction. (Replace<project-ID>with the hash of your own project. Seeibexa_cloud help getfor options like selecting another environment). - Configures a new DDEV project.
 - Ignores 
.ddev/directory from Git. (Some DDEV config could be committed like in this documentation.) - Starts the DDEV project.
 - Sets Composer authentication.
 - Gets the database content from Platform.sh.
 - Imports this database content into DDEV project's database.
 - Downloads the Platform.sh public/var locally to have the content binary files.
 - Install the dependencies and run post-install scripts.
 - Displays information about the project services.
 - Opens the DDEV project in a browser.
 
1 2 3 4 5 6 7 8 9 10 11  |  | 
From there, services can be added to get closer to Ibexa Cloud Platform.sh architecture.
.platform/services.yaml indicates the services used.
Refer to clustering with DDEV for those additions.