Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/administration/project_organization/bundles.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ To remove a bundle (either one you created yourself, or an out-of-the-box one th
|[ibexa/http-cache](https://github.com/ibexa/http-cache)|[HTTP cache handling](http_cache.md), using multi tagging|
|[ibexa/i18n](https://github.com/ibexa/i18n)|Centralized translations to ease synchronization with Crowdin|
|[ibexa/notifications](https://github.com/ibexa/notifications)| Sending [notifications](notifications.md)|
|[ibexa/post-install](https://github.com/ibexa/post-install)|Post installation tool|
|[ibexa/cloud](https://github.com/ibexa/cloud)|(Optional) [[= product_name_cloud =]] integration package|
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the package is optional, shouldn't it be treates like an LTS update, which by definition are opt-in bundles?

|[ibexa/post-install](https://github.com/ibexa/post-install)|Bundle containing Apache and nginx templates|
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
|[ibexa/post-install](https://github.com/ibexa/post-install)|Bundle containing Apache and nginx templates|
|[ibexa/post-install](https://github.com/ibexa/post-install)|Apache and nginx templates|

|[ibexa/rest](https://github.com/ibexa/rest)|REST API|
|[ibexa/search](https://github.com/ibexa/search)|Common search functionalities|
|[ibexa/solr](https://github.com/ibexa/solr)|[Solr-powered](https://solr.apache.org/) search handler|
Expand Down
8 changes: 5 additions & 3 deletions docs/getting_started/install_ibexa_dxp.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,13 +147,15 @@ To use Composer to instantly create a project in the current folder with all the

!!! note "[[= product_name_cloud =]]"

If you're deploying your installation on [Upsun](https://fixed.docs.upsun.com/guides/ibexa/deploy.html), run the following command:
If you're deploying your installation on [Upsun](https://fixed.docs.upsun.com/guides/ibexa/deploy.html), run the following commands:

``` bash
composer ibexa:setup --platformsh
composer require ibexa/cloud
php bin/console ibexa:cloud:setup --upsun
```

This command provides the necessary configuration for using [[= product_name_cloud =]].
These commands add the necessary package and provide the required configuration for using Upsun.
For more information, see [Install on Ibexa Cloud](install_on_ibexa_cloud.md).

#### Add project to version control

Expand Down
144 changes: 144 additions & 0 deletions docs/ibexa_cloud/environment_variables.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
---
description: Automatically generated environment variables based on Ibexa Cloud relationships and routes.

Check failure on line 2 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L2

[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'
Raw output
{"message": "[Ibexa.VariablesGlobal] Use global variable '[[= product_name_base =]]' instead of 'Ibexa'", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 2, "column": 69}}}, "severity": "ERROR"}
---

# Environment variables on Ibexa Cloud

[[= product_name_cloud =]] automatically generates environment variables based on the Upsun relationships and routes configuration.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[[= product_name_cloud =]] automatically generates environment variables based on the Upsun relationships and routes configuration.
[[= product_name_cloud =]] automatically generates environment variables based on the Upsun relationship and route configuration.

Is it "configuration of relationships and routes" or "relationships and configurations of routes"?

It parses `PLATFORM_RELATIONSHIPS` and `PLATFORM_ROUTES` environment variables and exposes them as application-specific variables.

Environment variable prefixes are created by converting relationship names to uppercase and replacing hyphens with underscores.

Check notice on line 10 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L10

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 10, "column": 31}}}, "severity": "INFO"}

When multiple endpoints are defined for a single relationship, numerical indices are used for all entries except the first one, for example: `SOLR`, `SOLR_1_`, `SOLR_2`.

Check notice on line 12 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L12

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 12, "column": 25}}}, "severity": "INFO"}

Check notice on line 12 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L12

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 12, "column": 82}}}, "severity": "INFO"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be SOLR_1_ or SOLR_1 ?

When multiple services of the same type are present, environment variables are exposed for each service accordingly based on their relationship names.

Check notice on line 13 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L13

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 13, "column": 76}}}, "severity": "INFO"}

## Environment variables in configuration files

If you're referencing [[= product_name_cloud =]] environment variables in your configuration files, you must define placeholder values for them in your `.env` file to prevent Symfony container initialization failures.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would this call for a warning?, if yes, I'd put "To prevent..." first, followed by "you must define"


Do it only for the variables that are required for the Symfony container to build.

Check notice on line 19 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L19

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 19, "column": 35}}}, "severity": "INFO"}

