elastic / template-kibana-plugin

sao.js template for kibana plugins
Apache License 2.0
64 stars 34 forks source link

NOTE: Kibana now includes its own plugin generator. You should use this to generate your plugin if you are targeting Kibana 6.3 or greater.

template-kibana-plugin

Apache License Build Status

This project is an sao.js template for bootstrapping a Kibana Plugin. It creates a basic hello world Kibana plugin with all the elements in place so you can easily get started with creating your first Kibana plugin.

Compatibility

Generator Version Min Kibana Version Max Kibana Version
bundled plugin generator 6.3 master
^7.0.1 5.5.0 6.2
^6.2.2 5.0.0 5.4.x

Getting Started

Setup your Kibana development enviroment

You can find instructions on the Kibana development documentation

Double check that your Node.js version matches Kibana's .node-version file

node --version

HINT: If you install nvm and avn then you can create your own .node-version file and avn will switch to it automatically!

Create a directory for your plugin that is right next to your Kibana directory.

The Kibana directory must be named kibana, and your plugin directory must be a sibling directory

ls ~/wherever/you/store/your/code
  kibana # <- where you store the Kibana development environment
  my-new-plugin # <- your plugin directory

Install SAO

npm install -g sao

Run the generator

cd my-new-plugin
sao kibana-plugin

HINT: If you need to use a version other than the latest, you can specify it when you run the template:

# SAO will install template-kibana-plugin@7.2.4
sao kibana-plugin@7.2.4

[Optional] Get the URL for your Elasticsearch installation

Elasticsearch is available at http://localhost:9200, unless you explicitly changed it in the Elasticsearch config.

Start Kibana in development mode with your new plugin included

npm start

HINT: If your Elasticsearch instance is running on another port, you can pass it in here.

npm start -- --elasticsearch.url 'http://localhost:9200'

# passing the elasticsearch.url here is to demonstrate how arguments can
# be passed to kibana with `npm start` but is not actually necessary if
# you are running elasticsearch locally

Open your Kibana instance

Visit http://localhost:5601 with your web browser of choice.

Development Tasks

For more information about any of these commands run npm run ${task} -- --help.