Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
# Conflicts:
#	.gitignore
#	Dockerfile
#	README.md
#	css/all.min.css
#	docs/.doctrees/developer-guide.doctree
#	docs/.doctrees/developers.doctree
#	docs/.doctrees/environment.pickle
#	docs/.doctrees/faq.doctree
#	docs/.doctrees/index.doctree
#	docs/.doctrees/installation.doctree
#	docs/.doctrees/rest-api.doctree
#	docs/.doctrees/table-with-code.doctree
#	docs/.doctrees/user-guide.doctree
#	docs/_sources/developer-guide.txt
#	docs/_sources/faq.txt
#	docs/_sources/index.txt
#	docs/_sources/installation.txt
#	docs/_sources/rest-api.txt
#	docs/_sources/user-guide.txt
#	docs/developer-guide.html
#	docs/faq.html
#	docs/index.html
#	docs/installation.html
#	docs/objects.inv
#	docs/rest-api.html
#	docs/searchindex.js
#	docs/source/developer-guide.rst
#	docs/source/faq.rst
#	docs/source/index.rst
#	docs/source/installation.rst
#	docs/source/rest-api.rst
#	docs/source/user-guide.rst
#	docs/user-guide.html
#	gruntfile.js
#	js/all.min.js
#	js/collection/node/NodeListModel.js
#	js/model/index/IndexRoutingTableModel.js
#	js/model/index/IndexShardModel.js
#	js/model/node/NodeInfoModel.js
#	js/model/node/NodeModelFactory.js
#	js/model/node/NodeStatsModel.js
#	js/model/rest/RESTModelFactory.js
#	js/route/IndexRoute.js
#	js/template/IndexTemplate.js
#	js/template/NodeTemplates.js
#	js/util/tablesorter.js
#	js/util/versionutil.js
#	js/view/index/IndexView.js
#	js/view/index/action/CreateIndexView.js
#	js/view/node/DiagnosticsRules.js
#	js/view/node/NodeStatsListView.js
#	js/view/node/NodeStatsView.js
#	js/view/node/NodeViewFactory.js
#	package.json
#	tpl/index.html
  • Loading branch information
royrusso committed Feb 14, 2018
2 parents b3a1421 + 2354195 commit 0b79017
Show file tree
Hide file tree
Showing 1,152 changed files with 40,585 additions and 275,297 deletions.
9 changes: 9 additions & 0 deletions .babelrc
@@ -0,0 +1,9 @@
{
"presets": [
["@babel/preset-env", {
"targets": {
"browsers": ["last 2 versions"]
}
}]
]
}
114 changes: 113 additions & 1 deletion .gitignore
Expand Up @@ -12,4 +12,116 @@ node_modules
dist
npm-debug.log
bower_components
*.swp
application.log
*.db
### Python template
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/

# Translations
*.mo
*.pot

# Django stuff:
*.log
.static_storage/
.media/
local_settings.py

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/


# UI stuff
node_modules/
dist/
cover/
/dev_notes/
26 changes: 0 additions & 26 deletions .jshintrc

This file was deleted.

7 changes: 7 additions & 0 deletions AUTHORS.md
@@ -0,0 +1,7 @@
Roy Russo <royrusso@gmail.com>
Will McGinnis

This project also draws upon the work of the elasticsearch-py author:

Honza Král
And others: https://github.com/elastic/elasticsearch-py/blob/master/AUTHORS
26 changes: 7 additions & 19 deletions DEVELOPMENT.md
@@ -1,27 +1,15 @@
Development Instructions
=========
# Development Instructions

This application uses NodeJS and Grunt for building its development environment, distribution copy, and (some) dependency management.
See README for this version until a GA release.

Follow the steps below to build the appropriate structure for either local testing or distro. We assume you have Grunt and NodeJS installed.

DEVELOPMENT
---------------
## DEVELOPMENT

