Skip to content

Commit df66a49

Browse files
committed
Added documentation for ibexa/cloud package
1 parent bab5296 commit df66a49

File tree

11 files changed

+210
-33
lines changed

11 files changed

+210
-33
lines changed

docs/administration/project_organization/bundles.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ To remove a bundle (either one you created yourself, or an out-of-the-box one th
5454
|[ibexa/http-cache](https://github.com/ibexa/http-cache)|[HTTP cache handling](http_cache.md), using multi tagging|
5555
|[ibexa/i18n](https://github.com/ibexa/i18n)|Centralized translations to ease synchronization with Crowdin|
5656
|[ibexa/notifications](https://github.com/ibexa/notifications)| Sending [notifications](notifications.md)|
57-
|[ibexa/post-install](https://github.com/ibexa/post-install)|Post installation tool|
57+
|[ibexa/cloud](https://github.com/ibexa/cloud)|(Optional) Cloud integration package|
58+
|[ibexa/post-install](https://github.com/ibexa/post-install)|Bundle containing Apache and nginx templates|
5859
|[ibexa/rest](https://github.com/ibexa/rest)|REST API|
5960
|[ibexa/search](https://github.com/ibexa/search)|Common search functionalities|
6061
|[ibexa/solr](https://github.com/ibexa/solr)|[Solr-powered](https://solr.apache.org/) search handler|

docs/getting_started/install_ibexa_dxp.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,13 +147,15 @@ To use Composer to instantly create a project in the current folder with all the
147147

148148
!!! note "Platform.sh"
149149

150-
If you're deploying your installation on [Platform.sh](https://docs.platform.sh/guides/ibexa/deploy.html), run the following command:
150+
If you're deploying your installation on [Platform.sh](https://docs.platform.sh/guides/ibexa/deploy.html), run the following commands:
151151

152152
``` bash
153-
composer ibexa:setup --platformsh
153+
composer require ibexa/cloud
154+
php bin/console ibexa:cloud:setup --upsun
154155
```
155156

156-
This command provides the necessary configuration for using Platform.sh.
157+
These commands add the necessary package and provide the required configuration for using Platform.sh.
158+
For more information, see [Install on Ibexa Cloud](install_on_ibexa_cloud.md).
157159

158160
#### Add project to version control
159161

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
---
2+
description: Environment variables automatically generated by Ibexa Cloud based on Platform.sh relationships and routes.
3+
---
4+
5+
# Environment variables on Ibexa Cloud
6+
7+
[[= product_name_cloud =]] automatically generates environment variables based on the Platform.sh relationships and routes configuration.
8+
It parses `PLATFORM_RELATIONSHIPS` and `PLATFORM_ROUTES` environment variables and exposes them as application-specific variables.
9+
10+
Environment variable prefixes are created by converting relationship names to uppercase and replacing hyphens with underscores.
11+
When multiple endpoints are defined for a single relationship, numerical indices are used, for example: `SOLR_1_`, `SOLR_2`.
12+
13+
## Relationship naming conventions
14+
15+
Use the following relationship names in `.platform.app.yaml`:
16+
17+
- `database` - main application database
18+
- `dfs_database` - DFS database (required name for DFS functionality)
19+
- `rediscache` - Redis for cache
20+
- `redissession` - Redis for sessions (recommended name for dedicated session storage)
21+
- `elasticsearch` - Elasticsearch search service
22+
- `solr` - Solr search service
23+
24+
## Database variables
25+
26+
For MySQL and PostgreSQL databases, the following variables are generated based on the relationship name (e.g., `database`):
27+
28+
- `{RELATIONSHIP_NAME}_URL` - full database URL with charset and server version
29+
- `{RELATIONSHIP_NAME}_USER` / `{RELATIONSHIP_NAME}_USERNAME` - database user
30+
- `{RELATIONSHIP_NAME}_PASSWORD` - database password
31+
- `{RELATIONSHIP_NAME}_HOST` - database host
32+
- `{RELATIONSHIP_NAME}_PORT` - database port
33+
- `{RELATIONSHIP_NAME}_NAME` / `{RELATIONSHIP_NAME}_DATABASE` - database name
34+
- `{RELATIONSHIP_NAME}_DRIVER` - database driver
35+
- `{RELATIONSHIP_NAME}_SERVER` - database server
36+
37+
For example, for a relationship called `database` the environment variables are named `DATABASE_URL`, `DATABASE_HOST`, `DATABASE_USER`, etc.
38+
39+
For more information about database configuration, see [Databases](databases.md).
40+
41+
## DFS database variables
42+
43+
When using [distributed file storage (DFS) using a separate database](clustering.md#dfs-io-handler), you must use the relationship name `dfs_database`.
44+
In addition to the database variables listed above, additional DFS-specific variables are created when `PLATFORMSH_DFS_NFS_PATH` is set:
45+
46+
- `DFS_NFS_PATH` - NFS path for DFS storage
47+
- `DFS_DATABASE_CHARSET` - database character set
48+
- `DFS_DATABASE_COLLATION` - database collation
49+
50+
## Cache variables
51+
52+
For Redis and Memcached cache services, the following variables are available.
53+
54+
- `{RELATIONSHIP_NAME}_URL` (Redis only)
55+
- `{RELATIONSHIP_NAME}_HOST`
56+
- `{RELATIONSHIP_NAME}_PORT`
57+
- `{RELATIONSHIP_NAME}_SCHEME` (Redis only)
58+
59+
In addition, the following global variables are defined:
60+
61+
- `CACHE_POOL` - either `cache.redis` or `cache.memcached`
62+
- `CACHE_DSN` - cache connection string
63+
64+
!!! note
65+
Redis services have higher priority than Memcached services when building the global cache variables.
66+
67+
For more information about persistence cache configuration, see [Persistence cache](persistence_cache.md).
68+
69+
## Session variables
70+
71+
For Redis-based session storage, the following variables are available.
72+
73+
- `SESSION_HANDLER_ID` - session handler class name
74+
- `SESSION_SAVE_PATH` - Redis connection in `host:port` format
75+
76+
The system looks for a relationship named `redissession` first. If not found, it uses the first available Redis service.
77+
78+
For more information about session configuration, see [Sessions](sessions.md).
79+
80+
## Search engine variables
81+
82+
### Solr
83+
84+
For Solr search engine configuration, the following variables are generated:
85+
86+
- `SEARCH_ENGINE` - set to `solr`
87+
- `SOLR_DSN` - Solr connection string
88+
- `SOLR_CORE` - Solr core name
89+
- `{RELATIONSHIP_NAME}_HOST`
90+
- `{RELATIONSHIP_NAME}_PORT`
91+
- `{RELATIONSHIP_NAME}_NAME` / `{RELATIONSHIP_NAME}_DATABASE`
92+
93+
For more information, see [Solr search engine](solr_overview.md).
94+
95+
### Elasticsearch
96+
97+
For Elasticsearch search engine configuration, the following variables are generated:
98+
99+
- `SEARCH_ENGINE` - set to `elasticsearch`
100+
- `ELASTICSEARCH_DSN` - Elasticsearch connection string
101+
- `{RELATIONSHIP_NAME}_URL`
102+
- `{RELATIONSHIP_NAME}_HOST`
103+
- `{RELATIONSHIP_NAME}_PORT`
104+
- `{RELATIONSHIP_NAME}_SCHEME`
105+
106+
For more information, see [Elasticsearch](elasticsearch_overview.md).
107+
108+
## HTTP cache variables (Varnish)
109+
110+
For Varnish-based HTTP caching, the following variables are available.
111+
112+
- `HTTPCACHE_PURGE_TYPE` - set to `varnish`
113+
- `HTTPCACHE_PURGE_SERVER` - Varnish server address
114+
- `HTTPCACHE_VARNISH_INVALIDATE_TOKEN` - token for cache invalidation
115+
116+
For more information about HTTP cache and Varnish configuration, see [HTTP cache](http_cache.md).

docs/ibexa_cloud/ibexa_cloud.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ month_change: false
1111
[[= cards([
1212
"ibexa_cloud/ibexa_cloud_guide",
1313
"ibexa_cloud/install_on_ibexa_cloud",
14+
"ibexa_cloud/environment_variables",
1415
"ibexa_cloud/ddev_and_ibexa_cloud",
1516
], columns=3) =]]

docs/ibexa_cloud/install_on_ibexa_cloud.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@ month_change: false
99

1010
## 1. Prepare configuration files
1111

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

1414
``` bash
15-
composer ibexa:setup --platformsh
15+
composer require ibexa/cloud
16+
php bin/console ibexa:cloud:setup --upsun
1617
```
1718

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

2021
You can adapt the configuration in the following places:
2122

@@ -49,6 +50,8 @@ For information about available services, see [Platform.sh documentation](https:
4950

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

53+
For information about environment variables automatically generated based on your service configuration, see [Environment variables on [[= product_name_cloud =]]](environment_variables.md).
54+
5255
## 2. Create an account
5356

5457
Log in to https://console.ibexa.cloud or create an account if you don't have one yet.

docs/infrastructure_and_maintenance/clustering/clustering.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,9 @@ This example uses Doctrine connection named `dfs`:
143143
``` yaml
144144
parameters:
145145
env(DFS_DATABASE_URL): '%env(resolve:DATABASE_URL)%'
146-
dfs_nfs_path: '%env(resolve:DFS_NFS_PATH)%'
147146
dfs_database_url: '%env(resolve:DFS_DATABASE_URL)%'
148147
ibexa.io.nfs.adapter.config:
149-
root: '%dfs_nfs_path%'
148+
root: '%kernel.project_dir%/%env(string:DFS_NFS_PATH)%'
150149
path: '$var_dir$/$storage_dir$/'
151150
writeFlags: ~
152151
linkHandling: ~
@@ -158,12 +157,12 @@ doctrine:
158157
connections:
159158
dfs:
160159
# configure these for your database server
161-
driver: '%dfs_database_driver%'
162-
charset: '%dfs_database_charset%'
160+
driver: '%env(string:DFS_DATABASE_DRIVER)%'
161+
charset: '%env(string:DFS_DATABASE_CHARSET)%'
163162
default_table_options:
164-
charset: '%dfs_database_charset%'
165-
collate: '%dfs_database_collation%'
166-
url: '%dfs_database_url%'
163+
charset: '%env(string:DFS_DATABASE_CHARSET)%'
164+
collate: '%env(string:DFS_DATABASE_COLLATION)%'
165+
url: '%env(string:DFS_DATABASE_URL)%'
167166

168167
# define the Flysystem handler
169168
oneup_flysystem:

docs/infrastructure_and_maintenance/sessions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ Alternatively if you have needs to configure Redis servers dynamically:
9090

9191
!!! note "[[= product_name_cloud =]]"
9292

93-
For [[= product_name_cloud =]] (and Platform.sh), this is already configured in `config/env/platformsh.php` based on `.platform.yaml` config.
93+
For [[= product_name_cloud =]] (and Platform.sh), it's configured based on the `.platform.app.yaml` file by the [`ibexa/cloud` package](install_on_ibexa_cloud.md).
9494

9595
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.
9696

docs/release_notes/ibexa_dxp_v5.0.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,25 @@ month_change: true
1010

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

13+
[[% set version = 'v5.0.5' %]]
14+
15+
[[= release_note_entry_begin("Ibexa DXP " + version, '2025-XX-XX', ['Headless', 'Experience', 'Commerce', 'New feature']) =]]
16+
17+
#### Ibexa Cloud improvements
18+
19+
##### New cloud configuration package
20+
21+
A new `ibexa/cloud` package is now available for [[= product_name_cloud =]] deployments.
22+
This package replaces the previous `composer ibexa:setup --platformsh` command with a dedicated console command.
23+
24+
The package automatically generates environment variables based on Platform.sh relationships and routes configuration, making it easier to configure services like databases, cache, search engines, and session storage.
25+
26+
For more information, see [Install on Ibexa Cloud](install_on_ibexa_cloud.md) and [Environment variables on Ibexa Cloud](environment_variables.md).
27+
28+
[[% include 'snippets/release_50.md' %]]
29+
30+
[[= release_note_entry_end() =]]
31+
1332
[[% set version = 'v5.0.4' %]]
1433

1534
[[= release_note_entry_begin("Integrated help " + version, '2025-12-10', ['Headless', 'Experience', 'Commerce', 'LTS Update', 'New feature']) =]]

docs/resources/new_in_doc.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ month_change: true
77

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

10+
## December 2025
11+
12+
### Ibexa Cloud
13+
14+
- Added documentation describing [how to use the new `ibexa/cloud` package](install_on_ibexa_cloud.md) and the [environment variables it provides]
15+
16+
### Configuration
17+
18+
- 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 to promote skipping rebuilding the Symfony container when environment variable values change.
19+
1020
## November 2025
1121

1222
### Releases

docs/search/search_engines/solr_search_engine/install_solr.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,8 @@ Out of the box in [[= product_name =]] the following is enabled for a setup:
183183
ibexa_solr:
184184
endpoints:
185185
endpoint0:
186-
dsn: '%solr_dsn%'
187-
core: '%solr_core%'
186+
dsn: '%env(string:SOLR_DSN)%'
187+
core: '%env(string:SOLR_CORE)%'
188188
connections:
189189
default:
190190
entry_endpoints:
@@ -202,10 +202,10 @@ The installation contains several similar languages, and one different language
202202
ibexa_solr:
203203
endpoints:
204204
endpoint0:
205-
dsn: '%solr_dsn%'
205+
dsn: '%env(string:SOLR_DSN)%'
206206
core: core0
207207
endpoint1:
208-
dsn: '%solr_dsn%'
208+
dsn: '%env(string:SOLR_DSN)%'
209209
core: core1
210210
connections:
211211
default:
@@ -232,25 +232,25 @@ ibexa_solr:
232232
version: '9.8.1' # Required only if using Solr 9
233233
endpoints:
234234
endpoint0:
235-
dsn: '%solr_dsn%'
235+
dsn: '%env(string:SOLR_DSN)%'
236236
core: core0
237237
endpoint1:
238-
dsn: '%solr_dsn%'
238+
dsn: '%env(string:SOLR_DSN)%'
239239
core: core1
240240
endpoint2:
241-
dsn: '%solr_dsn%'
241+
dsn: '%env(string:SOLR_DSN)%'
242242
core: core2
243243
endpoint3:
244-
dsn: '%solr_dsn%'
244+
dsn: '%env(string:SOLR_DSN)%'
245245
core: core3
246246
endpoint4:
247-
dsn: '%solr_dsn%'
247+
dsn: '%env(string:SOLR_DSN)%'
248248
core: core4
249249
endpoint5:
250-
dsn: '%solr_dsn%'
250+
dsn: '%env(string:SOLR_DSN)%'
251251
core: core5
252252
endpoint6:
253-
dsn: '%solr_dsn%'
253+
dsn: '%env(string:SOLR_DSN)%'
254254
core: core6
255255
connections:
256256
default:
@@ -286,14 +286,14 @@ The example is based on multi-core setup so any specific language analysis optio
286286
ibexa_solr:
287287
endpoints:
288288
main:
289-
dsn: '%solr_dsn%'
290-
core: '%solr_main_core%'
289+
dsn: '%env(string:SOLR_DSN)%'
290+
core: '%env(string:SOLR_MAIN_CORE)%'
291291
en:
292-
dsn: '%solr_dsn%'
293-
core: '%solr_en_core%'
292+
dsn: '%env(string:SOLR_DSN)%'
293+
core: '%env(string:SOLR_EN_CORE)%'
294294
fr:
295-
dsn: '%solr_dsn%'
296-
core: '%solr_fr_core%'
295+
dsn: '%env(string:SOLR_DSN)%'
296+
core: '%env(string:SOLR_FR_CORE)%'
297297
# ...
298298
connections:
299299
default:
@@ -325,7 +325,7 @@ In the example below we configured Solr Bundle to work with secured Solr core.
325325
ibexa_solr:
326326
endpoints:
327327
endpoint0:
328-
dsn: '%solr_dsn%'
328+
dsn: '%env(string:SOLR_DSN)%'
329329
core: core0
330330
user: example
331331
pass: password

0 commit comments

Comments
 (0)