需在 Elasticsearch 的 elasticsearch.yml 中开启 CORS 并允许 http://localhost:1358,否则前端连不上集群;默认端口为 1358,与 ES 的 9200 不同;ES 8.x 需关闭 xpack.security 或自行配置认证头才能直连
dejavu
appbaseioMIT更新放缓Elasticsearch 和 OpenSearch 的网页版管理界面,可以导入、浏览、编辑数据,支持丰富的过滤和查询视图,还能快速搭建搜索 UI。
A Web UI for Elasticsearch and OpenSearch: Import, browse and edit data with rich filters and query views, create reference search UIs.
docker run -p 1358:1358 -d appbaseio/dejavu
open http://localhost:1358/README 未说明硬件要求;作为纯前端 Web UI 通过 Docker 运行,无需 GPU,只需能访问 Elasticsearch/OpenSearch 实例
Elasticsearch/OpenSearch 的纯前端 Web 管理界面,用来导入、浏览、编辑数据并搭建搜索 UI
Elasticsearch 和 OpenSearch 的网页版管理界面,可以导入、浏览、编辑数据,支持丰富的过滤和查询视图,还能快速搭建搜索 UI。
核心能力
- 纯客户端渲染,可 Docker 部署或直接用托管版
- 支持 JSON/CSV 导入并在 GUI 中配置字段映射
- 可视化过滤器与全局搜索,结果可导出 JSON/CSV
- 通过 Query DSL 批量更新数据,支持多索引浏览
- 可视化搭建分面搜索 UI 并导出代码到 CodeSandbox
容易踩的坑
- 3.10.0最新正式版2025-09-07 · 2025-09-07 13:02 UTC
Release Changelog - September 7, 2025
Highlights
- Built-in “Import Data” view
Embed@appbaseio/importeras a first-class route to import CSV / JSON array / NDJSON into OpenSearch or Elasticsearch. Runs fully in-browser (works with localhost/VPC); internet clusters must allow browser CORS. (bff5e74)
Features
- Add left-nav
Import Data→/import, bundle sample “movies” dataset, and “View in Dejavu” post-import flow. (bff5e74)
Build & Tooling
- Upgrade to React 18. (fea7693)
- Migrate app & site to Webpack 5 (html-webpack-plugin v5, asset modules, css-minimizer, devServer updates). (6cc2b4b)
- Version bump and build fixes for 3.10.0. (cecb56c)
Dependency Updates
Merges & Maintenance
Thanks to contributors: @siddharthlatest, @dependabot.
- Built-in “Import Data” view
- 3.9.02025-08-27 · 2025-08-27 12:24 UTC
查看更新说明
Release Changelog - August 27, 2025
Highlights
- Official compatibility updates:
- Adds support for OpenSearch v3.0 and above
- Adds support for Elasticsearch v9.0 and above
Features
- Connect flow improvements:
- Enable Connect button when required values are valid.
- Validate app name and URL.
- Automatically prepend http to URL if missing. Contributions by Du Tran. (Refs: issue-480, issue-481)
Build & Tooling
- Node Support: Build now supports Node v22.
- Versioning: Bumped app version to 3.9.0.
Dependency Updates
- Bumped cipher-base from 1.0.4 to 1.0.6. (PR #502)
- Bumped sha.js from 2.4.11 to 2.4.12. (PR #501)
- Bumped brace-expansion from 1.1.11 to 1.1.12. (PR #500)
- Bumped @babel/runtime from 7.20.6 to 7.27.6. (PR #499)
- Bumped pbkdf2 from 3.0.17 to 3.1.3. (PR #498)
- Previously: Bumped elliptic from 6.5.7 to 6.6.0. (PR #495)
- build(deps): bump tar-fs from 1.16.3 to 1.16.5 (PR #503)
Merges & Maintenance
- Merged index name/connection validation improvements. (PR #497)
- Merged URL auto-prefixing enhancement. (PR #496)
- Routine chores and version updates.
Thanks to contributors: Du Tran (@quangdutran), @dependabot, and @siddharthlatest.
- Official compatibility updates:
- 3.8.32024-09-29 · 2024-09-29 09:31 UTC
查看更新说明
Release Changelog - Sep 29, 2024
Fixes
-
Search Preview:
- Improved robustness of version checking logic.
- Fixed issue with setting mappings to state.
- Removed
query explorerfrom navigation.
-
Version Management:
- Explicit version usage logic to enhance clarity.
- Improved reliability when fetching the search engine version.
Build & Dependencies
- Node Support: Updated build to support Node v20 LTS.
- Docker: Updated Docker workflows and base image for improved deployment. Supports multi-arch builds.
- Docker-compose: Update Docker compose flows. Tested with Elasticsearch 8.15.1 and OpenSearch 2.17.0
- Dependency Updates:
- Bumped
expressfrom 4.18.2 to 4.21.0. - Bumped
ellipticfrom 6.5.2 to 6.5.7. - Bumped
dompurifyfrom 2.3.6 to 2.5.4.
- Bumped
Miscellaneous
- Various formatting changes and README updates for better documentation.
- Updated yarn lock file for dependency management.
-
- 3.6.02022-03-14 · 2022-03-14 09:38 UTC
查看更新说明
Enhancements
This release adds support for OpenSearch 1.x and Elasticsearch 8.x search engines.
This release also now adds docker image support for both linux/amd64 and linux/arm64 architectures.
Usage:
docker pull appbaseio/dejavu:3.6.0will fetch the image for your architecture. View image on dockerhubSecurity Fixes
- This release contains a security fix to the XSS vulnerability issue mentioned in #430
- This release also contains security fixes for the dependencies of Dejavu
- 3.5.32021-09-10 · 2021-09-10 07:14 UTC
查看更新说明
Fixes
- Fix: Missing fields in exported files https://github.com/appbaseio/dejavu/pull/415
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
dejavu: The Web UI for OpenSearch and Elasticsearch
- Dejavu: Intro
- Features
a. Easily Connect to Indices
b. Visual Filters
c. Modern UI Elements
d. Import JSON or CSV Data
e. Build search UIs - Comparison
- Roadmap
- Build Locally / Contributing
- Get Dejavu
a. Docker Installation
b. Hosted Alternatives
1. Dejavu Intro
Dejavu is a modern web UI for OpenSearch and Elasticsearch.
It 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 or as a docker image.
Starting 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.
Starting 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.
Starting 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.
Starting with v3.0, we support the ability to connect to multiple indexes. You can also globally search across your indexes using global search bar.
2. Features
Easily Connect and Remember Indices

Dejavu allows you to connect to any index present in your cluster and caches each connected index locally, making them easily accessible when browsing again.
Visual Filters

Sort 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.
Additionally, any filtered view can be exported as a JSON or CSV file.
Modern UI Elements

It'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.
Dejavu also supports browsing data from multiple indexes and types, updating data either individually or via queries in bulk. Deletions are also supported.
Import JSON or CSV Data

The importer view allows you to import CSV or JSON data directly into Elasticsearch through a guided data mapping configuration.
Build Search UIs

With Search Preview, you can now build visual search UIs, test search relevancy, and export code to CodeSandbox.
3. Comparison with other data browsers
| Features | dejavu | ES-head | ES-kopf | ES-browser | Kibana |
|---|---|---|---|---|---|
| Installation | Docker image, Hosted app | Elasticsearch plugin, static page | Elasticsearch plugin, static page | Elasticsearch plugin (doesn't work with 2.0+) | Elasticsearch plugin |
| Modern UI | React 16.6. | jQuery 1.6.1, slightly stodgy | Angular 1.x | ExtJs, a bit stodgy | Node.JS, Hapi, Jade |
| Browser features | CRUD, data filters | Read data, full-text search | ❌ | Data view for a single type | Read view, visualizations, charting |
| Data import/export | ✔️ JSON, CSV | ❌ | ❌ | ❌ | Only export, no CSV |
| Search preview | Visually build and test search UI | ❌ | ❌ | ❌ | ❌ |
| License | MIT | Apache 2.0 | MIT | Apache 2.0 | Apache 2.0 |
4. Roadmap
Here's a rough roadmap of things to come in the version 1.0.0 release.
🎆 We just hit the 1.0.0 roadmap:
- Battle-testing with different datasets
- Feature support for advanced filtering
Offline detection and reconnection for realtime updates - Performance improvements while scrolling
- Support for importing and exporting data
- Support for a continuous query view
- Available as a docker image
🍾 We just hit the 2.0.0 release:
- An intuitive data editing experience in tabular mode (v/s JSON edit mode)
- View data types from within the data browser view
- A more streamlined import process
- Refactor codebase to improve hackability (Migrate to React 16+, ES6 syntax)
- Ability to build (and test) search visually
✨ We just hit the 3.0.0 release:
- Rewrite dejavu browser for high performance when browsing large datasets
- Add support for browsing multiple indexes
- Powerful filtering of data with field level facet based filters and a global search
- Built on React 16.6 and future compatible with React 17
- A more intuitive data editing experience (in addition to the raw JSON, we now show a relevant UI field with validations)
5. Build Locally
See the contributing guidelines.
6. Get Dejavu
Docker Installation
docker run -p 1358:1358 -d appbaseio/dejavu
open http://localhost:1358/
You 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.
Cross-origin resource sharing (CORS)
To make sure you enable CORS settings for your Elasticsearch instance, add the following lines in the elasticsearch.yml configuration file.
http.port: 9200
http.cors.allow-origin: 'http://localhost:1358'
http.cors.enabled: true
http.cors.allow-headers: X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true
If you are running your Elasticsearch with docker-compose, you can refer to the example reference here.
If you are running your Elasticsearch with docker, you can use the following flags to pass the custom CORS configuration:
OpenSearch 1.x
docker 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
You can run both Opensearch and Dejavu together with:
docker-compose up -d
Elasticsearch 8.x
docker 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
You can run both Elasticsearch 8.15.1 and Dejavu together with:
docker-compose -f docker-compose-v8.yml up -d
Elasticsearch 7.x
docker 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
You can run both Elasticsearch 7.10.2 and Dejavu together with:
docker-compose -f docker-compose-v7.yml up -d
Hosted Alternatives
dejavu can also be run as a hosted app at https://dejavu.appbase.io.