For example, if your `doctrine.yaml` uses a [database variable](#database-variables) created for a relationship named `pgsql`:

``` yaml
doctrine:
dbal:
url: '%env(resolve:PGSQL_URL)%'
```

You must define a placeholder value in `.env`:

``` env
PGSQL_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8"
```

The actual value of the environment variable is provided by [[= product_name_cloud =]] at runtime.

Check notice on line 35 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L35

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 35, "column": 46}}}, "severity": "INFO"}
The placeholder in `.env` is only required to prevent Symfony container compilation errors during build.

## Relationship naming conventions

You can choose relationship names freely in `.platform.app.yaml` for most services.

The only required names are:

- `dfs_database` - DFS database (required for DFS functionality)
- `redissession` or `valkeysession` - Redis/Valkey for sessions (required for dedicated session storage)

Common relationship name include:

- `database` - main application database
- `rediscache` - Redis for cache

This comment was marked as resolved.

- `elasticsearch` - Elasticsearch search service
- `solr` - Solr search service

## Database variables

For MySQL and PostgreSQL databases, the following variables are generated based on the relationship name (e.g., `database`):

Check notice on line 56 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L56

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 56, "column": 61}}}, "severity": "INFO"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For MySQL and PostgreSQL databases, the following variables are generated based on the relationship name (e.g., `database`):
For MySQL and PostgreSQL databases, the following variables are generated based on the relationship name (for example, `database`):


- `{RELATIONSHIP_NAME}_URL` - full database URL with charset and server version
- `{RELATIONSHIP_NAME}_USER` / `{RELATIONSHIP_NAME}_USERNAME` - database user
- `{RELATIONSHIP_NAME}_PASSWORD` - database password
- `{RELATIONSHIP_NAME}_HOST` - database host
- `{RELATIONSHIP_NAME}_PORT` - database port
- `{RELATIONSHIP_NAME}_NAME` / `{RELATIONSHIP_NAME}_DATABASE` - database name
- `{RELATIONSHIP_NAME}_DRIVER` - database driver
- `{RELATIONSHIP_NAME}_SERVER` - database server

For example, for a relationship called `database` the environment variables are named `DATABASE_URL`, `DATABASE_HOST`, `DATABASE_USER`, etc.

Check notice on line 67 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L67

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 67, "column": 77}}}, "severity": "INFO"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For example, for a relationship called `database` the environment variables are named `DATABASE_URL`, `DATABASE_HOST`, `DATABASE_USER`, etc.
For example, for a relationship called `database`, the environment variables are named `DATABASE_URL`, `DATABASE_HOST`, `DATABASE_USER`, etc.


For more information about database configuration, see [Databases](databases.md).

## DFS database variables

Check notice on line 71 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L71

[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings
Raw output
{"message": "[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 71, "column": 4}}}, "severity": "INFO"}

When using [distributed file storage (DFS) using a separate database](clustering.md#dfs-io-handler), you must use the relationship name `dfs_database`.

Check notice on line 73 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L73

[Ibexa.ByUsing] Prefer 'by using' or 'with' to plain 'using'.
Raw output
{"message": "[Ibexa.ByUsing] Prefer 'by using' or 'with' to plain 'using'.", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 73, "column": 1}}}, "severity": "INFO"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When using [distributed file storage (DFS) using a separate database](clustering.md#dfs-io-handler), you must use the relationship name `dfs_database`.
When using [distributed file storage (DFS) that uses a separate database](clustering.md#dfs-io-handler), you must use the relationship name `dfs_database`.

In addition to the database variables listed above, additional DFS-specific variables are availabld when `PLATFORMSH_DFS_NFS_PATH` is set:

Check failure on line 74 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L74

[Ibexa.Spellcheck] Did you really mean 'availabld'?
Raw output
{"message": "[Ibexa.Spellcheck] Did you really mean 'availabld'?", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 74, "column": 91}}}, "severity": "ERROR"}

- `DFS_NFS_PATH` - NFS path for DFS storage
- `DFS_DATABASE_CHARSET` - database character set
- `DFS_DATABASE_COLLATION` - database collation

## Cache variables

For Redis and Valkey cache services, you can use the following variables:

Check failure on line 82 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L82

