> ## Documentation Index
> Fetch the complete documentation index at: https://www.meilisearch.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration reference

> Complete reference of all Meilisearch instance configuration options, environment variables, and CLI flags.

export const NoticeTag = ({label}) => <span className="noticeTag noticeTag--{ label }">
    {label}
  </span>;

This page lists all available Meilisearch instance configuration options. For an introduction to configuration methods, see [Configuration overview](/resources/self_hosting/configuration/overview).

## All instance options

### Configuration file path

**Environment variable**: `MEILI_CONFIG_FILE_PATH`<br />
**CLI option**: `--config-file-path`<br />
**Default**: `./config.toml`<br />
**Expected value**: a filepath

Designates the location of the configuration file to load at launch.

<Warning>
  Specifying this option in the configuration file itself will throw an error (assuming Meilisearch is able to find your configuration file).
</Warning>

### Database path

**Environment variable**: `MEILI_DB_PATH`<br />
**CLI option**: `--db-path`<br />
**Default value**: `"data.ms/"`<br />
**Expected value**: a filepath

Designates the location where database files will be created and retrieved.

### Environment

**Environment variable**: `MEILI_ENV`<br />
**CLI option**: `--env`<br />
**Default value**: `development`<br />
**Expected value**: `production` or `development`

Configures the instance's environment. Value must be either `production` or `development`.

`production`:

* Setting a [master key](/resources/self_hosting/security/basic_security) of at least 16 bytes is **mandatory**. If no master key is provided or if it is under 16 bytes, Meilisearch will suggest a secure autogenerated master key
* The [search preview interface](/resources/self_hosting/getting_started/search_preview) is disabled

`development`:

* Setting a [master key](/resources/self_hosting/security/basic_security) is **optional**. If no master key is provided or if it is under 16 bytes, Meilisearch will suggest a secure autogenerated master key
* Search preview is enabled

<Tip>
  When the server environment is set to `development`, providing a master key is not mandatory. This is useful when debugging and prototyping, but dangerous otherwise since API routes are unprotected.
</Tip>

### HTTP address & port binding

**Environment variable**: `MEILI_HTTP_ADDR`<br />
**CLI option**: `--http-addr`<br />
**Default value**: `"localhost:7700"`<br />
**Expected value**: an HTTP address and port

Sets the HTTP address and port Meilisearch will use.

### Master key

**Environment variable**: `MEILI_MASTER_KEY`<br />
**CLI option**: `--master-key`<br />
**Default value**: `None`<br />
**Expected value**: a UTF-8 string of at least 16 bytes

Sets the instance's master key, automatically protecting all routes except [`GET /health`](/reference/api/management/get-health). This means you will need a valid API key to access all other endpoints.

When `--env` is set to `production`, providing a master key is mandatory. If none is given, or it is under 16 bytes, Meilisearch will throw an error and refuse to launch.

When `--env` is set to `development`, providing a master key is optional. If none is given, all routes will be unprotected and publicly accessible.

If you do not supply a master key in `production` or `development` environments or it is under 16 bytes, Meilisearch will suggest a secure autogenerated master key you can use when restarting your instance.

