MCPcopy Index your code
hub / github.com/cars10/elasticvue

github.com/cars10/elasticvue @v1.15.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.15.0 ↗ · + Follow
465 symbols 1,167 edges 183 files 2 documented · 0% updated 30d agov1.15.0 · 2026-05-12★ 2,6949 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

elasticvue

Donate Chrome web store Edge extension Firefox addon Docker build

Elasticsearch gui for your browser https://elasticvue.com

Elasticsearch is a trademark of Elasticsearch BV, registered in the U.S. and in other countries.

Demo

Contents

  1. About
  2. Usage
  3. Browser support
  4. Troubleshooting
  5. Comparing with other frontends
  6. i18n
  7. Contributing

About

Screenshots

Elasticvue is a free and open-source gui for elasticsearch that you can use to manage the data in your cluster. It supports every version of elasticsearch, even those that are EOL. Check the FAQ for more details.

Features

  • Cluster overview
  • Index & alias management
  • Shard management
  • Searching and editing documents
  • Rest queries
  • Snapshot & repository management
  • ... and much more

Usage

You can use elasticvue in several ways, use whatever works best for you.

Type Auto Update Cluster config Support for self signed ssl
Desktop app Yes not needed yes
Browser extension Yes not needed partially
Web Yes required partially
Self hosted No required partially
Docker No required partially

Desktop App - recommended

Browser extension

Web version

You have to configure your elasticsearch cluster if you want to use elasticvue via docker

Visit https://app.elasticvue.com.

Self-hosted

You have to configure your elasticsearch cluster if you want to self host elasticvue

Please check the wiki for more information.

Docker

You have to configure your elasticsearch cluster if you want to use elasticvue via docker

Use the existing image:

# docker hub:
docker run -p 8080:8080 --name elasticvue -d cars10/elasticvue

# ghcr.io:
docker run -p 8080:8080 --name elasticvue -d ghcr.io/cars10/elasticvue

When using docker you can provide default cluster configuration for your users. Clusters will automatically be imported every time you start elasticvue. You can either set an environment variable or provide a config file as a volume. In either case the content should be a json array of your clusters, looking like this:

[
  {
    "name": "dev cluster",
    "uri": "http://localhost:9200"
  },
  {
    "name": "prod cluster",
    "uri": "http://localhost:9501",
    "username": "elastic",
    "password": "foobar"
  }
]

Possible keys

Name Value Required Example
name Name of the cluster No "production"
uri Cluster uri Yes "http://localhost:9200"
username Username for basic authentication No "elastic"
password Password for basic authentication No "foobar"
apiKey API key for authentication No "VuaCfGcBCdbkQm-e5aOx:ui2lp2axTNm5ShWDc11v6g"
S3accessKeyId AWS access key ID for IAM authentication No "AKIAIOSFODNN7EXAMPLE"
S3secretAccessKey AWS secret access key for IAM authentication No "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
S3sessionToken AWS session token for temporary credentials No "FQoGZXIvYXdzE...example"
S3region AWS region for IAM authentication No "us-east-1"

Docker with default clusters in environment variable

Example using environment variable ELASTICVUE_CLUSTERS:

docker run -p 8080:8080 -e ELASTICVUE_CLUSTERS='[{"name": "prod cluster", "uri": "http://localhost:9200", "username": "elastic", "password": "elastic"}]' cars10/elasticvue

Docker with default clusters in config file via volume

Example using config file volume to /usr/share/nginx/html/api/default_clusters.json:

echo '[{"name": "prod cluster", "uri": "http://localhost:9200", "username": "elastic", "password": "elastic"}]' > config.json
docker run -p 8080:8080 -v config.json:/usr/share/nginx/html/api/default_clusters.json cars10/elasticvue

Elasticsearch configuration

You have to enable CORS to allow connection to your elasticsearch cluster if you do not use the desktop app or the browser extensions.

Find your elasticsearch configuration (for example /etc/elasticsearch/elasticsearch.yml) and add the following lines:

# enable CORS
http.cors.enabled: true

