-
Notifications
You must be signed in to change notification settings - Fork 82
Documented ibexa/cloud package #2985
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 5.0
Are you sure you want to change the base?
Changes from all commits
efeb0a5
7815d84
2060a44
f8b7e1e
350b333
1c434e7
9ff9ab2
29f39b2
92ff475
029dc09
2a2451a
29696f8
b286cd9
88baab2
51901bf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -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| | ||||||
| |[ibexa/post-install](https://github.com/ibexa/post-install)|Bundle containing Apache and nginx templates| | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| |[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| | ||||||
|
|
||||||
| 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
|
||||||
| --- | ||||||
|
|
||||||
| # Environment variables on Ibexa Cloud | ||||||
|
|
||||||
| [[= product_name_cloud =]] automatically generates environment variables based on the Upsun relationships and routes configuration. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
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
|
||||||
|
|
||||||
| 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
|
||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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
|
||||||
|
|
||||||
| ## 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. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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
|
||||||
|
|
||||||
| 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
|
||||||
| 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.
Sorry, something went wrong. |
||||||
| - `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
|
||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| - `{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
|
||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| 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
|
||||||
|
|
||||||
| 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
|
||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| 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
|
||||||
|
|
||||||
| - `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
|
||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| - `{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
|
||||||
| - `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. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| 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
|
||||||
|
|
||||||
| 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). | ||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -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). | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| 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: | ||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -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). | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| 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. | ||||||
|
|
||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -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. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
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']) =]] | ||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -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
|
||||||
|
|
||||||
| ### Ibexa Cloud | ||||||
|
|
||||||
| - Added documentation describing [how to use the new `ibexa/cloud` package](install_on_ibexa_cloud.md) and the [environment variables it provides] | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| ### 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. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
or... "This promotes skipping the rebuild of ..." |
||||||
|
|
||||||
| ## January 2026 | ||||||
|
|
||||||
| ### Releases | ||||||
|
|
||||||
There was a problem hiding this comment.
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?