diff --git a/sites/platform/src/add-services/redis.md b/sites/platform/src/add-services/redis.md index 5c1c7555da..455c0425ca 100644 --- a/sites/platform/src/add-services/redis.md +++ b/sites/platform/src/add-services/redis.md @@ -14,7 +14,7 @@ for high-performance data retrieval and key-value storage. {{% frameworks version="1" %}} - [Drupal](../guides/drupal/redis.md) -- [Ibexa DXP](../guides/ibexa/deploy.md#cache-and-sessions) +- [Ibexa DXP](../guides/ibexa/deploy.md#redis) - [Jakarta EE](../guides/jakarta/deploy.md#redis) - [Micronaut](../guides/micronaut/redis.md) - [Quarkus](../guides/quarkus/redis.md) diff --git a/sites/platform/src/add-services/solr.md b/sites/platform/src/add-services/solr.md index 24202dc7f2..2396236275 100644 --- a/sites/platform/src/add-services/solr.md +++ b/sites/platform/src/add-services/solr.md @@ -10,7 +10,7 @@ Solr search with generic schemas provided, and a custom schema is also supported {{% frameworks version="1" %}} -- [Ibexa DXP](../guides/ibexa/deploy.md#solr-specificity) +- [Ibexa DXP](../guides/ibexa/deploy.md#solr) - [Jakarta EE](../guides/jakarta/deploy.md#apache-solr) - [Spring](../guides/spring/solr.md) diff --git a/sites/platform/src/guides/ibexa/deploy.md b/sites/platform/src/guides/ibexa/deploy.md index 46cdc95ec8..2cf0753f4e 100644 --- a/sites/platform/src/guides/ibexa/deploy.md +++ b/sites/platform/src/guides/ibexa/deploy.md @@ -5,159 +5,16 @@ weight: -10 description: Learn how to use Ibexa DXP on {{% vendor/name %}}. --- -Ibexa DXP is a Composer-based PHP CMS, and as such fits well with the {{% vendor/name %}} model. -As a Symfony-based application its setup is very similar to Symfony. +Ibexa DXP is a digital experience platform with a focus on delivering effective content, offering personalized customer journeys, and facilitating multi-channel purchases and customer service. -Ibexa DXP has come pre-configured for use with {{% vendor/name %}} since its predecessor, eZ Platform 1.13. -Version 2.5 and later is recommended. -Those are the only versions that are supported. -Appropriate {{% vendor/name %}} configuration files are included in the Ibexa DXP application itself, but may be modified to suit your particular site, if needed. +Ibexa Cloud, based on Platform.sh, is the fastest solution to build and run Ibexa projects. -## Cache and sessions +See how to [install Ibexa DXP on Platform.sh through Ibexa Cloud](https://doc.ibexa.co/en/latest/getting_started/install_on_ibexa_cloud/). -By default, Ibexa DXP is configured to use a single Redis instance for both the application cache and session storage. -You may optionally choose to use a separate Redis instance for session storage in case you have a lot of authenticated traffic (and thus there would be many session records). +## Redis -To do so, uncomment the `redissession` entry in the `{{< vendor/configfile "services" >}}` file -and the corresponding relationship in the `{{< vendor/configfile "app" >}}` file. -The bridge code that is provided with eZ Platform 1.13 and later automatically detects the additional Redis service and use it for session storage. +See [how to enable additional services](https://doc.ibexa.co/en/latest/getting_started/install_on_ibexa_cloud/#additional-services) -On a {{% names/dedicated-gen-2 %}} instance, we strongly recommend using two separate Redis instances for Cache and Sessions. -The service and relationship names that ship with the default {{% vendor/name %}} configuration in Ibexa DXP should be used as-is. -To ensure the development environment works like Production, uncomment the `redissession` entry in the `{{< vendor/configfile "services" >}}` file and the corresponding relationship in the `{{< vendor/configfile "app" >}}` file. -The bridge code that's provided with eZ Platform 1.13 and later -automatically detects the additional Redis service and uses it for session storage. +## Solr -By default, on {{% names/dedicated-gen-2 %}} instances, both Cache and Session storage are in "persistent" mode, -so that data isn't lost in case of a system or process restart. -That reduces the potential for cache stampede issues or inadvertently logging people out. - -## Modifying an existing Ibexa DXP project - -If you have an existing Ibexa DXP project that was upgraded from a previous version, or want to resynchronize with the latest recommended configuration, see the [Ibexa DXP official repository](https://github.com/ezsystems/ezplatform). - -In particular, see: - -* The [`{{< vendor/configfile "app" >}}`](https://github.com/ezsystems/ezplatform/blob/master/.platform.app.yaml) file, - which automatically builds Ibexa DXP in development mode or production mode depending on your defined project-level variables. -* The [{{< vendor/configfile "app" >}}](https://github.com/ezsystems/ezplatform/tree/master/.platform) directory. - -## Local Development with eZ Platform 2.x and later - -For local development on top of a Docker stack, -the eZ community provides a tool called [eZ Launchpad](https://ezsystems.github.io/launchpad/) -It improves developer experience and reduces complexity for common actions by simplifying your interactions with Docker containers. -eZ Launchpad is ready to work with {{% vendor/name %}}. - -It serves as a wrapper that allows you to run console commands from within the container without logging into it explicitly. -For example to run `bin/console` `cache:clear` inside the PHP container do: - -```bash -~/ez sfrun cache:clear -``` - -Note that eZ Launchpad is supported by the community. -It might also require adjustments to make it work for Ibexa DXP V4. - -### eZ Launchpad installation - -eZ Launchpad's approach is to stay as decoupled as possible from your development machine and your remote hosting whether you are Linux or macOS. -To install run: - -```bash -curl -fLSs https://ezsystems.github.io/launchpad/install_curl.bash | bash -``` - -Then you can start to use it to initialize your Ibexa DXP project on top Docker. - -```bash -~/ez init -``` - -or create the Docker stack based on an existing project - -```bash -git clone .git application -cd application -~/ez create -``` - -Find more details on the [eZ Launchpad documentation](https://ezsystems.github.io/launchpad/). - -Now, you have a working Ibexa DXP application with many services including Varnish, Solr, Redis, and more. - -### Integration - -To generate the key files for {{% vendor/name %}} (`{{< vendor/configfile "app" >}}` and `{{< vendor/configdir >}}`) run: - -```bash -~/ez platformsh:setup -``` - -eZ Launchpad generates the files for you and you are then totally free to fine tune them. - -#### Solr specificity - -Solr is fully functional with eZ Launchpad but it isn't enabled by default on {{% vendor/name %}}. -You have to set it up manually following the [current documentation](https://github.com/ezsystems/ezplatform/blob/master/.platform/services.yaml#L37). - -Actions needed are: - -* Generate the Solr configuration thanks to the script provided by Ibexa. -* Put the result in the `{{< vendor/configdir >}}` at the root of your project. -* Add the service in the `{{< vendor/configfile "services" >}}`. -* Add the relationship in the `{{< vendor/configfile "app" >}}`. - -#### Environment variables (optional) - -eZ Launchpad allows you to define environment variables in the `provisioning/dev/docker-compose.yml` file. -You may use that to set [variables](../../development/variables/_index.md) to match {{% vendor/name %}} environments so that you can keep your environment behavior in sync. - -Such variables have to be set in the `engine` container. - -```yaml -# provisioning/dev/docker-compose.yml -engine: - environment: - - ASIMPLEVARIABLE=avalue - - PLATFORM_RELATIONSHIPS=A_BASE64_ENCODED_VALUE -``` - -### Local development with {{% vendor/name %}} - -Thanks to eZ Launchpad, you can work 100% locally: [untethered](../../development/local/untethered.md). -You have the whole project working offline on machine. - -{{< note >}} - -{{% vendor/name %}} also provides smooth [tethered SSH tunnels](../../development/local/tethered.md). - -{{< /note >}} - -Local services are provided by the Docker stack but there are minimum day-to-day tasks that you might need with {{% vendor/name %}}. - -The main ones are: - -* **Downstream database synchronization**: Getting it from the remote to the local. -* **Downstream file storage synchronization**: Getting it from the remote to the local. - -To help you with that, {{% vendor/name %}} provides a CLI that you can [install](../../administration/cli/_index.md). - -#### Database and storage synchronization - -```bash -{{% vendor/cli %}} db:dump --gzip -f ezplatform.sql.gz -d data/ -y -{{% vendor/cli %}} mount:download -m ezplatform/web/var --target=ezplatform/web/var/ -y -~/ez/importdata -``` - -The two first lines get the remote database and storage from the remote environment and stores it locally in `data/`. -The third tells to eZ Launchpad to import those data in the Docker stack. - -{{< note >}} - -The storage (images and files) synchronization is optional. -Ibexa DXP provides a [placeholder generator mechanism](https://doc.ibexa.co/en/latest/content_management/images/images/#generating-placeholder-images) -that allows you to forget about the real images for your local. - -{{< /note >}} +See [how to enable additional services](https://doc.ibexa.co/en/latest/getting_started/install_on_ibexa_cloud/#additional-services)