# Then set the allowed origins based on how you run elasticvue. Chose only one:
# for docker / running locally
http.cors.allow-origin: "http://localhost:8080"
# online version
http.cors.allow-origin: /https?:\/\/app.elasticvue.com/

# and if your cluster uses authorization you also have to add:
http.cors.allow-headers: X-Requested-With,Content-Type,Content-Length,Authorization

If you use docker to run your elasticsearch cluster you can pass the options via environment variables:

docker run -p 9200:9200 \
           -e "discovery.type=single-node" \
           -e "http.cors.enabled=true" \
           -e "http.cors.allow-origin=/.*/" \
           -e "http.cors.allow-headers=X-Requested-With,Content-Type,Content-Length,Authorization" \
           docker.elastic.co/elasticsearch/elasticsearch:9.0.0

or compose.yml

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:9.0.0
    ports:
      - "9200:9200"
    environment:
      - http.cors.enabled=true
      - http.cors.allow-origin="/.*/"
      - http.cors.allow-headers=X-Requested-With,Content-Type,Content-Length,Authorization
      - discovery.type=single-node

After configuration restart your cluster and you should be able to connect.

Browser Support

Any current version of Chrome, Firefox and Edge should work without issues. Safari is mostly untested so your mileage may vary.

Troubleshooting

Before opening an issue please try to reset elasticvue to its default settings:

  1. Open the settings
  2. Download a backup of your current elasticvue data
  3. Click Disconnect and reset

This will reset all your saved filters, and you have to reconnect to your cluster. Please open an issue if your problem persists.

Comparing with other frontends

See the Wiki. Comparing to other frontends

i18n

Elasticvue is available in the following languages:

  • english
  • chinese
  • french
  • russian
  • japanese
  • italian

Contributing

See CONTRIBUTING.md.

License

MIT

Extension points exported contracts — how you extend this code

SnapshotPolicyConfig (Interface)
(no doc)
src/types/snapshotPolicies.ts
SnackbarState (Interface)
(no doc)
src/store/snackbar.ts
IndexGetArgs (Interface)
(no doc)
src/services/ElasticsearchAdapter.ts
RequestState (Interface)
(no doc)
src/composables/CallElasticsearch.ts
DbSchema (Interface)
(no doc)
src/db/types.ts
SnapshotPolicyRetention (Interface)
(no doc)
src/types/snapshotPolicies.ts
SnackbarSuccessOptions (Interface)
(no doc)
src/composables/Snackbar.ts
SnapshotPolicy (Interface)
(no doc)
src/types/snapshotPolicies.ts

Core symbols most depended-on inside this repo

request
called by 52
src/services/ElasticsearchAdapter.ts
cleanIndexName
called by 30
src/helpers/cleanIndexName.ts
useTranslation
called by 24
src/composables/i18n.ts
callElasticsearch
called by 22
src/composables/CallElasticsearch.ts
filterItems
called by 18
src/helpers/filters.ts
getTableOptionsToApply
called by 17
src/helpers/search/searchQueryTableOptions.ts
setupClusterConnection
called by 16
tests/e2e/helpers.ts
useElasticsearchAdapter
called by 15
src/composables/CallElasticsearch.ts

Shape

Function 339
Method 84
Class 18
Interface 17
Enum 7

Languages

TypeScript98%
Rust2%

Modules by API surface

src/services/ElasticsearchAdapter.ts62 symbols
src/db/indexeddb.ts18 symbols
scripts/website_screenshots.js17 symbols
src/composables/CodeEditor.ts13 symbols
src/store/connection.ts10 symbols
src/helpers/fetch.ts10 symbols
src/composables/components/search/SearchResultsTable.ts10 symbols
src/types/snapshotPolicies.ts8 symbols
src/composables/components/rest/RestQueryTabs.ts8 symbols
src/composables/Snackbar.ts8 symbols
src/composables/CallElasticsearch.ts8 symbols
src/composables/components/rest/RestQuery.ts7 symbols

For agents

$ claude mcp add elasticvue \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact