mirror of
https://github.com/elastic/kibana.git
synced 2025-04-25 02:09:32 -04:00
198 lines
6.3 KiB
Text
198 lines
6.3 KiB
Text
[[development-getting-started]]
|
|
== Getting started
|
|
|
|
Get started building your own plugins, or contributing directly to the {kib} repo.
|
|
|
|
[discrete]
|
|
[[developing-on-windows]]
|
|
=== Developing on Windows
|
|
|
|
In order to support Windows development we currently require you to use one of the following:
|
|
|
|
- https://git-scm.com/download/win[Git bash] (other bash emulators like https://cmder.net/[Cmder] could work but we did not test them)
|
|
- https://docs.microsoft.com/en-us/windows/wsl/about[WSL]
|
|
|
|
As well as installing https://www.microsoft.com/en-us/download/details.aspx?id=48145[Visual C++ Redistributable for Visual Studio 2015].
|
|
|
|
In addition we also require you to do the following:
|
|
|
|
- Install https://www.microsoft.com/en-us/download/details.aspx?id=48145[Visual C++ Redistributable for Visual Studio 2015]
|
|
- Enable the https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development[Windows Developer Mode]
|
|
- Enable https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-8dot3name[8.3 filename support] by running the following command in a windows command prompt with admin rights `fsutil 8dot3name set 0`
|
|
|
|
Before running the steps listed below, please make sure you have installed everything
|
|
that we require and listed above and that you are running all the commands from now on through Git bash or WSL.
|
|
|
|
[discrete]
|
|
[[get-kibana-code]]
|
|
=== Get the code
|
|
|
|
https://help.github.com/en/github/getting-started-with-github/fork-a-repo[Fork], then https://help.github.com/en/github/getting-started-with-github/fork-a-repo#step-2-create-a-local-clone-of-your-fork[clone] the {kib-repo}[{kib} repo] and change directory into it:
|
|
|
|
[source,bash]
|
|
----
|
|
git clone https://github.com/[YOUR_USERNAME]/kibana.git kibana
|
|
cd kibana
|
|
----
|
|
|
|
[discrete]
|
|
=== Install dependencies
|
|
|
|
Install the version of Node.js listed in the `.node-version` file. This
|
|
can be automated with tools such as
|
|
https://github.com/nvm-sh/nvm[nvm],
|
|
https://github.com/coreybutler/nvm-windows[nvm-windows] or
|
|
https://github.com/wbyoung/avn[avn]. As we also include a `.nvmrc` file
|
|
you can switch to the correct version when using nvm by running:
|
|
|
|
[source,bash]
|
|
----
|
|
nvm use
|
|
----
|
|
|
|
Install the latest version of https://classic.yarnpkg.com/en/docs/install[yarn v1].
|
|
|
|
Bootstrap {kib} and install all the dependencies:
|
|
|
|
[source,bash]
|
|
----
|
|
yarn kbn bootstrap
|
|
----
|
|
|
|
____
|
|
Node.js native modules could be in use and node-gyp is the tool used to
|
|
build them. There are tools you need to install per platform and python
|
|
versions you need to be using. Please see
|
|
https://github.com/nodejs/node-gyp#installation[https://github.com/nodejs/node-gyp#installation]
|
|
and follow the guide according your platform.
|
|
____
|
|
|
|
In case you don't have an internet connection, the `yarn kbn bootstrap` command will
|
|
fail. As it is likely you have the required node_modules in the
|
|
offline mirror, you can try to run the step in offline mode by using:
|
|
|
|
[source,bash]
|
|
----
|
|
yarn kbn bootstrap --offline
|
|
----
|
|
|
|
In any other circumstance where you want to force the node_modules install step
|
|
you can use:
|
|
|
|
[source,bash]
|
|
----
|
|
yarn kbn bootstrap --force-install
|
|
----
|
|
|
|
(You can also run `yarn kbn` to see the other available commands. For
|
|
more info about this tool, see
|
|
{kib-repo}tree/{branch}/packages/kbn-pm[{kib-repo}tree/{branch}/packages/kbn-pm]. If you want more
|
|
information about how to actively develop over packages please read <<monorepo-packages>>)
|
|
|
|
When switching branches which use different versions of npm packages you
|
|
may need to run:
|
|
|
|
[source,bash]
|
|
----
|
|
yarn kbn clean
|
|
----
|
|
|
|
NOTE: Running this command is only necessary in rare circumstance where you need to recover
|
|
a consistent state when problems arise. If you need to run this command often, complete
|
|
this form to provide feedback: https://ela.st/yarn-kbn-clean
|
|
|
|
If you have failures during `yarn kbn bootstrap` you may have some
|
|
corrupted packages in your yarn cache which you can clean with:
|
|
|
|
[source,bash]
|
|
----
|
|
yarn cache clean
|
|
----
|
|
|
|
[discrete]
|
|
=== Configure environmental settings
|
|
|
|
[[increase-nodejs-heap-size]]
|
|
[discrete]
|
|
==== Increase node.js heap size
|
|
|
|
{kib} is a big project and for some commands it can happen that the
|
|
process hits the default heap limit and crashes with an out-of-memory
|
|
error. If you run into this problem, you can increase maximum heap size
|
|
by setting the `--max_old_space_size` option on the command line. To set
|
|
the limit for all commands, simply add the following line to your shell
|
|
config: `export NODE_OPTIONS="--max_old_space_size=2048"`.
|
|
|
|
[discrete]
|
|
=== Run {es}
|
|
|
|
Run the latest {es} snapshot. Specify an optional license with the `--license` flag.
|
|
|
|
[source,bash]
|
|
----
|
|
yarn es snapshot --license trial
|
|
----
|
|
|
|
`trial` will give you access to all capabilities.
|
|
|
|
Read about more options for <<running-elasticsearch>>, like connecting to a remote host, running from source,
|
|
preserving data inbetween runs, running remote cluster, etc.
|
|
|
|
[discrete]
|
|
=== Run {kib}
|
|
|
|
In another terminal window, start up {kib}. Include {kib-repo}tree/{branch}/examples[developer examples] by adding an optional `--run-examples` flag.
|
|
|
|
[source,bash]
|
|
----
|
|
yarn start --run-examples
|
|
----
|
|
|
|
View all available options by running `yarn start --help`
|
|
|
|
Read about more advanced options for <<running-kibana-advanced>>.
|
|
|
|
[discrete]
|
|
=== Install pre-commit hook (optional)
|
|
|
|
In case you want to run a couple of checks like linting or check the file casing of the files to commit, we provide
|
|
a way to install a pre-commit hook. To configure it you just need to run the following:
|
|
|
|
[source,bash]
|
|
----
|
|
node scripts/register_git_hook
|
|
----
|
|
|
|
After the script completes the pre-commit hook will be created within the file `.git/hooks/pre-commit`.
|
|
If you choose to not install it, don't worry, we still run a quick ci check to provide feedback earliest as we can about the same checks.
|
|
|
|
[discrete]
|
|
=== Code away!
|
|
|
|
You are now ready to start developing. Changes to your files should be picked up automatically. Server side changes will
|
|
cause the {kib} server to reboot.
|
|
|
|
[discrete]
|
|
=== More information
|
|
|
|
* <<running-kibana-advanced>>
|
|
|
|
* <<sample-data>>
|
|
|
|
* <<kibana-debugging>>
|
|
|
|
* <<building-kibana>>
|
|
|
|
* <<development-plugin-resources>>
|
|
|
|
include::running-kibana-advanced.asciidoc[leveloffset=+1]
|
|
|
|
include::sample-data.asciidoc[leveloffset=+1]
|
|
|
|
include::debugging.asciidoc[leveloffset=+1]
|
|
|
|
include::building-kibana.asciidoc[leveloffset=+1]
|
|
|
|
include::development-plugin-resources.asciidoc[leveloffset=+1]
|
|
|
|
include::monorepo-packages.asciidoc[leveloffset=+1]
|