﻿---
title: Manage plugins on Elasticsearch self-managed deployments
description: Install Elasticsearch plugins on self-managed clusters with a Docker config file or the CLI, and place shared config files on each node.
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/manage-plugins
products:
  - Elasticsearch
applies_to:
  - Self-managed Elastic deployments: Generally available
---

# Manage plugins on Elasticsearch self-managed deployments
How you manage plugins depends on how you run Elasticsearch. Use a declarative configuration file with the official Docker image, or the `elasticsearch-plugin` CLI for package and archive installs.
To make synonym dictionaries, scripts, SAML metadata, or similar files available to Elasticsearch, place them on each node's [configuration directory](/elastic/docs-content/pull/7959/deploy-manage/deploy/self-managed/configure-elasticsearch#config-files-location) and reference them from your settings. This is the self-managed equivalent of *bundles* on Elastic Cloud Hosted and Elastic Cloud Enterprise, which package those files as ZIP extensions rather than placing them directly on disk.
Refer to [Plugins and bundles](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles) for options that apply to other deployment types.

## Manage plugins with the Docker image

If you run Elasticsearch using the [official Elasticsearch Docker image](https://www.docker.elastic.co/), declare the plugins you want in `elasticsearch-plugins.yml` in the configuration directory, alongside `elasticsearch.yml`.
Each time the container starts, Elasticsearch compares that list with the plugins currently installed and installs, removes, or upgrades them so the running set matches the file. Official plugins are also upgraded when you upgrade Elasticsearch. To change the set of plugins, edit the file and restart the container. Do not run `elasticsearch-plugin install` or `remove` when the configuration file is present; those commands are disabled.
Refer to [Manage plugins using a configuration file](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/manage-plugins-using-configuration-file) for the file format, unofficial plugin locations, and proxy settings. You can also [require mandatory plugins](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/mandatory-plugins) so a node refuses to start if a critical plugin is missing.

## Manage plugins with package and archive installs

For all other installation methods, use the `elasticsearch-plugin` command-line tool to [install](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/install-plugins), [list, remove, and update](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/list-remove-update) plugins on each node. You can also [install multiple plugins](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/install-multiple-plugins) in a single command, or install from a [custom URL or file system](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/custom-url). The tool lives under `$ES_HOME/bin` by default; the exact path depends on your package. See [Plugins directory](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/plugins-directory).
After you install a plugin, restart each node before it becomes available. You can [require mandatory plugins](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/mandatory-plugins) so a node refuses to start if a critical plugin is missing. For silent, verbose, and related options, refer to [Other command line parameters](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/other-command-line-parameters).