﻿---
title: Plugins and custom configuration files
description: Install Elasticsearch plugins and supply custom configuration files to your nodes, using the approach that matches your deployment type.
url: https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files
products:
  - Elastic Cloud Enterprise
  - Elastic Cloud Hosted
  - Elastic Cloud on Kubernetes
  - Elastic Documentation
  - Elastic Stack
  - Elasticsearch
  - Kibana
applies_to:
  - Elastic Cloud Serverless: Unavailable
  - Elastic Stack: Generally available
---

# Plugins and custom configuration files
Use plugins and custom configuration files to extend Elasticsearch's core functionality with additional analyzers, discovery providers, ingest processors, field types, scripting languages, and dictionaries.
There are two ways to extend Elasticsearch:
- **[Plugins](https://docs-v3-preview.elastic.dev/elastic/docs-builder/docs/4384/reference/elasticsearch/plugins)** are packages installed in Elasticsearch. Use them to add capabilities such as language and phonetic analysis, ingest processors for attachments or geo-IP data, additional field types, cloud discovery providers, or scripting languages. Official core plugins are maintained with Elasticsearch and share its version number. Community and custom plugins are maintained separately and can cover the same kinds of extensions when a core plugin is not available. You can also [build your own](https://docs-v3-preview.elastic.dev/elastic/docs-builder/docs/4384/extend/elasticsearch) if no existing plugin covers what you need.
- **Custom configuration files** are files that you supply and Elasticsearch reads at runtime, such as synonym dictionaries, SAML metadata, GeoIP databases, or certificates. The way these are installed depends on where you run Elasticsearch: on Elastic Cloud Hosted and Elastic Cloud Enterprise you package them as ZIP archives called *bundles*, on Elastic Cloud on Kubernetes you mount them from ConfigMaps or Secrets, and in self-managed clusters you place them in each node's configuration directory.

To change Elasticsearch or Kibana settings in files such as `elasticsearch.yml` and `kibana.yml`, refer to [Elastic Stack settings](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/stack-settings) instead.
<admonition title="Elastic Cloud Serverless support">
  You cannot upload custom plugins, bundles, or dictionary files such as synonyms, stop words, or [language analyzers](https://docs-v3-preview.elastic.dev/elastic/docs-builder/docs/4384/reference/text-analysis/analysis-lang-analyzer) to Elastic Cloud Serverless projects. Instead:
  - The [core analysis plugins](https://docs-v3-preview.elastic.dev/elastic/docs-builder/docs/4384/reference/elasticsearch/plugins/analysis-plugins#_core_analysis_plugins) are included by default. Their analyzers can be [specified](https://www.elastic.co/elastic/docs-builder/docs/4384/manage-data/data-store/text-analysis/specify-an-analyzer) like any built-in analyzer.
  - To manage synonyms, use the [synonyms APIs](https://www.elastic.co/docs/api/doc/elasticsearch-serverless/group/endpoint-synonyms) or refer to [Search with synonyms](https://www.elastic.co/elastic/docs-builder/docs/4384/solutions/search/full-text/search-with-synonyms).
</admonition>


## Manage plugins and custom configuration files by deployment type

How you install plugins, and how you supply custom configuration files such as synonym dictionaries or SAML metadata, depends on your [deployment type](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/deploy).

| Deployment type                 | Elasticsearch plugins                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Custom configuration files                                                                                                                                                                     |
|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Elastic Cloud Hosted**        | [Enable a provided plugin](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/elastic-cloud/add-plugins-provided-with-ech) or [upload your own](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/elastic-cloud/upload-custom-plugins-bundles), from the console or [through the API](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/elastic-cloud/manage-plugins-extensions-through-api) | [Upload as a custom bundle](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/elastic-cloud/upload-custom-plugins-bundles)            |
| **Elastic Cloud Enterprise**    | [Enable a provided plugin](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/cloud-enterprise/add-plugins-provided-with-ece) or [add your own](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/cloud-enterprise/add-custom-bundles-plugins) from a ZIP URL                                                                                                                                                                                         | [Add as a custom bundle](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/cloud-enterprise/add-custom-bundles-plugins)               |
| **Self-managed**                | [Use the `elasticsearch-plugin` CLI](/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/self-managed/manage-plugins#self-managed-plugins-cli), or a [declarative configuration file](/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/self-managed/manage-plugins#self-managed-plugins-docker) with the Docker image                                                                                                                                                                             | Place in each node's [configuration directory](/elastic/docs-builder/docs/4384/deploy-manage/deploy/self-managed/configure-elasticsearch#config-files-location)                                |
| **Elastic Cloud on Kubernetes** | [Build a custom container image](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/deploy/cloud-on-k8s/create-custom-images), or [install with init containers](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/cloud-on-k8s/init-containers-for-plugin-downloads)                                                                                                                                                                                                                        | [Mount with ConfigMaps or Secrets](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/cloud-on-k8s/custom-configuration-files-plugins) |

On Elastic Cloud Hosted and Elastic Cloud Enterprise, plugins provided by the platform are upgraded with your deployment automatically, unless there are breaking changes. When you upgrade, plugins and custom configuration files that you supply must be updated to match the new Elasticsearch version: update your custom plugins and bundles on Elastic Cloud Hosted and Elastic Cloud Enterprise, rebuild your custom image on Elastic Cloud on Kubernetes, and reinstall plugins on each node of a self-managed cluster. Refer to [Prepare to upgrade](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/upgrade/prepare-to-upgrade) for the checks to run before you upgrade.

### Add Kibana plugins

Kibana plugins add features to the Kibana UI. How you install them, and whether they are supported, depends on your deployment type:
- **Elastic Cloud Hosted**: Kibana plugins [are not supported](/elastic/docs-builder/docs/4384/deploy-manage/deploy/elastic-cloud/restrictions-known-problems#ec-restrictions-plugins).
- **Elastic Cloud Enterprise**: supported in certain cases, by [including the plugins in a custom Kibana image](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/cloud-enterprise/ece-include-additional-kibana-plugin) and updating your stack pack.
- **Elastic Cloud on Kubernetes**: [build a custom Kibana image](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/plugins-and-custom-configuration-files/cloud-on-k8s/k8s-kibana-plugins) that already includes the plugins.
- **Self-managed**: install plugins on each Kibana instance with the [`kibana-plugin` CLI](https://docs-v3-preview.elastic.dev/elastic/docs-builder/docs/4384/reference/kibana/kibana-plugins), then restart Kibana.


## Related resources

- [Elasticsearch plugins reference](https://docs-v3-preview.elastic.dev/elastic/docs-builder/docs/4384/reference/elasticsearch/plugins): Official plugins and settings.
- [Stack settings](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/stack-settings): Configure `elasticsearch.yml`, `kibana.yml`, and related settings by deployment type.
- [Secure settings](https://www.elastic.co/elastic/docs-builder/docs/4384/deploy-manage/security/secure-settings): Store sensitive values in the Elasticsearch or Kibana keystore.