[Ibexa.Spellcheck] Did you really mean 'Valkey'?
Raw output
{"message": "[Ibexa.Spellcheck] Did you really mean 'Valkey'?", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 82, "column": 15}}}, "severity": "ERROR"}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For Redis and Valkey cache services, you can use the following variables:
For Redis and Valkey cache services, you can use the following variables:


- `{RELATIONSHIP_NAME}_URL`
- `{RELATIONSHIP_NAME}_HOST`
- `{RELATIONSHIP_NAME}_PORT`
- `{RELATIONSHIP_NAME}_SCHEME`

In addition, you can use the following global variables:

- `CACHE_POOL` - `cache.redis` for both Redis and Valkey

Check failure on line 91 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L91

[Ibexa.Spellcheck] Did you really mean 'Valkey'?
Raw output
{"message": "[Ibexa.Spellcheck] Did you really mean 'Valkey'?", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 91, "column": 51}}}, "severity": "ERROR"}
- `CACHE_DSN` - cache connection string

For more information about persistence cache configuration, see [Persistence cache](persistence_cache.md).

## Session variables

For Redis-based session storage, the following variables are available.

- `SESSION_HANDLER_ID` - session handler class name
- `SESSION_SAVE_PATH` - Redis connection in `host:port` format

The system looks for a relationships named `redissession` or `valkeysession` first.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The system looks for a relationships named `redissession` or `valkeysession` first.
The system looks for relationships named `redissession` or `valkeysession` first.

If not found, it uses the first available Redis-compatible service.

For more information about session configuration, see [Sessions](sessions.md).

## Search engine variables

### Solr

For Solr search engine configuration, you can use the following variables:

- `SEARCH_ENGINE` - set to `solr`
- `SOLR_DSN` - Solr connection string
- `SOLR_CORE` - Solr core name
- `{RELATIONSHIP_NAME}_HOST`
- `{RELATIONSHIP_NAME}_PORT`
- `{RELATIONSHIP_NAME}_NAME` / `{RELATIONSHIP_NAME}_DATABASE`

For more information, see [Solr search engine](solr_overview.md).

### Elasticsearch

For Elasticsearch search engine configuration, you can use the following variables:

- `SEARCH_ENGINE` - set to `elasticsearch`
- `ELASTICSEARCH_DSN` - Elasticsearch connection string
- `{RELATIONSHIP_NAME}_URL`
- `{RELATIONSHIP_NAME}_HOST`
- `{RELATIONSHIP_NAME}_PORT`
- `{RELATIONSHIP_NAME}_SCHEME`

For more information, see [Elasticsearch](elasticsearch_overview.md).

## HTTP cache variables (Varnish)

Check notice on line 136 in docs/ibexa_cloud/environment_variables.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ibexa_cloud/environment_variables.md#L136

