Elasticsearch Head

A web front end for an elastic search cluster
Alternatives To Elasticsearch Head
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Elasticsearch Head8,220
2 years ago165otherJavaScript
A web front end for an elastic search cluster
Prestissimo6,33176452 years ago36February 16, 202038mitPHP
composer parallel install plugin
Docker Maven Plugin2,5768522 years ago305January 15, 202020apache-2.0Java
INACTIVE: A maven plugin for Docker
a year ago17January 16, 202139otherJavaScript
🗣️ Simple self-hosted node app for Disqus-like drop-in commenting on static websites
Login Flow1,601
6 years ago16mitJavaScript
:key: A login/register flow built with React&Redux
Gitlab Plugin1,418
a day ago237gpl-2.0Java
A Jenkins plugin for interfacing with GitLab
Sudo_pair1,1691110 months ago5March 27, 202016apache-2.0Rust
Plugin for sudo that requires another human to approve and monitor privileged sudo sessions
Core.js1,0798416a day ago60July 10, 202314mitTypeScript
Extendable client for GitHub's REST & GraphQL APIs
Nativescript Plugin Firebase1,018125126 months ago159November 05, 2020594mitTypeScript
:fire: NativeScript plugin for Firebase
2 years ago25gpl-3.0Java
🐲 A proxy to allow Minecraft: Bedrock clients to connect to Minecraft: Java Edition servers.
Alternatives To Elasticsearch Head
Select To Compare

Alternative Project Comparisons


A web front end for an Elasticsearch cluster



There are multiple ways of running elasticsearch-head.

Running with built in server

  • git clone git://github.com/mobz/elasticsearch-head.git
  • cd elasticsearch-head
  • npm install
  • npm run start

This will start a local webserver running on port 9100 serving elasticsearch-head

Running with docker

  • for Elasticsearch 5.x: docker run -p 9100:9100 mobz/elasticsearch-head:5
  • for Elasticsearch 2.x: docker run -p 9100:9100 mobz/elasticsearch-head:2
  • for Elasticsearch 1.x: docker run -p 9100:9100 mobz/elasticsearch-head:1
  • for fans of alpine there is mobz/elasticsearch-head:5-alpine

Running as a Chrome extension

  • Install ElasticSearch Head from the Chrome Web Store.
  • Click the extension icon in the toolbar of your web browser.
  • Note that you don’t need to enable CORS with this method.

Running as a plugin of Elasticsearch (deprecated)

  • for Elasticsearch 5.x, 6.x, and 7.x: site plugins are not supported. Run as a standalone server
  • for Elasticsearch 2.x: sudo elasticsearch/bin/plugin install mobz/elasticsearch-head
  • for Elasticsearch 1.x: sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head/1.x
  • for Elasticsearch 0.x: sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head/0.9
  • open http://localhost:9200/_plugin/head/

This will automatically download the appropriate version of elasticsearch-head from github and run it as a plugin within the elasticsearch cluster. In this mode elasticsearch-head automatically connects to the node that is running it

Running with the local proxy

This is an experimental feature which creates a local proxy for many remote elasticsearch clusters

  • configure clusters in proxy/clusters
  • create a file per remote cluster you want to connect to ( see localhost9200.json as example )
  • requires node >= 6.0
  • npm install
  • npm run proxy

At the moment it only works with grunt server running on http://localhost:9100


  • File System: elastisearch-head is a standalone webapp written in good-ol’ html5. This means, you can put it up on any webserver, run it directly from the filesystem. It’ll even fit on a floppy disk.
  • DEB package: There is an unofficial deb package. the plugin executable will be available at /usr/share/elasticsearch/bin/plugin.
  • Homebrew: There is an unofficial keg. The plugin executable will be available at /usr/local/Cellar/elasticsearch/(elasticsearch version)/libexec/bin/plugin.

Connecting to elasticsearch

By default elasticsearch exposes a http rest API on port 9200 which elasticsearch-head connects to.

Enable CORS in elasticsearch

When not running as a Chrome extension or as a plugin of elasticsearch (which is not even possible from version 5), you must enable CORS in elasticsearch, or else your browser will reject elasticsearch-head’s requests due to violation of the same-origin policy.

In elasticsearch configuration;

  • add http.cors.enabled: true
  • you must also set http.cors.allow-origin because no origin allowed by default. http.cors.allow-origin: "*" is valid value, however it’s considered as a security risk as your cluster is open to cross origin from anywhere.

Basic Authentication

elasticsearch-head will add basic auth headers to each request if you pass in the correct url parameters
You will also need to add http.cors.allow-headers: Authorization to the elasticsearch configuration


elasticsearch x-pack requires basic authentication and CORS as described above. Make sure you have the correct CORS setup and then open es-head with a url like “http://localhost:9100/?auth_user=elastic&auth_password=changeme”

URL Parameters

Parameters may be appended to the url to set an initial state eg. head/index.html?base_uri=http://node-01.example.com:9200

  • base_uri force elasticsearch-head to connect to a particular node.
  • dashboard experimental feature to open elasticsearch-head in a mode suitable for dashboard / radiator. Accepts one parameter dashboard=cluster
  • auth_user adds basic auth credentials to http requests ( requires elasticsearch-http-basic plugin or a reverse proxy )
  • auth_password basic auth password as above (note: without additional security layers, passwords are sent over the network in the clear )
  • lang force elasticsearch-head to use specified ui language (eg: en, fr, pt, zh, zh-TW, tr, ja)


To contribute to elasticsearch-head you will need the following developer tools

  1. git and a github account
  2. node
  3. grunt-cli
  4. (to run jasmine tests) phantomjs


  1. create a fork of elasticsearch-head on github
  2. clone your fork to your machine
  3. cd elasticsearch-head
  4. npm install # downloads node dev dependencies
  5. grunt dev # builds the distribution files, then watches the src directory for changes (if you have an warning like "Warning: Task “clean” failed. Use —force to continue.", well use —force ;) )

Changes to both _site and src directories must be committed, to allow people to
run elasticsearch-head without running dev tools and follow existing dev patterns,
such as indenting with tabs.

Contributing an Internationalisation

To contribute an internationalisation

  1. Follow “Contributing” instructions above
  2. Find your 2-character ISO 639-1 language code
  3. edit site/index.html to add your 2 letter language code to the data-langs attribute of this line @here">@
  4. make a copy of src/app/langs/en_strings.js prefixed with your language code
  5. convert english strings and fragments to your language. Formatting Rules
  6. Submit a pull request

ClusterOverview Screenshot

Popular Plugin Projects
Popular Authentication Projects
Popular Libraries Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.