The development version will rewrite the index.html file in the root directory, using the index.html in the tpl directory, to point to un-minified and un-concatenated JS and CSS files. This is done to help in debugging JS errors or real-time modification of JS and CSS files.
1. Use Python 3.4+
2. We advise that you create a virtual environment for this project.

To build the development version, simply drop to console and type: **npm install && grunt dev**

## CHANGELOG

DISTRIBUTION
---------------

The distribution will rewrite the index.html file in the root directory, using the index.html in the tpl directory, to point to minified and concatenated JS and CSS files.

To build the distribution, simply drop to console and type: **npm install && grunt dist**

CHANGELOG
--------------

Changelog generation is achieved through the gh-changelog Node plugin: https://npmjs.org/package/github-changelog
...

29 changes: 22 additions & 7 deletions Dockerfile
@@ -1,12 +1,27 @@
FROM nginx:1.13-alpine
FROM python:3.6-alpine3.7

RUN apk add --no-cache openssl
RUN apk update
RUN apk add supervisor
RUN apk add --update py2-pip
RUN pip install gunicorn

WORKDIR /app
# reqs layer
ADD requirements.txt .
RUN pip3 install -U -r requirements.txt

COPY docker-entrypoint.sh /
COPY . /app
# Bundle app source
ADD . /src

EXPOSE 80
# Expose
EXPOSE 5000

CMD ["/docker-entrypoint.sh"]
COPY ./deployment/logging.conf /src/logging.conf
COPY ./deployment/gunicorn.conf /src/gunicorn.conf

# Setup supervisord
RUN mkdir -p /var/log/supervisor
COPY ./deployment/supervisord.conf /etc/supervisor/supervisord.conf
COPY ./deployment/gunicorn.conf /etc/supervisor/conf.d/gunicorn.conf

# Start processes
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]
2 changes: 1 addition & 1 deletion LICENSE.md
@@ -1,4 +1,4 @@
Copyright 2013, Roy Russo
Copyright 2013-2018, Roy Russo

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
107 changes: 39 additions & 68 deletions README.md
@@ -1,90 +1,61 @@
ElasticHQ
=========

Monitoring, Management, and Querying Web Interface for ElasticSearch instances and clusters.
Simplified Monitoring and Management for ElasticSearch clusters.