[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings
Raw output
{"message": "[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings", "location": {"path": "docs/ibexa_cloud/environment_variables.md", "range": {"start": {"line": 136, "column": 4}}}, "severity": "INFO"}

For Varnish-based HTTP caching, the following variables are available.

- `HTTPCACHE_PURGE_TYPE` - set to `varnish`
- `HTTPCACHE_PURGE_SERVER` - Varnish server address
- `HTTPCACHE_VARNISH_INVALIDATE_TOKEN` - token for cache invalidation

For more information about HTTP cache and Varnish configuration, see [HTTP cache](http_cache.md).
1 change: 1 addition & 0 deletions docs/ibexa_cloud/ibexa_cloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ month_change: false
[[= cards([
"ibexa_cloud/ibexa_cloud_guide",
"ibexa_cloud/install_on_ibexa_cloud",
"ibexa_cloud/environment_variables",
"ibexa_cloud/ddev_and_ibexa_cloud",
], columns=3) =]]
9 changes: 6 additions & 3 deletions docs/ibexa_cloud/install_on_ibexa_cloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@ month_change: false

## 1. Prepare configuration files

If you didn't run the `composer ibexa:setup` command during installation, run it now:
If you didn't add cloud configuration during installation, run the following commands now:

``` bash
composer ibexa:setup --platformsh
composer require ibexa/cloud
php bin/console ibexa:cloud:setup --upsun
```

This command adds to your project configuration files required for using [[= product_name_cloud =]].
These commands add the necessary package and configuration files required for [[= product_name_cloud =]].

You can adapt the configuration in the following places:

Expand Down Expand Up @@ -49,6 +50,8 @@ For information about available services, see [Upsun documentation](https://fixe

If you enable any of the services, you must uncomment the relevant relationship under the `relationship` key in `.platform.app.yaml` as well.

For information about environment variables automatically generated based on your service configuration, see [Environment variables on [[= product_name_cloud =]]](environment_variables.md).

## 2. Create an account

Log in to https://console.ibexa.cloud or create an account if you don't have one yet.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ Out of the box in `config/packages/cache_pool/cache.redis.yaml` you can find a d

!!! note "[[= product_name_cloud =]]"

For [[= product_name_cloud =]]: This is automatically configured in `vendor/ibexa/core/src/bundle/Core/DependencyInjection/IbexaCoreExtension.php` if you have enabled Redis as `rediscache` Upsun service.
For [[= product_name_cloud =]], it's configured based on the `.platform.app.yaml` file by the [`ibexa/cloud` package](install_on_ibexa_cloud.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For [[= product_name_cloud =]], it's configured based on the `.platform.app.yaml` file by the [`ibexa/cloud` package](install_on_ibexa_cloud.md).
For [[= product_name_cloud =]] installations, the [`ibexa/cloud` package](install_on_ibexa_cloud.md) performs configuration based on the `.platform.app.yaml` file.


For anything else, you can enable it with environment variables.
For instance, if you set the following environment variables `export CACHE_POOL="cache.redis" CACHE_DSN="secret@example.com:1234/13"`, it results in config like this:
Expand Down
16 changes: 6 additions & 10 deletions docs/infrastructure_and_maintenance/clustering/clustering.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,18 +136,14 @@ For production, it's recommended to create the DFS table in its own database, ma
CREATE INDEX ibexa_dfs_file_name_trunk ON ibexa_dfs_file USING btree (name_trunk);
```

!!! note
On [[= product_name_cloud =]] a separate DFS database is supported for MySQL only.

This example uses Doctrine connection named `dfs`:

``` yaml
parameters:
env(DFS_DATABASE_URL): '%env(resolve:DATABASE_URL)%'
dfs_nfs_path: '%env(resolve:DFS_NFS_PATH)%'
dfs_database_url: '%env(resolve:DFS_DATABASE_URL)%'
ibexa.io.nfs.adapter.config:
root: '%dfs_nfs_path%'
root: '%kernel.project_dir%/%env(string:DFS_NFS_PATH)%'
path: '$var_dir$/$storage_dir$/'
writeFlags: ~
linkHandling: ~
Expand All @@ -159,12 +155,12 @@ doctrine:
connections:
dfs:
# configure these for your database server
driver: '%dfs_database_driver%'
charset: '%dfs_database_charset%'
driver: '%env(string:DFS_DATABASE_DRIVER)%'
charset: '%env(string:DFS_DATABASE_CHARSET)%'
default_table_options:
charset: '%dfs_database_charset%'
collate: '%dfs_database_collation%'
url: '%dfs_database_url%'
charset: '%env(string:DFS_DATABASE_CHARSET)%'
collate: '%env(string:DFS_DATABASE_COLLATION)%'
url: '%env(string:DFS_DATABASE_URL)%'

# define the Flysystem handler
oneup_flysystem:
Expand Down
2 changes: 1 addition & 1 deletion docs/infrastructure_and_maintenance/sessions.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ Alternatively if you have needs to configure the servers dynamically:

!!! note "[[= product_name_cloud =]]"

For [[= product_name_cloud =]], this is already configured based on `.platform.app.yaml` config.
For [[= product_name_cloud =]], it's configured based on the `.platform.app.yaml` file by the [`ibexa/cloud` package](install_on_ibexa_cloud.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For [[= product_name_cloud =]], it's configured based on the `.platform.app.yaml` file by the [`ibexa/cloud` package](install_on_ibexa_cloud.md).
For [[= product_name_cloud =]] installations, the [`ibexa/cloud` package](install_on_ibexa_cloud.md) performs configuration based on the `.platform.app.yaml` file.


If you're on `php-redis` v4.2.0 and higher, you can optionally tweak [`php-redis` settings](https://github.com/phpredis/phpredis#session-locking) for session locking.

Expand Down
21 changes: 21 additions & 0 deletions docs/release_notes/ibexa_dxp_v5.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,27 @@ month_change: false

<div class="release-notes" markdown="1">

[[% set version = 'v5.0.6' %]]

[[= release_note_entry_begin("Ibexa DXP " + version, '2025-XX-XX', ['Headless', 'Experience', 'Commerce', 'New feature']) =]]

#### Ibexa Cloud improvements

##### New cloud configuration package

A new `ibexa/cloud` package is now available for [[= product_name_cloud =]] deployments.
This package replaces the previous `composer ibexa:setup --platformsh` command with a dedicated console command.

The package automatically generates environment variables based on [[= product_name_cloud =]] relationships and routes configuration, making it easier to configure services like databases, cache, search engines, and session storage.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The package automatically generates environment variables based on [[= product_name_cloud =]] relationships and routes configuration, making it easier to configure services like databases, cache, search engines, and session storage.
The package automatically generates environment variables based on [[= product_name_cloud =]] relationship and route configuration, making it easier to configure such services as databases, cache, search engines, and session storage.

Is it "configuration of relationships and routes" or "relationships and configurations of routes"?


For more information, see [Install on Ibexa Cloud](install_on_ibexa_cloud.md) and [Environment variables on Ibexa Cloud](environment_variables.md).

### Full changelog

<!-- [[% include 'snippets/release_50.md' %]] -->

[[= release_note_entry_end() =]]

[[% set version = 'v5.0.5' %]]

[[= release_note_entry_begin("Ibexa DXP " + version, '2026-01-15', ['Headless', 'Experience', 'Commerce']) =]]
Expand Down
11 changes: 11 additions & 0 deletions docs/resources/new_in_doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,17 @@

This page contains recent highlights and notable changes in [[= product_name =]] documentation.

## DRAFT 2026

Check notice on line 10 in docs/resources/new_in_doc.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/resources/new_in_doc.md#L10

[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings
Raw output
{"message": "[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings", "location": {"path": "docs/resources/new_in_doc.md", "range": {"start": {"line": 10, "column": 4}}}, "severity": "INFO"}

### Ibexa Cloud

- Added documentation describing [how to use the new `ibexa/cloud` package](install_on_ibexa_cloud.md) and the [environment variables it provides]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Added documentation describing [how to use the new `ibexa/cloud` package](install_on_ibexa_cloud.md) and the [environment variables it provides]
- Added documentation describing [how to use the new `ibexa/cloud` package](install_on_ibexa_cloud.md) and the [environment variables it provides](environment_variables.md)


### Configuration

- Updated [DFS](clustering.md#configuring-the-dfs-io-handler) and [Solr](install_solr.md#configure-the-bundle) configuration examples to use environment variables directly with [Environment Variable Processors]([[= symfony_doc =]]/configuration/env_var_processors.html) syntax instead of intermediate parameters.
This promotes skipping rebuilding the Symfony container when environment variable values change.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This promotes skipping rebuilding the Symfony container when environment variable values change.
This helps prevent rebuilding the Symfony container when environment variable values change.

or... "This promotes skipping the rebuild of ..."


## January 2026

### Releases
Expand Down
30 changes: 15 additions & 15 deletions docs/search/search_engines/solr_search_engine/install_solr.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,8 @@ Out of the box in [[= product_name =]] the following is enabled for a setup:
ibexa_solr:
endpoints:
endpoint0:
dsn: '%solr_dsn%'
core: '%solr_core%'
dsn: '%env(string:SOLR_DSN)%'
core: '%env(string:SOLR_CORE)%'
connections:
default:
entry_endpoints:
Expand All @@ -202,10 +202,10 @@ The installation contains several similar languages, and one different language
ibexa_solr:
endpoints:
endpoint0:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: core0
endpoint1:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: core1
connections:
default:
Expand All @@ -232,25 +232,25 @@ ibexa_solr:
version: '9.8.1' # Required only if using Solr 9
endpoints:
endpoint0:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: core0
endpoint1:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: core1
endpoint2:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: core2
endpoint3:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: core3
endpoint4:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: core4
endpoint5:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: core5
endpoint6:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: core6
connections:
default:
Expand Down Expand Up @@ -286,13 +286,13 @@ The example is based on multi-core setup so any specific language analysis optio
ibexa_solr:
endpoints:
main:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: '%solr_main_core%'
en:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: '%solr_en_core%'
fr:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: '%solr_fr_core%'
# ...
connections:
Expand Down Expand Up @@ -325,7 +325,7 @@ In the example below we configured Solr Bundle to work with secured Solr core.
ibexa_solr:
endpoints:
endpoint0:
dsn: '%solr_dsn%'
dsn: '%env(string:SOLR_DSN)%'
core: core0
user: example
pass: password
Expand Down
Loading