Get started with Kestra in 3 minutes.
- Teams that already run media workflows in Kestra can generate a score, sound effects, or a ducked voice-and-music mix without leaving the flow.
- Finished audio is copied into Kestra internal storage, so later tasks can use
audioUriafter Sonilo's presigned URLs expire. - A polling trigger starts a flow when a Sonilo task reaches a terminal status. Sonilo does not offer webhooks.
- Plugin tasks and the trigger live in
io.kestra.plugin.sonilo. GenerateMusicFromTextandGenerateMusicFromVideocall the Sonilo music endpoints. Streaming NDJSON is the default. wav, mp3, multiple variants, stems, ducking, andpreserveSpeechrun asynchronously and are polled.GenerateSfxFromTextandGenerateSfxFromVideogenerate sound effects.DuckAudioducks music under a voice track. Both are asynchronous.TriggerpollsGET /v1/tasks/{taskId}and fires once per terminal task id and status.- Platform keys come from platform.sonilo.com and are separate from sonilo.com app logins. Usage of generated audio is covered by Sonilo's Terms of Service.
- Build the shadow JAR:
./gradlew shadowJar. The output lands inbuild/libs/. - Run
docker compose up.docker-compose.ymlbuildskestra/kestra:latestand mountsbuild/libs/to/app/plugins/, so Kestra picks up the jar on startup. - Kestra UI is available at localhost:8080.
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.
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.
- Full documentation can be found under: kestra.io/docs
- Documentation for developing a plugin is included in the Plugin Developer Guide
Apache 2.0 © Kestra Technologies
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.
