mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
54 lines
No EOL
2.5 KiB
Text
54 lines
No EOL
2.5 KiB
Text
[[development-plugin-resources]]
|
|
=== Plugin Resources
|
|
|
|
Here are some resources that will be helpful for getting started with plugin development
|
|
|
|
[float]
|
|
==== Our IRC channel
|
|
Many Kibana developers hang out on `irc.freenode.net` in the `#kibana` channel. We *want* to help you with plugin development. Even more than that, we *want your help* in understanding your plugin goals so we can build a great plugin system for you! If you've never used IRC, welcome to the fun. You can get started with the http://webchat.freenode.net/?channels=kibana[Freenode Web Client].
|
|
|
|
[float]
|
|
==== Some light reading
|
|
- Our {repo}blob/master/CONTRIBUTING.md[contributing guide] can help you get a development environment going
|
|
- Tim Roes' excellent blog series https://www.timroes.de/2016/02/21/writing-kibana-plugins-custom-applications/[Writing Kibana Plugins]
|
|
|
|
[float]
|
|
==== Videos
|
|
- https://www.elastic.co/elasticon/2015/sf/contributors-guide-to-the-kibana-galaxy[Contributors Guide to the Kibana Galaxy]
|
|
- https://www.elastic.co/elasticon/conf/2016/sf/how-to-build-your-own-kibana-plugins[Kibana Plugin Dev - Elasticon 2016]
|
|
|
|
[float]
|
|
==== Plugin Generator
|
|
|
|
It is recommended that you kick-start your plugin by generating it with the {repo}tree/{branch}/packages/kbn-plugin-generator[Kibana Plugin Generator]. Run the following within the Kibana repo and you will be asked a couple questions, see some progress bars, and have a freshly generated plugin ready for you to play within Kibana's sibling `kibana-extra` folder.
|
|
|
|
["source","shell"]
|
|
-----------
|
|
node scripts/generate_plugin my_plugin_name # replace "my_plugin_name" with your desired plugin name
|
|
-----------
|
|
|
|
|
|
[float]
|
|
==== Directory structure for plugins
|
|
|
|
The Kibana directory must be named `kibana`, and your plugin directory must be located within the sibling `kibana-extra` folder, for example:
|
|
|
|
["source","shell"]
|
|
-----------
|
|
.
|
|
├── kibana
|
|
├── kibana-extra/foo-plugin
|
|
└── kibana-extra/bar-plugin
|
|
-----------
|
|
|
|
[float]
|
|
==== References in the code
|
|
- {repo}blob/{branch}/src/server/plugins/plugin.js[Plugin class]: What options does the `kibana.Plugin` class accept?
|
|
- <<development-uiexports>>: What type of exports are available?
|
|
|
|
[float]
|
|
==== Elastic UI Framework
|
|
If you're developing a plugin that has a user interface, take a look at our https://elastic.github.io/eui[Elastic UI Framework].
|
|
It documents the CSS and React components we use to build Kibana's user interface.
|
|
|
|
You're welcome to use these components, but be aware that they are rapidly evolving and we might introduce breaking changes that will disrupt your plugin's UI. |