:loudspeaker: [Important Announcement regarding ElasticHQ v3!](https://groups.google.com/forum/#!topic/elastichq/rZOBFNePRKg)
[![GitHub Stars](https://img.shields.io/github/stars/ElasticHQ/elasticsearch-HQ.svg)](https://github.com/ElasticHQ/elasticsearch-HQ)
[![GitHub Issues](https://img.shields.io/github/issues/ElasticHQ/elasticsearch-HQ.svg)](https://github.com/ElasticHQ/elasticsearch-HQ)
[![Current Version](https://img.shields.io/badge/version-3.0.0-green.svg)](https://github.com/ElasticHQ/elasticsearch-HQ)
![Python](https://img.shields.io/badge/python-v3.4%20%2F%20v3.6-blue.svg)
[![License](https://img.shields.io/badge/license-ASL-blue.svg)](https://opensource.org/licenses/ASL)

Benefits:
* Active real-time monitoring of ElasticSearch clusters and nodes.
* Manage Indices, Mappings, Shards, Aliases, and Nodes.
* Query UI for searching one or multiple Indices.
* REST UI, eliminates the need for cURL and cumbersome JSON formats.
* No software to install/download. 100% web browser-based.
* Optimized to work on mobile phones, tablets, and other small screen devices.
* Easy to use and attractive user interface.
* Free (as in Beer)

Getting Started
---------------

There are several ways to use ElasticHQ. The full list and help are available here: http://www.elastichq.org/gettingstarted.html

* **FREE Hosted Version:** http://www.elastichq.org
* **Install as a Plugin:** http://www.elastichq.org/support_plugin.html
* **Download/Install Web Archive:** https://github.com/royrusso/elasticsearch-HQ/zipball/master

Version Compatibility
---------------------

| Elasticsearch Version | ElasticHQ Branch | Latest HQ Version |
| --------------------- | ---------------- | ------------------|
| <=1.7 | 1.0 | v1.0.0 |
| =2.x | 2.0 | v2.0.3 |
| =5.x | 5.0 | v5.0.0 |

ElasticHQ master branch, always contains the latest releases supporting the latest Elasticsearch. In this case, Master supports
Elasticsearch 5.x.

Plugin Installation
-------------------

Navigating to your elasticsearch/bin directory and using the appropriate release tag or the master branch for ES 2.x users:
![alt text](main_dashboard.png)


```
./plugin install royrusso/elasticsearch-HQ
```

Or for a specific branch:
Key Features
------------
* Works with 2.x, 5.x, 6.x and current versions of Elasticsearch.
* Monitor **many** clusters at once.
* Monitor Nodes, Indices, Shards, and general cluster metrics.
* Create and perform maintenance on Elasticsearch Indices.
* One-Click access to common ES API endpoints.
* Well-documented REST API for extensibility.
* Active project used by Fortune 100 companies around the world.
* Free. ;-)

```
./plugin install royrusso/elasticsearch-HQ/v1.0.0
```

Requirements
------------
* A Web Browser.
* A running instance of ElasticSearch with reachable REST endpoint.

Elasticsearch 5.0
-----------------
* Python 3.4+

Site plugins are [not supported](https://www.elastic.co/blog/running-site-plugins-with-elasticsearch-5-0) in Elasticsearch 5.0 and you have to host ElasticHQ by your self ([nginx example](example/nginx_es_5.conf)).

Enabling CORS
-------------
You most likely need to enable CORS on your Elasticsearch yml configs for this plugin to work if using it from outside of the cluster.
Installation
------------

```
http.cors.enabled : true
http.cors.allow-origin : "*"
http.cors.allow-methods : OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type, Content-Length
```
For **full** installation and configuration instructions, see [Getting Started](http://docs.elastichq.org/installation.html)

Contributing
------------
You can find helpful build tips for local development tips in the [Development Guide](DEVELOPMENT.md)
1. Download or clone the repository.
2. Open terminal and point to root of repository. Type: ``pip install -r requirements.txt``
3. Run server with: `` python application.py ``. Alternatively: ``./manage.py runserver``
4. Access HQ with: `` http://localhost:5000 ``
5. All API endpoints are available through `` http://localhost:5000/api ``.

Notes + Support
------------
For further installation and configuration help, please read the docs: [ElasticHQ Documentation](http://docs.elastichq.org)

Docs + Support
---------------
* Documentation can be found here: http://docs.elastichq.org
* Google Group can be found here: https://groups.google.com/d/forum/elastichq
* If you need sample index + documents, see here: https://github.com/royrusso/elasticsearch-sample-index
* If you find a bug, **please** create an issue and report it, or fix it and let me know. ;-)
* If you find a bug, **please** create an issue and report it, or fix it and submit a pull request. ;-)

License
------------
See included [License File](LICENSE.md).
Legal Stuff
-----------

* [License File](LICENSE.md).
* [TOS and Privacy](TERMS.md).




10 changes: 10 additions & 0 deletions TERMS.md
@@ -0,0 +1,10 @@
The Legal Stuff
===============

By using ElasticHQ, you agree to everything on this page. We have to do this to protect both you and us and make running this FREE software service possible. If you break these terms, you can't use ElasticHQ anymore.

So here it is, in plain english...
----------------------------------

1. We are not liable for misuse of ElasticHQ, or for it not meeting your needs.
2. We are not liable for any harm you bring to your data, software, or hardware by using ElasticHQ.
8 changes: 8 additions & 0 deletions application.py
@@ -0,0 +1,8 @@
from elastichq import factory

application = factory.create_app()

if __name__ == '__main__':
application.run(debug=False, threaded=True, use_reloader=True)
#application.run(debug=False, threaded=True, use_reloader=False)
#application.run(debug=True, threaded=True, use_reloader=True)

0 comments on commit 0b79017

Please sign in to comment.