diff --git a/.wordlist.txt b/.wordlist.txt index e68cd65a7..c678108e7 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -65,6 +65,7 @@ Aplaceholder AppRefundHandler AppScripts AppServer +AppServers AppSystem Archlinux ArrayFacade diff --git a/guides/hosting/configurations/shopware/environment-variables.md b/guides/hosting/configurations/shopware/environment-variables.md index 3e7c3ed9a..ca754a5fe 100644 --- a/guides/hosting/configurations/shopware/environment-variables.md +++ b/guides/hosting/configurations/shopware/environment-variables.md @@ -9,32 +9,51 @@ nav: This page lists all environment variables that can be used to configure Shopware. -| Variable | Default Value | Description | -|----------------------------------------|---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `APP_ENV` | `prod` | Environment | -| `APP_SECRET` | (empty) | Can be generated with `openssl rand -hex 32` | -| `APP_CACHE_DIR` | `{projectRoot}/var/cache` | Path to a directory to store caches (since 6.6.8.0) | -| `APP_BUILD_DIR` | `{projectRoot}/var/cache` | Path to a temporary directory to create cache folder (since 6.6.8.0) | -| `APP_LOG_DIR` | `{projectRoot}/var/log` | Path to a directory to store logs (since 6.6.8.0) | -| `INSTANCE_ID` | (empty) | Unique Identifier for the Store: Can be generated with `openssl rand -hex 32` | -| `LOCK_DSN` | `flock` | DSN for Symfony locking | -| `APP_URL` | (empty) | Where Shopware will be accessible | -| `BLUE_GREEN_DEPLOYMENT` | `0` | This needs super privilege to create trigger | -| `DATABASE_URL` | (empty) | MySQL credentials as DSN | -| `DATABASE_SSL_CA` | (empty) | Path to SSL CA file | -| `DATABASE_SSL_CERT` | (empty) | Path to SSL Cert file | -| `DATABASE_SSL_KEY` | (empty) | Path to SSL Key file | -| `DATABASE_SSL_DONT_VERIFY_SERVER_CERT` | (empty) | Disables verification of the server certificate (1 disables it) | -| `MAILER_DSN` | `null://localhost` | Mailer DSN (Admin Configuration overwrites this) | -| `ENABLE_SERVICES` | `auto` | Determines if services are enabled, auto detects that based on `APP_ENV`, other possible values are `true` (or `1`) and `false` (or `0`). When set to `0`, Shopware Services won't be installed on the system | -| `OPENSEARCH_URL` | (empty) | Open Search Hosts | -| `SHOPWARE_ES_ENABLED` | `0` | Open Search Support Enabled? | -| `SHOPWARE_ES_INDEXING_ENABLED` | `0` | Open Search Indexing Enabled? | -| `SHOPWARE_ES_INDEX_PREFIX` | (empty) | Open Search Index Prefix | -| `COMPOSER_HOME` | `/tmp/composer` | Caching for the Plugin Manager | -| `SHOPWARE_HTTP_CACHE_ENABLED` | `1` | Is HTTP Cache enabled? | -| `SHOPWARE_HTTP_DEFAULT_TTL` | `7200` | Default TTL for HTTP Cache | -| `MESSENGER_TRANSPORT_DSN` | (empty) | DSN for default async queue (example: `amqp://guest:guest@localhost:5672/%2f/default`) | -| `MESSENGER_TRANSPORT_LOW_PRIORITY_DSN` | (empty) | DSN for low priority queue (example: `amqp://guest:guest@localhost:5672/%2f/low_prio`) | -| `MESSENGER_TRANSPORT_FAILURE_DSN` | (empty) | DSN for failed messages queue (example: `amqp://guest:guest@localhost:5672/%2f/failure`) | -| `COMPOSER_PLUGIN_LOADER` | (empty) | When set to a non-empty value (e.g., `1` or `true`), enables the Composer plugin loader instead of the database plugin loader. All plugins defined in the root `composer.json` will be automatically active, regardless of database settings. | +| Variable | Default Value | Description | +|------------------------------------------|---------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `ADMIN_OPENSEARCH_URL` | (empty) | OpenSearch URL for administration | +| `APP_BUILD_DIR` | `{projectRoot}/var/cache` | Path to a temporary directory to create cache folder (since 6.6.8.0) | +| `APP_CACHE_DIR` | `{projectRoot}/var/cache` | Path to a directory to store caches (since 6.6.8.0) | +| `APP_ENV` | `prod` | Environment | +| `APP_LOG_DIR` | `{projectRoot}/var/log` | Path to a directory to store logs (since 6.6.8.0) | +| `APP_SECRET` | (empty) | Can be generated with `openssl rand -hex 32` | +| `APP_URL` | (empty) | Where Shopware will be accessible | +| `APP_URL_CHECK_DISABLED` | `false` | Disable URL validation checks | +| `BLUE_GREEN_DEPLOYMENT` | `0` | This needs super privilege to create trigger | +| `COMPOSER_HOME` | `/tmp/composer` | Caching for the Plugin Manager | +| `COMPOSER_PLUGIN_LOADER` | (empty) | When set to a non-empty value (e.g., `1` or `true`), enables the Composer plugin loader instead of the database plugin loader. All plugins defined in the root `composer.json` will be automatically active, regardless of database settings. | +| `DATABASE_SSL_CA` | (empty) | Path to SSL CA file | +| `DATABASE_SSL_CERT` | (empty) | Path to SSL Cert file | +| `DATABASE_SSL_DONT_VERIFY_SERVER_CERT` | (empty) | Disables verification of the server certificate (1 disables it) | +| `DATABASE_SSL_KEY` | (empty) | Path to SSL Key file | +| `DATABASE_URL` | (empty) | MySQL credentials as DSN | +| `ENABLE_SERVICES` | `auto` | Determines if services are enabled, auto detects that based on `APP_ENV`, other possible values are `true` (or `1`) and `false` (or `0`). When set to `0`, Shopware Services won't be installed on the system | +| `FASTLY_API_KEY` | (empty) | API key for Fastly CDN integration. **Keep this value secure and do not commit it to version control.** | +| `INSTANCE_ID` | (empty) | Unique Identifier for the Store: Can be generated with `openssl rand -hex 32` | +| `JWT_PRIVATE_KEY` | (empty) | Can be generated with `shopware-cli project generate-jwt --env` | +| `JWT_PUBLIC_KEY` | (empty) | Can be generated with `shopware-cli project generate-jwt --env` | +| `LOCK_DSN` | `flock` | DSN for Symfony locking | +| `MAILER_DSN` | `null://localhost` | Mailer DSN (Admin Configuration overwrites this) | +| `MESSENGER_TRANSPORT_DSN` | (empty) | DSN for default async queue (example: `amqp://guest:guest@localhost:5672/%2f/default`) | +| `MESSENGER_TRANSPORT_FAILURE_DSN` | (empty) | DSN for failed messages queue (example: `amqp://guest:guest@localhost:5672/%2f/failure`) | +| `MESSENGER_TRANSPORT_LOW_PRIORITY_DSN` | (empty) | DSN for low priority queue (example: `amqp://guest:guest@localhost:5672/%2f/low_prio`) | +| `OPENSEARCH_URL` | (empty) | Open Search Hosts | +| `REDIS_PREFIX` | (empty) | Prefix for Redis keys | +| `REDIS_URL` | (empty) | Redis connection URL for caching and sessions (example: `redis://host:port`) | +| `SHOPWARE_ADMIN_ES_ENABLED` | (empty) | Enable Elasticsearch for administration | +| `SHOPWARE_ADMIN_ES_INDEX_PREFIX` | `sw-admin` | Index prefix for administration Elasticsearch | +| `SHOPWARE_ADMIN_ES_REFRESH_INDICES` | (empty) | Refresh administration indices | +| `SHOPWARE_ADMINISTRATION_PATH_NAME` | `admin` | Custom path name for administration interface | +| `SHOPWARE_DBAL_TIMEZONE_SUPPORT_ENABLED` | `0` | Enable timezone support in DBAL | +| `SHOPWARE_DBAL_TOKEN_MINIMUM_LENGTH` | `3` | Minimum token length for DBAL (@deprecated v6.8.0) | +| `SHOPWARE_DISABLE_UPDATE_CHECK` | (empty) | Disable automatic update checks | +| `SHOPWARE_ES_ENABLED` | `0` | Open Search Support Enabled? | +| `SHOPWARE_ES_EXCLUDE_SOURCE` | `0` | Exclude source from Elasticsearch | +| `SHOPWARE_ES_INDEX_PREFIX` | (empty) | Open Search Index Prefix | +| `SHOPWARE_ES_INDEXING_BATCH_SIZE` | `100` | Batch size for Elasticsearch indexing | +| `SHOPWARE_ES_INDEXING_ENABLED` | `0` | Open Search Indexing Enabled? | +| `SHOPWARE_ES_NGRAM_MAX_GRAM` | `5` | Maximum n-gram size for Elasticsearch | +| `SHOPWARE_ES_NGRAM_MIN_GRAM` | `4` | Minimum n-gram size for Elasticsearch | +| `SHOPWARE_ES_THROW_EXCEPTION` | `1` | Whether to throw exceptions on Elasticsearch errors (`1` to enable, `0` to disable) | +| `SHOPWARE_HTTP_CACHE_ENABLED` | `1` | Is HTTP Cache enabled? | +| `SHOPWARE_HTTP_DEFAULT_TTL` | `7200` | Default TTL for HTTP Cache | diff --git a/guides/hosting/infrastructure/elasticsearch/elasticsearch-setup.md b/guides/hosting/infrastructure/elasticsearch/elasticsearch-setup.md index 05b5341d6..1c9cd6621 100644 --- a/guides/hosting/infrastructure/elasticsearch/elasticsearch-setup.md +++ b/guides/hosting/infrastructure/elasticsearch/elasticsearch-setup.md @@ -91,6 +91,19 @@ Normally a shard in Elasticsearch can hold at least tens of gigabytes, so you mi | `SHOPWARE_ES_INDEX_PREFIX` | `sw_myshop` | This variable defines the prefix for the Elasticsearch indices | | `SHOPWARE_ES_THROW_EXCEPTION` | `0` / `1` | This variable activates the debug mode for Elasticsearch. Without this variable as = 0 you will get a fallback to mysql without any error message if Elasticsearch is not working | +:::info +The `SHOPWARE_ES_INDEXING_ENABLED` and `SHOPWARE_ES_ENABLED` can seem as a duplicate setting, but has it's purpose. Here are two use cases for setting these differently: + +## Full Support + +`SHOPWARE_ES_ENABLED=1` + `SHOPWARE_ES_INDEXING_ENABLED=1` - Both search and indexing enabled. + +## Read-Only + +`SHOPWARE_ES_ENABLED=1` + `SHOPWARE_ES_INDEXING_ENABLED=0` - Search enabled, indexing disabled. Could be useful in bigger setups where some AppServers can only read the index but not update it. + +::: + ### Example file for productive environments ```bash