Upload an integration to Kibanaedit

Fleet supports integration installation through direct upload as a means to support integration developers or users who have created custom integrations that they don’t want to commit upstream back to the Elastic Integrations repository.

Direct upload can also be useful in air-gapped environments, by providing a way to update integrations without needing to update a self-hosted package registry.

Local developmentedit

If you’ve followed the local development steps in Build an integration, upload your integration to Kibana with the following command:

elastic-package install --zip /path/to/my/custom-integration

For more information, see elastic-package install.

Production deploymentedit

To upload your integration to a production deployment, first zip the package:

$ cd /path/to/my/custom-integration
$ elastic-package build

You can now use the Kibana API to upload your integration:

$ curl -XPOST \
  -H 'content-type: application/zip' \
  -H 'kbn-xsrf: true' \
  http://your.kibana.host/api/fleet/epm/packages \
  -u {username}:{password} \
  --data-binary @my-custom-integration.zip

More information on this endpoint is available in the Fleet API Reference.