MIT License

项目介绍

appbaseio/dejavu 是一个托管在 GitHub 上的开源项目,主要使用 JavaScript 编写,采用 MIT License 许可证,目前获得 8.5k 个 Star、511 次 Fork。

仓库全名
appbaseio/dejavu
开源许可证
MIT License
Star 数
8.5k
Fork 数
511
未关闭 Issue
70

README 摘要

dejavu - the missing web UI for elasticsearch ==== dejavu fits the unmet need of being a modern Web UI for Elasticsearch. Existing UIs were either built with a legacy UI and have left much to be desired from a Ux perspective or have been built with server side page rendering techniques (I am looking at you, Kibana). Thus started the journey of dejavu, with a goal of 100% client side rendering and usage of modern UI…

完整内容见 GitHub 原始 README 或本页 。

常见问题

dejavu 用什么语言开发?

主要使用 JavaScript 编写,采用 MIT License 许可证,目前有 8.5k 个 Star。

dejavu 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 dejavu 的源码?

可以直接克隆仓库:git clone https://github.com/appbaseio/dejavu.git,默认分支为 dev;安装与运行步骤见仓库 README。

dejavu 最近还在维护吗?

仓库最近一次更新为 7月2日,当前有 70 个未关闭 Issue;Star 数为 8.5k,可作为社区活跃度的参考。

README

dejavu - the missing web UI for elasticsearch

GitHub License Code Climate

dejavu fits the unmet need of being a modern Web UI for Elasticsearch. Existing UIs were either built with a legacy UI and have left much to be desired from a Ux perspective or have been built with server side page rendering techniques (I am looking at you, Kibana).

Thus started the journey of dejavu, with a goal of 100% client side rendering and usage of modern UI elements (zero page reloads, infinite scrolling, filtered views). It’s available as a github hosted page, chrome app and as an Elasticsearch plugin.

Elasticsearch plugin - Installation

bin/plugin install appbaseio/dejavu

Note: To make sure you enable CORS settings for your ElasticSearch instance, add the following lines in the ES configuration file.

 http.port: 9200
 http.cors.allow-origin: "http://127.0.0.1:9200"
 http.cors.enabled: true
 http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
 http.cors.allow-credentials: true

After installing the plugin, start elasticsearch service

elasticsearch

and visit the following URL to access it.

http://127.0.0.1:9200/_plugin/dejavu 

Note: If you use Elasticsearch from a different port, the URL to access and the http.cors.allow-origin value in the configuration file would change accordingly.

For example: If you are using the chrome-extension instead of site plugins, the http.cors.allow-origin in Elasticsearch.yml file would change accordingly:

http.port: 9200
http.cors.allow-origin: "chrome-extension://jopjeaiilkcibeohjdmejhoifenbnmlh/"
http.cors.enabled: true
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true

Developing

dev branch is the bleeding edge version of dejavu, all new changes go here.

master branch is more suitable for installing dejavu locally. The Elasticsearch site plugin for dejavu uses master branch.

chrome-extension branch is where we make chrome app related changes. The main difference in the chrome app is the lack of support for the localStorage API (It has it’s own chrome.storage API, which is asynchronous in nature).

Local Installation
  1. git clone https://github.com/appbaseio/dejavu
  2. git checkout master
  3. npm install
  4. bower install
  5. gulp watch (runs dejavu on http://localhost:1358)
Local Build
master branch: Elasticsearch Plugin
$ npm run build_es_plugin
chrome-extension branch: Chrome extension
$ npm run build_chrome_extension
gh-pages branch: Github hosted pages
$ npm run build_gh_pages
Contributing

The source code is under the _site/src directory. You can make pull requests against the dev branch.


Features

Filter Views

Filter Views

Sort through the data, find things visually, hide irrelevant data and make sense of all the numbers and dates. Filters work by identifying data mappings from the Elasticsearch index. If dejavu sees a string field, it will provide filters for search, has and has not and is also mindful if the data is analyzed. Similarly a numeric field allows filtering on ranges and a date field allows filtering data by dates.

dejavu also supports local filters like column sorting and showing a subset of columns.

To-do: dejavu doesn’t support filtering on advanced data types (like geopoint, parent-child); but it’s possible to add those at some point.

Modern UI elements

Pagination

It’s not uncommon to have thousands of records in a type. dejavu supports an infinite scroll based UI, pagination is so old school.

dejavu also supports browsing data from multiple types and bulk deletions. It also let’s you add new records and update existing records.

Realtime data updates

Realtime data updates

dejavu uses a websockets based API and subscribes for data changes for the current filtered view. For this to work, the Elasticsearch server needs to support a websockets based publish API. Currently, you can take advantage of this feature by hosting your data with appbase.io.


Comparison with other data browsers

Features dejavu ES-head ES-kopf ES-browser Kibana
Installation Chrome app, Elasticsearch plugin, static page Elasticsearch plugin, static page Elasticsearch plugin, static page Elasticsearch plugin (doesn’t work with v2.0 and above) Elasticsearch plugin
Modern UI Built with React v0.14.0, uses a live-reload interface. Built with jQuery v1.6.1, slightly stodgy Built with Angular 1.x Built with ExtJs, but a bit stodgy Built with Node.JS, Hapi, Jade
Browser features CRUD with support for data filters. Read data with support for full-text search. No data view Data view support for a single type Read view with support for visualizations / charting
Open Source MIT license Apache v2.0 MIT license Apache v2.0 Apache v2.0

Roadmap

Here’s a rough roadmap of things to come in the v1.0 release.

  • Create a test coverage suite
  • Battle-testing with different datasets
  • Feature support for advanced filtering
  • Offline detection and reconnection for realtime updates
  • Performance improvements while scrolling

评论

暂无评论