Skip to content

kestra-io/plugin-template

Repository files navigation

Kestra workflow orchestrator

Event-Driven Declarative Orchestrator

Last Version License Github star
Kestra infinitely scalable orchestration and scheduling platform Slack

twitter linkedin youtube


Get started in 3 minutes with Kestra

Get started with Kestra in 3 minutes.

Kestra Plugin Template

Why

  • What user problem does this solve? Teams need a concrete starting point for building and validating new Kestra plugins without recreating the same project scaffolding from scratch.
  • Why would a team adopt this plugin in a workflow? It gives plugin authors a ready-made reference repo they can adapt alongside their own build, test, and publishing workflow.
  • What operational/business outcome does it enable? It shortens plugin delivery time, reduces setup mistakes, and makes internal or partner plugin development more repeatable.

What

  • Provides plugin components under io.kestra.plugin.templates.
  • Includes classes such as Example, Trigger.

Running Kestra locally with this plugin

  1. Build the shadow JAR: ./gradlew shadowJar. The output lands in build/libs/.
  2. Run docker compose up. docker-compose.yml builds kestra/kestra:latest and mounts build/libs/ to /app/plugins/, so Kestra picks up the jar on startup.
  3. Kestra UI is available at localhost:8080.

Plugins folder gotcha

Mounting a host folder onto /app/plugins/ replaces the container's plugins directory rather than adding to it. Core plugins (the ones logged as Registered N core plugins) are compiled into Kestra itself and aren't affected, but any additional plugin normally bundled in the base image under /app/plugins/ (e.g. the Python script plugin) gets hidden once the mount is in place. If a flow you're testing depends on another plugin, copy its jar into build/libs/ too before starting the container.

JFR startup error

On some hosts, command: server local fails with:

Unable to create JFR repository directory using base location (/tmp)

docker-compose.yml works around this by mounting /tmp as tmpfs. If you build your own compose file or run Kestra via docker run, add the same workaround, e.g. -v /tmp:/tmp or --tmpfs /tmp. Tracked upstream in kestra-io/kestra#17405.

Documentation

License

Apache 2.0 © Kestra Technologies

Stay up to date

We release new versions every month. Give the main repository a star to stay up to date with the latest releases and get notified about future updates.

Star the repo

About

A template for creating Kestra plugins

Topics

Resources

License

Stars

37 stars

Watchers

4 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors