Ibexa Cloud and DDEV¶
Two ways are available to run an Ibexa Cloud project locally with DDEV:
Note
The following examples will use Platform.sh CLI set up for Ibexa Cloud
thanks to the following dedicated alias ibexa_cloud
:
1 2 3 |
|
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 an 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_cloud
defined in introduction. (Replace<project-ID>
with the hash of your own project. Seeibexa_cloud help get
for 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.json
file. - Creates a
public/var
directory if it doesn't exist, to allow the creation ofpublic/var/.platform.installed
by Platform.sh hook script. - Installs the
ddev/ddev-platformsh
add-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-policy
from defaultallkeys-lfu
to a value accepted by theRedisTagAwareAdapter
. - Starts the project.
- Gets the content from Platform.sh, both database and binary files by using
ddev pull platform
feature 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_cloud
defined in introduction. (Replace<project-ID>
with the hash of your own project. Seeibexa_cloud help get
for 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.