{"id":13388518,"url":"https://github.com/appbaseio/dejaVu","last_synced_at":"2025-03-13T13:32:14.582Z","repository":{"id":39304078,"uuid":"51018409","full_name":"appbaseio/dejavu","owner":"appbaseio","description":"A Web UI for Elasticsearch and OpenSearch: Import, browse and edit data with rich filters and query views, create reference search UIs.","archived":false,"fork":false,"pushed_at":"2024-10-31T02:18:18.000Z","size":97375,"stargazers_count":8412,"open_issues_count":61,"forks_count":513,"subscribers_count":126,"default_branch":"dev","last_synced_at":"2025-03-10T17:13:11.505Z","etag":null,"topics":["appbaseio","chrome-extension","database","database-gui","dejavu","elasticsearch","elasticsearch-gui","elasticsearch-plugin","nosql","opensearch","opensearch-plugins","react","reactjs","realtime-updates"],"latest_commit_sha":null,"homepage":"https://dejavu.reactivesearch.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/appbaseio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-02-03T17:48:09.000Z","updated_at":"2025-03-10T05:28:58.000Z","dependencies_parsed_at":"2024-11-18T08:14:56.623Z","dependency_job_id":null,"html_url":"https://github.com/appbaseio/dejavu","commit_stats":{"total_commits":583,"total_committers":19,"mean_commits":30.68421052631579,"dds":0.5420240137221269,"last_synced_commit":"f722d57eaeae0e598a3471f7000f245f5c165c13"},"previous_names":[],"tags_count":72,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fdejavu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fdejavu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fdejavu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fdejavu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/appbaseio","download_url":"https://codeload.github.com/appbaseio/dejavu/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243414500,"owners_count":20287132,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appbaseio","chrome-extension","database","database-gui","dejavu","elasticsearch","elasticsearch-gui","elasticsearch-plugin","nosql","opensearch","opensearch-plugins","react","reactjs","realtime-updates"],"created_at":"2024-07-30T13:00:42.967Z","updated_at":"2025-03-13T13:32:12.906Z","avatar_url":"https://github.com/appbaseio.png","language":"JavaScript","readme":"# dejavu: The Web UI for OpenSearch and Elasticsearch\n\n[![GitHub License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/appbaseio/dejavu/dev/LICENSE.md) ![React Version](https://img.shields.io/badge/react-v16.6-brightgreen.svg)\n[![Docker Pulls](https://img.shields.io/docker/pulls/appbaseio/dejavu.svg)](https://hub.docker.com/r/appbaseio/dejavu/)\n\n1. **[Dejavu: Intro](#1-dejavu-intro)**\n2. **[Features](#2-features)**  \n   a. [Easily Connect to Indices](#easily-connect-and-remember-indices)  \n   b. [Visual Filters](#visual-filters)  \n   c. [Modern UI Elements](#modern-ui-elements)  \n   d. [Import JSON or CSV Data](#import-json-or-csv-data)  \n   e. [Build search UIs](#build-search-uis)\n3. **[Comparison](#3-comparison-with-other-data-browsers)**\n4. **[Roadmap](#4-roadmap)**\n5. **[Build Locally / Contributing](#5-build-locally)**\n6. **[Get Dejavu](#6-get-dejavu)**  \n   a. [Docker Installation](#docker-installation)  \n   b. [Hosted Alternatives](#hosted-alternatives)\n\n---\n\n### 1. Dejavu Intro\n\n**Dejavu** is a modern web UI for OpenSearch and Elasticsearch.\n\nIt was designed with the goal of providing a seamless user experience, featuring no page reloads, infinite scroll, filtered views, real-time updates, and a search UI builder. With 100% client-side rendering, Dejavu can easily be run as a [hosted app on github pages](https://dejavu.reactivesearch.io) or [as a docker image](https://hub.docker.com/r/appbaseio/dejavu/).\n\nStarting `v1.0`, dejavu is the only Elasticsearch web UI that supports importing data via JSON and CSV files, as well as defining field mappings from the GUI.\n\nStarting with `v1.5`, we support the ability of creating custom headers so you can easily pass different authentication headers, provide enhanced filtering and bulk updating of data via Elasticsearch's Query DSL.\n\nStarting with `v2.0`, we support the ability to build faceted search UIs to test relevancy. You can also export the generated code to a codesandbox.\n\nStarting with `v3.0`, we support the ability to connect to multiple indexes. You can also globally search across your indexes using global search bar.\n\n### 2. Features\n\n#### Easily Connect and Remember Indices\n\n![Connect to an Index](https://raw.githubusercontent.com/appbaseio/dejavu/dev/media/f1.gif)\n\nDejavu allows you to connect to any index present in your cluster and caches each connected index locally, making them easily accessible when browsing again.\n\n#### Visual Filters\n\n![Filter Views](https://raw.githubusercontent.com/appbaseio/dejavu/dev/media/f2.gif)\n\nSort through data, find information visually, hide irrelevant data, and make sense of everything using the native data types. The global search bar allows you to perform text searches across your dataset.\n\nAdditionally, any filtered view can be exported as a JSON or CSV file.\n\n#### Modern UI Elements\n\n![Pagination](https://raw.githubusercontent.com/appbaseio/dejavu/dev/media/f3.gif)\n\nIt's not uncommon to have thousands of documents in your index. Dejavu supports a paginated view that also allows you to change the page size.\n\nDejavu also supports browsing data from multiple indexes and types, updating data either individually or via queries in bulk. Deletions are also supported.\n\n#### Import JSON or CSV Data\n\n![Import JSON or CSV files](https://raw.githubusercontent.com/appbaseio/dejavu/dev/media/f4.gif)\n\nThe importer view allows you to import CSV or JSON data directly into Elasticsearch through a guided data mapping configuration.\n\n#### Build Search UIs\n\n![Build search UIs](https://raw.githubusercontent.com/appbaseio/dejavu/dev/media/f5.gif)\n\nWith Search Preview, you can now build visual search UIs, test search relevancy, and export code to CodeSandbox.\n\n---\n\n### 3. Comparison with other data browsers\n\n| Features           | dejavu                                                                              | [ES-head](https://github.com/mobz/elasticsearch-head)                        | [ES-kopf](https://github.com/lmenezes/elasticsearch-kopf)                 | [ES-browser](https://github.com/OlegKunitsyn/elasticsearch-browser)                     | [Kibana](https://github.com/elastic/kibana)                             |\n| :----------------- | :---------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | :------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------- | :---------------------------------------------------------------------- |\n| Installation       | Docker image, Hosted app                                                            | Elasticsearch plugin, static page                                            | Elasticsearch plugin, static page                                         | Elasticsearch plugin (doesn't work with 2.0+)                                           | Elasticsearch plugin                                                    |\n| Modern UI          | React 16.6.                                                                         | jQuery 1.6.1, slightly stodgy                                                | Angular 1.x                                                               | ExtJs, a bit stodgy                                                                     | Node.JS, Hapi, Jade                                                     |\n| Browser features   | [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete), data filters | Read data, full-text search                                                  | ❌                                                                        | Data view for a single type                                                             | Read view, visualizations, charting                                     |\n| Data import/export | ✔️ JSON, CSV                                                                        | ❌                                                                           | ❌                                                                        | ❌                                                                                      | Only export, no CSV                                                     |\n| Search preview     | Visually build and test search UI                                                   | ❌                                                                           | ❌                                                                        | ❌                                                                                      | ❌                                                                      |\n| License            | [MIT](https://github.com/appbaseio/dejavu/blob/dev/LICENSE.md)                      | [Apache 2.0](https://github.com/mobz/elasticsearch-head/blob/master/LICENCE) | [MIT](https://github.com/lmenezes/elasticsearch-kopf/blob/master/LICENSE) | [Apache 2.0](https://github.com/OlegKunitsyn/elasticsearch-browser/blob/master/LICENSE) | [Apache 2.0](https://github.com/elastic/kibana/blob/master/LICENSE.txt) |\n\n---\n\n### 4. Roadmap\n\n~~Here's a rough roadmap of things to come in the version `1.0.0` release.~~\n\n🎆 We just hit the 1.0.0 roadmap:\n\n-   [x] Battle-testing with different datasets\n-   [x] Feature support for advanced filtering\n        ~~Offline detection and reconnection for realtime updates~~\n-   [x] Performance improvements while scrolling\n-   [x] Support for importing and exporting data\n-   [x] Support for a continuous query view\n-   [x] Available as a docker image\n\n🍾 We just hit the 2.0.0 release:\n\n-   [x] An intuitive data editing experience in tabular mode (v/s JSON edit mode)\n-   [x] View data types from within the data browser view\n-   [x] A more streamlined import process\n-   [x] Refactor codebase to improve hackability (Migrate to React 16+, ES6 syntax)\n-   [x] Ability to build (and test) search visually\n\n✨ We just hit the 3.0.0 release:\n\n-   [x] Rewrite dejavu browser for high performance when browsing large datasets\n-   [x] Add support for browsing multiple indexes\n-   [x] Powerful filtering of data with field level facet based filters and a global search\n-   [x] Built on React 16.6 and future compatible with React 17\n-   [x] A more intuitive data editing experience (in addition to the raw JSON, we now show a relevant UI field with validations)\n\n---\n\n### 5. Build Locally\n\nSee the **[contributing guidelines](./CONTRIBUTING.md)**.\n\n---\n\n### 6. Get Dejavu\n\n#### Docker Installation\n\n```sh\ndocker run -p 1358:1358 -d appbaseio/dejavu\nopen http://localhost:1358/\n```\n\nYou can also run a specific version of **dejavu** by specifying a tag. For example, version `3.6.0` can be used by specifying the `docker run -p 1358:1358 appbaseio/dejavu:3.6.0` command.\n\n##### Cross-origin resource sharing (CORS)\n\nTo make sure you enable CORS settings for your Elasticsearch instance, add the following lines in the `elasticsearch.yml` configuration file.\n\n```yaml\nhttp.port: 9200\nhttp.cors.allow-origin: 'http://localhost:1358'\nhttp.cors.enabled: true\nhttp.cors.allow-headers: X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization\nhttp.cors.allow-credentials: true\n```\n\nIf you are running your Elasticsearch with docker-compose, you can refer to the example [reference here](https://github.com/appbaseio/dejavu/blob/dev/docker-compose.yml).\n\nIf you are running your Elasticsearch with docker, you can use the following flags to pass the custom CORS configuration:\n\n###### OpenSearch 1.x\n\n```sh\ndocker run --name opensearch --rm -d -p 9200:9200 -e http.port=9200 -e discovery.type=single-node -e http.max_content_length=10MB -e http.cors.enabled=true -e http.cors.allow-origin=\\* -e http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization -e http.cors.allow-credentials=true -e plugins.security.disabled=true opensearchproject/opensearch:2.17.0\n```\n\nYou can run both Opensearch and Dejavu together with:\n\n`docker-compose up -d`\n\n###### Elasticsearch 8.x\n\n```sh\ndocker run -d --rm --name elasticsearch -p 127.0.0.1:9200:9200 -e http.port=9200 -e discovery.type=single-node -e http.max_content_length=10MB -e http.cors.enabled=true -e http.cors.allow-origin=\\* -e http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization -e http.cors.allow-credentials=true -e network.publish_host=localhost -e xpack.security.enabled=false docker.elastic.co/elasticsearch/elasticsearch:8.15.1\n```\n\nYou can run both Elasticsearch 8.15.1 and Dejavu together with:\n\n`docker-compose -f docker-compose-v8.yml up -d`\n\n###### Elasticsearch 7.x\n\n```sh\ndocker run -d --rm --name elasticsearch -p 9200:9200 -p 9300:9300 -e \"discovery.type=single-node\" -e \"http.cors.enabled=true\" -e \"http.cors.allow-origin=*\" -e \"http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization\" -e \"http.cors.allow-credentials=true\" docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2\n```\n\nYou can run both Elasticsearch 7.10.2 and Dejavu together with:\n\n`docker-compose -f docker-compose-v7.yml up -d`\n\n#### Hosted Alternatives\n\n**dejavu** can also be run as a hosted app at https://dejavu.appbase.io.\n\n---\n","funding_links":[],"categories":["Elasticsearch"],"sub_categories":["Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappbaseio%2FdejaVu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappbaseio%2FdejaVu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappbaseio%2FdejaVu/lists"}