[Learn more about Meilisearch's use of security keys.](/resources/self_hosting/security/basic_security)

### Disable analytics

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_NO_ANALYTICS`<br />
**CLI option**: `--no-analytics`

Deactivates Meilisearch's built-in telemetry when provided.

Meilisearch automatically collects data from all instances that do not opt out using this flag. All gathered data is used solely for the purpose of improving Meilisearch, and can be [deleted at any time](/resources/help/telemetry#how-to-delete-all-collected-data).

[Read more about our policy on data collection](/resources/help/telemetry), or take a look at [the comprehensive list of all data points we collect](/resources/help/telemetry#exhaustive-list-of-all-collected-data).

### Dumpless upgrade <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_DUMPLESS_UPGRADE`<br />
**CLI option**: `--experimental-dumpless-upgrade`<br />
**Default value**: None<br />
**Expected value**: None

Migrates the database to a new Meilisearch version after you have manually updated the binary.

[Learn more about updating Meilisearch to a new release](/resources/migration/updating).

<Warning>
  #### Create a snapshot before a dumpless upgrade

  Take a snapshot of your instance before performing a dumpless upgrade.

  Dumpless upgrade are not currently atomic. It is possible some processes fail and Meilisearch still finalizes the upgrade. This may result in a corrupted database and data loss.
</Warning>

### Dump directory

**Environment variable**: `MEILI_DUMP_DIR`<br />
**CLI option**: `--dump-dir`<br />
**Default value**: `dumps/`<br />
**Expected value**: a filepath pointing to a valid directory

Sets the directory where Meilisearch will create dump files.

[Learn more about creating dumps](/reference/api/management/create-dump).

### Import dump

**Environment variable**: `MEILI_IMPORT_DUMP`<br />
**CLI option**: `--import-dump`<br />
**Default value**: none<br />
**Expected value**: a filepath pointing to a `.dump` file

Imports the dump file located at the specified path. Path must point to a `.dump` file. If a database already exists, Meilisearch will throw an error and abort launch.

Meilisearch will only launch once the dump data has been fully indexed. The time this takes depends on the size of the dump file.

### Ignore missing dump

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_IGNORE_MISSING_DUMP`<br />
**CLI option**: `--ignore-missing-dump`

Prevents Meilisearch from throwing an error when `--import-dump` does not point to a valid dump file. Instead, Meilisearch will start normally without importing any dump.

This option will trigger an error if `--import-dump` is not defined.

### Ignore dump if DB exists

**Environment variable**: `MEILI_IGNORE_DUMP_IF_DB_EXISTS`<br />
**CLI option**: `--ignore-dump-if-db-exists`<br />
**Expected value**: a boolean (`true` or `false`)

Set this option to `true` to prevent a Meilisearch instance with an existing database from throwing an error when using `--import-dump`. When enabled, the dump will be ignored and Meilisearch will launch using the existing database.

For the environment variable, set `MEILI_IGNORE_DUMP_IF_DB_EXISTS=true`. For the CLI option, pass `--ignore-dump-if-db-exists`.

This option will trigger an error if `--import-dump` is not defined.

### Log level

**Environment variable**: `MEILI_LOG_LEVEL`<br />
**CLI option**: `--log-level`<br />
**Default value**: `'INFO'`<br />
**Expected value**: one of `ERROR`, `WARN`, `INFO`, `DEBUG`, `TRACE`, OR `OFF`

Defines how much detail should be present in Meilisearch's logs.

Meilisearch currently supports five log levels, listed in order of increasing verbosity:

* `'ERROR'`: only log unexpected events indicating Meilisearch is not functioning as expected
* `'WARN'`: log all unexpected events, regardless of their severity
* `'INFO'`: log all events. This is the default value of `--log-level`
* `'DEBUG'`: log all events and include detailed information on Meilisearch's internal processes. Useful when diagnosing issues and debugging
* `'TRACE'`: log all events and include even more detailed information on Meilisearch's internal processes. We do not advise using this level as it is extremely verbose. Use `'DEBUG'` before considering `'TRACE'`.
* `'OFF'`: disable logging

### Customize log output <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_LOGS_MODE`<br />
**CLI option**: `--experimental-logs-mode`<br />
**Default value**: `'human'`<br />
**Expected value**: one of `human` or `json`

Defines whether logs should output a human-readable text or JSON data.

### Max indexing memory

**Environment variable**: `MEILI_MAX_INDEXING_MEMORY`<br />
**CLI option**: `--max-indexing-memory`<br />
**Default value**: 2/3 of the available RAM<br />
**Expected value**: an integer (`104857600`) or a human readable size (`'100Mb'`)

Sets the maximum amount of RAM Meilisearch can use when indexing. By default, Meilisearch uses no more than two thirds of available memory.

The value must either be given in bytes or explicitly state a base unit:  `107374182400`, `'107.7Gb'`, or `'107374 Mb'`.

It is possible that Meilisearch goes over the exact RAM limit during indexing. In most contexts and machines, this should be a negligible amount with little to no impact on stability and performance.

<Warning>
  Setting `--max-indexing-memory` to a value bigger than or equal to your machine's total memory is likely to cause your instance to crash.
</Warning>

### Reduce indexing memory usage <NoticeTag type="experimental" label="experimental" />

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_EXPERIMENTAL_REDUCE_INDEXING_MEMORY_USAGE`<br />
**CLI option**: `--experimental-reduce-indexing-memory-usage`<br />
**Default value**: `None`<br />

Enables `MDB_WRITEMAP`, an LMDB option. Activating this option may reduce RAM usage in some UNIX and UNIX-like setups. However, it may also negatively impact write speeds and overall performance.

### Max indexing threads

**Environment variable**: `MEILI_MAX_INDEXING_THREADS`<br />
**CLI option**: `--max-indexing-threads`<br />
**Default value**: half of the available threads<br />
**Expected value**: an integer

Sets the maximum number of threads Meilisearch can use during indexing. By default, the indexer avoids using more than half of a machine's total processing units. This ensures Meilisearch is always ready to perform searches, even while you are updating an index.

If `--max-indexing-threads` is higher than the real number of cores available in the machine, Meilisearch uses the maximum number of available cores.

In single-core machines, Meilisearch has no choice but to use the only core available for indexing. This may lead to a degraded search experience during indexing.

<Warning>
  Avoid setting `--max-indexing-threads` to the total of your machine's processor cores. Though doing so might speed up indexing, it is likely to severely impact search experience.
</Warning>

### Payload limit size

**Environment variable**: `MEILI_HTTP_PAYLOAD_SIZE_LIMIT`<br />
**CLI option**: `--http-payload-size-limit`<br />
**Default value**: `100000000` (\~100MB)<br />
**Expected value**: an integer

Sets the maximum size of [accepted payloads](/resources/internals/documents#dataset-format). Value must be given in bytes or explicitly stating a base unit. For example, the default value can be written as `100000000`, `'100Mb'`, or `'100 MB'`.

### Search queue size <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_SEARCH_QUEUE_SIZE`<br />
**CLI option**: `--experimental-search-queue-size`<br />
**Default value**: `1000`<br />
**Expected value**: an integer

Configure the maximum amount of simultaneous search requests. By default, Meilisearch queues up to 1000 search requests at any given moment. This limit exists to prevent Meilisearch from consuming an unbounded amount of RAM.

### Search query embedding cache <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_EMBEDDING_CACHE_ENTRIES`<br />
**CLI option**: `--experimental-embedding-cache-entries`<br />
**Default value**: `0`<br />
**Expected value**: an integer

Sets the size of the search query embedding cache. By default, Meilisearch generates an embedding for every new search query. When this option is set to an integer bigger than 0, Meilisearch returns a previously generated embedding if it recently performed the same query.

The least recently used entries are evicted first. Embedders with the same configuration share the same cache, even if they were declared in distinct indexes.

### Schedule snapshot creation

**Environment variable**: `MEILI_SCHEDULE_SNAPSHOT`<br />
**CLI option**: `--schedule-snapshot`<br />
**Default value**: disabled if not present, `86400` if present without a value<br />
**Expected value**: `None` or an integer

Activates scheduled snapshots. Snapshots are disabled by default.

It is possible to use `--schedule-snapshot` without a value. If `--schedule-snapshot` is present when launching an instance but has not been assigned a value, Meilisearch takes a new snapshot every 24 hours.

For more control over snapshot scheduling, pass an integer representing the interval in seconds between each snapshot. When `--schedule-snapshot=3600`, Meilisearch takes a new snapshot every hour. Meilisearch waits for the configured interval before creating the first scheduled snapshot.

<Note>
  When using the configuration file, it is also possible to explicitly pass a boolean value to `schedule_snapshot`. Meilisearch takes a new snapshot every 24 hours when `schedule_snapshot=true`, and takes no snapshots when `schedule_snapshot=false`.
</Note>

[Learn more about snapshots](/resources/self_hosting/data_backup/snapshots).

### Snapshot destination

**Environment variable**: `MEILI_SNAPSHOT_DIR`<br />
**CLI option**: `--snapshot-dir`<br />
**Default value**: `snapshots/`<br />
**Expected value**: a filepath pointing to a valid directory

Sets the directory where Meilisearch will store snapshots.

### Uncompressed snapshots <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_NO_SNAPSHOT_COMPACTION`<br />
**CLI option**: `--experimental-no-snapshot-compaction`<br />

Disables snapshot compression. This may significantly speed up snapshot creation at the cost of bigger snapshot files.

### Import snapshot

**Environment variable**: `MEILI_IMPORT_SNAPSHOT`<br />
**CLI option**: `--import-snapshot`<br />
**Default value**: `None`<br />
**Expected value**: a filepath pointing to a snapshot file

Launches Meilisearch after importing a previously-generated snapshot at the given filepath.

This command will throw an error if:

* A database already exists
* No valid snapshot can be found in the specified path

This behavior can be modified with the [`--ignore-snapshot-if-db-exists`](#ignore-snapshot-if-db-exists) and [`--ignore-missing-snapshot`](#ignore-missing-snapshot) options, respectively.

### Ignore missing snapshot

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_IGNORE_MISSING_SNAPSHOT`<br />
**CLI option**: `--ignore-missing-snapshot`

Prevents a Meilisearch instance from throwing an error when [`--import-snapshot`](#import-snapshot) does not point to a valid snapshot file.

This command will throw an error if `--import-snapshot` is not defined.

### Ignore snapshot if DB exists

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_IGNORE_SNAPSHOT_IF_DB_EXISTS`<br />
**CLI option**: `--ignore-snapshot-if-db-exists`

Prevents a Meilisearch instance with an existing database from throwing an error when using `--import-snapshot`. Instead, the snapshot will be ignored and Meilisearch will launch using the existing database.

This command will throw an error if `--import-snapshot` is not defined.

### Task webhook URL

**Environment variable**: `MEILI_TASK_WEBHOOK_URL`<br />
**CLI option**: `--task-webhook-url`<br />
**Default value**: `None`<br />
**Expected value**: a URL string

Notifies the configured URL whenever Meilisearch [finishes processing a task](/capabilities/indexing/tasks_and_batches/async_operations#task-status) or batch of tasks. Meilisearch uses the URL as given, retaining any specified query parameters.

The webhook payload contains the list of finished tasks in [ndjson](https://github.com/ndjson/ndjson-spec). For more information, [consult the dedicated task webhook guide](/resources/self_hosting/webhooks).

The task webhook option requires having access to a command-line interface. If you are using Meilisearch Cloud, use the [`/webhooks` API route](/reference/api/management/list-webhooks) instead.

### Task webhook authorization header

**Environment variable**: `MEILI_TASK_WEBHOOK_AUTHORIZATION_HEADER`<br />
**CLI option**: `--task-webhook-authorization-header`<br />
**Default value**: `None`<br />
**Expected value**: an authentication token string

Includes an authentication token in the authorization header when notifying the [webhook URL](#task-webhook-url).

### Maximum number of batched tasks <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_MAX_NUMBER_OF_BATCHED_TASKS`<br />
**CLI option**: `--experimental-max-number-of-batched-tasks`<br />
**Default value**: unlimited<br />
**Expected value**: an integer

Limit the number of tasks Meilisearch performs in a single batch. May improve stability in systems handling a large queue of resource-intensive tasks.

### Maximum batch payload size <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_LIMIT_BATCHED_TASKS_TOTAL_SIZE`<br />
**CLI option**: `--experimental-limit-batched-tasks-total-size`<br />
**Default value**: Half of total available memory, up to a maximum of 10 GiB<br />
**Expected value**: an integer

Sets a maximum payload size for batches in bytes. Smaller batches are less efficient, but consume less RAM and reduce immediate latency.

### Replication parameters <NoticeTag type="experimental" label="experimental" />

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_EXPERIMENTAL_REPLICATION_PARAMETERS`<br />
**CLI option**: `--experimental-replication-parameters`<br />
**Default value**: `None`<br />

Helps running Meilisearch in cluster environments. It does this by modifying task handling in three ways:

* Task auto-deletion is disabled
* Allows you to manually set task uids by adding a custom `TaskId` header to your API requests
* Allows you to dry register tasks by specifying a `DryRun: true` header in your request

### Disable new indexer <NoticeTag type="experimental" label="experimental" />

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_SETTINGS`<br />
**CLI option**: `--experimental-no-edition-2024-for-settings`<br />
**Default value**: `None`<br />

Falls back to previous settings indexer.

### Disable new indexer for dumps <NoticeTag type="experimental" label="experimental" />

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_DUMPS`<br />
**CLI option**: `--experimental-no-edition-2024-for-dumps`<br />
**Default value**: `None`<br />

Falls back to previous indexer when importing dumps.

### Enable logs route <NoticeTag type="experimental" label="experimental" />

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_EXPERIMENTAL_ENABLE_LOGS_ROUTE`<br />
**CLI option**: `--experimental-enable-logs-route`<br />
**Default value**: `None`<br />

Enables the `/logs/stream`, `/logs/stderr` and `DELETE /logs/stream` routes for log streaming and configuration.

### Enable metrics <NoticeTag type="experimental" label="experimental" />

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_EXPERIMENTAL_ENABLE_METRICS`<br />
**CLI option**: `--experimental-enable-metrics`<br />
**Default value**: `None`<br />

Enables the Prometheus `/metrics` endpoint for monitoring.

### CONTAINS filter operator <NoticeTag type="experimental" label="experimental" />

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_EXPERIMENTAL_CONTAINS_FILTER`<br />
**CLI option**: `--experimental-contains-filter`<br />
**Default value**: `None`<br />

Enables the `CONTAINS` filter operator at launch. It can also be toggled at runtime via the `/experimental-features` API route.

### Drop search after <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_DROP_SEARCH_AFTER`<br />
**CLI option**: `--experimental-drop-search-after`<br />
**Default value**: `60`<br />
**Expected value**: an integer (seconds)

Sets the maximum time in seconds a search request can take before being dropped. Helps prevent slow searches from blocking resources.

### Searches per core <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_NB_SEARCHES_PER_CORE`<br />
**CLI option**: `--experimental-nb-searches-per-core`<br />
**Default value**: `4`<br />
**Expected value**: an integer

Configures the number of concurrent search requests each CPU core can handle.

### Search personalization <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_PERSONALIZATION_API_KEY`<br />
**CLI option**: `--experimental-personalization-api-key`<br />
**Default value**: `None`<br />
**Expected value**: a Cohere API key

Enables search personalization. Must be a valid Cohere API key in string format.

### Allow requests to private networks <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_ALLOWED_IP_NETWORKS`<br />
**CLI option**: `--experimental-allowed-ip-networks`<br />
**Default value**: `None`<br />
**Expected value**: a list of comma-separated CIDR networks

Allow Meilisearch to query services running on private networks.

By default, Meilisearch will prevent any requests to a host resolving to a non-global IP, in the sense of
the [IANA IPv4 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml)
or the [IANA IPv6 Special-Purpose Address Registry](https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml).
This is done to prevent potential firewall bypasses (see our [blog post](https://www.meilisearch.com/blog/CVE-update-Jan-2026) on SSRF vulnerability).

You may want to allow requests to private networks to query internal services during webhooks or use local embedding services.
To do so, specify a list of comma-separated CIDR networks (e.g. `192.168.0.0/16,10.0.0.0/8`). You may specify `any` to allow all
requests regardless of target IP (use only in controlled environments, this is not recommended for production).

### Remote search timeout <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_REMOTE_SEARCH_TIMEOUT_SECONDS`<br />
**Default value**: `30`<br />
**Expected value**: a positive integer (seconds)

Sets the maximum time in seconds a remote federated search request can take before timing out. This configuration is only available via environment variable; no CLI flag is available.

### Disable FID-based database cleanup <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_DISABLE_FID_BASED_DATABASES_CLEANUP`<br />
**Default value**: `false`<br />
**Expected value**: a boolean

Allows you to opt out of the field ID-based database cleanup when upgrading from Meilisearch versions prior to v1.32. Set this to `true` if you experience issues during the upgrade process. This configuration is only available via environment variable; no CLI flag is available.

### S3 options <NoticeTag type="enterprise" label="Enterprise" />

<Note>
  S3 snapshot storage requires the Meilisearch Enterprise Edition. See [Enterprise and Community editions](/resources/self_hosting/enterprise_edition) for details.
</Note>

#### Bucket URL

**Environment variable**: `MEILI_S3_BUCKET_URL`<br />
**CLI option**: `--s3-bucket-url`<br />
**Default value**: `None`<br />

The URL for your S3 bucket. The URL must follow the format `https://s3.REGION.amazonaws.com`.

#### Bucket region

**Environment variable**: `MEILI_S3_BUCKET_REGION`<br />
**CLI option**: `--s3-bucket-region`<br />
**Default value**: `None`<br />

The region of your S3 bucket. Must be a valid AWS region, such as `us-east-1`.

#### Bucket name

**Environment variable**: `MEILI_S3_BUCKET_NAME`<br />
**CLI option**: `--s3-bucket-name`<br />
**Default value**: `None`<br />

The name of your S3 bucket.

#### Snapshot prefix

**Environment variable**: `MEILI_S3_SNAPSHOT_PREFIX`<br />
**CLI option**: `--s3-snapshot-prefix`<br />
**Default value**: `None`<br />

The path leading to the [snapshot directory](#snapshot-destination) in your S3 bucket. Uses normal slashes.

#### Access key

**Environment variable**: `MEILI_S3_ACCESS_KEY`<br />
**CLI option**: `--s3-access-key`<br />
**Default value**: `None`<br />

Your S3 bucket's access key.

#### Secret key

**Environment variable**: `MEILI_S3_SECRET_KEY`<br />
**CLI option**: `--s3-secret-key`<br />
**Default value**: `None`<br />

Your S3 bucket's secret key.

#### Role ARN <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_S3_ROLE_ARN`<br />
**CLI option**: `--experimental-s3-role-arn`<br />
**Default value**: `None`<br />

IAM role ARN for web identity federation. Use this instead of access key and secret key for authentication. Cannot be combined with `--s3-access-key` and `--s3-secret-key`.

#### Web identity token file <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_S3_WEB_IDENTITY_TOKEN_FILE`<br />
**CLI option**: `--experimental-s3-web-identity-token-file`<br />
**Default value**: `None`<br />

Path to the web identity token file for S3 authentication via web identity federation. Cannot be combined with `--s3-access-key` and `--s3-secret-key`.

#### Maximum parallel in-flight requests <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_S3_MAX_IN_FLIGHT_PARTS`<br />
**CLI option**: `--experimental-s3-max-in-flight-parts`<br />
**Default value**: `10`<br />

The maximum number of in-flight multipart requests Meilisearch should send to S3 in parallel.

#### Compression level <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_S3_COMPRESSION_LEVEL`<br />
**CLI option**: `--experimental-s3-compression-level`<br />
**Default value**: `0`<br />

The compression level to use for the snapshot tarball. Defaults to 0, no compression.

#### Signature duration <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_S3_SIGNATURE_DURATION_SECONDS`<br />
**CLI option**: `--experimental-s3-signature-duration-seconds`<br />
**Default value**: `28800`<br />

The maximum duration processing a snapshot can take. Defaults to 8 hours.

#### Multipart section size <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_S3_MULTIPART_PART_SIZE`<br />
**CLI option**: `--experimental-s3-multipart-part-size`<br />
**Default value**: `None`<br />

The size of each multipart section. Must be >10MiB and \<8GiB. Defaults to 375MiB, which enables databases of up to 3.5TiB.

### SSL options

#### SSL authentication path

**Environment variable**: `MEILI_SSL_AUTH_PATH`<br />
**CLI option**: `--ssl-auth-path`<br />
**Default value**: `None`<br />
**Expected value**: a filepath

Enables client authentication in the specified path.

#### SSL certificates path

**Environment variable**: `MEILI_SSL_CERT_PATH`<br />
**CLI option**: `--ssl-cert-path`<br />
**Default value**: `None`<br />
**Expected value**: a filepath pointing to a valid SSL certificate

Sets the server's SSL certificates.

Value must be a path to PEM-formatted certificates. The first certificate should certify the KEYFILE supplied by `--ssl-key-path`. The last certificate should be a root CA.

#### SSL key path

**Environment variable**: `MEILI_SSL_KEY_PATH`<br />
**CLI option**: `--ssl-key-path`<br />
**Default value**: `None`<br />
**Expected value**: a filepath pointing to a valid SSL key file

Sets the server's SSL key files.

Value must be a path to an RSA private key or PKCS8-encoded private key, both in PEM format.

#### SSL OCSP path

**Environment variable**: `MEILI_SSL_OCSP_PATH`<br />
**CLI option**: `--ssl-ocsp-path`<br />
**Default value**: `None`<br />
**Expected value**: a filepath pointing to a valid OCSP certificate

Sets the server's OCSP file. *Optional*

Reads DER-encoded OCSP response from OCSPFILE and staple to certificate.

#### SSL require auth

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_SSL_REQUIRE_AUTH`<br />
**CLI option**: `--ssl-require-auth`<br />
**Default value**: `None`

Makes SSL authentication mandatory.

Sends a fatal alert if the client does not complete client authentication.

#### SSL resumption

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_SSL_RESUMPTION`<br />
**CLI option**: `--ssl-resumption`<br />
**Default value**: `None`

Activates SSL session resumption.

#### SSL tickets

<Warning>
  🚩 This option does not take any values. Assigning a value will throw an error. 🚩
</Warning>

**Environment variable**: `MEILI_SSL_TICKETS`<br />
**CLI option**: `--ssl-tickets`<br />
**Default value**: `None`

Activates SSL tickets.
