OpenSource-Hub
K

Kestra

26.8k stars·Developer Tools·SHA-256 checksum verified

Event-driven declarative orchestration platform for building reliable workflows with YAML.

Smart Download

Visit Project Homepage

No installer available yet — head to the source repository

Open-source event-driven orchestrator for scheduled and real-time workflows with YAML.

Core Features

  • Declarative YAML workflow definitions, editable via UI
  • Scheduled and event-driven triggers
  • Rich plugin ecosystem (databases, cloud, APIs)
  • Built-in code editor with syntax highlighting and auto-completion
  • Git version control integration

What It Can't Do

  • Local quickstart relies on Docker; use Kubernetes or managed cloud for production. 2. Volume mounts may have permission issues on Windows; prefer WSL 2. 3. First plugin download may take time. 4. Default H2 database is for testing; switch to PostgreSQL in production.

Use Cases

  • Data pipeline (ETL/ELT) automation
  • Microservice orchestration and event-driven automation
  • Scheduled batch jobs (e.g., daily reports)
  • Multi-cloud operational workflow automation

Detailed Introduction

Kestra is an open-source, event-driven orchestration platform that simplifies both scheduled and real-time workflows. It brings Infrastructure as Code best practices to data, process, and microservice orchestration, allowing you to define workflows declaratively in YAML. Key features include a rich plugin ecosystem (hundreds of pre-built connectors), an intuitive UI with real-time validation, Git version control integration, and native support for event triggers, retries, error handling, and parallel execution. Designed to scale to millions of workflows, Kestra runs on Docker, Kubernetes, AWS, GCP, Azure, and more.

Troubleshooting & FAQ (2)

Troubleshooting
Why does my Kestra output variable get overwritten when passing combined Pebble lists to a subflow?

This is caused by Pebble's list concatenation operator (+) mutating the first list in place. When the concatenated result is passed as an input to a subflow, the first list variable in the expression is permanently modified, carrying over all combined values. Workaround: reorder the expression so that the variable you want to preserve appears last. For example, move outputs.task.variable to the end of the expression: {{ (kv('key') | default([])) + (inputs.list | default([])) + (outputs.task.variable | default([])) }}. This keeps the original output intact. Alternatively, create a copy of the list before concatenation using | list to force a new list.

GitHub Issue #15048
Troubleshooting
How to fix Kestra execution stuck in KILLING state causing infinite retry loop and PostgreSQL disk full?

This is a known bug in Kestra v1.3.14 where a stuck KILLING execution triggers an infinite retry loop, flooding the logs and queues tables. Workaround: Stop Kestra, then manually delete the execution: DELETE FROM executions WHERE key = '<execution_id>'; followed by TRUNCATE TABLE logs;, TRUNCATE TABLE queues;, VACUUM FULL;. Restart Kestra. To prevent future occurrences, add a flow-level timeout (e.g., timeout: PT15M) to your flow definition. Track the official fix in Kestra updates.

GitHub Issue #15829

Tags

workflow-orchestrationevent-drivendeclarativeyamlpluginsopen-sourceautomationscheduling

Getting Started

1

Download installer

Click the button above to download the installer for your system

2

Install the software

Double-click the downloaded installer and follow the prompts

3

Step 1: Run Docker: docker run --pull=always -it -p 8080:8080 --user=root --name kestra --restart=always -v kestra_data:/app/storage -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp kestra/kestra:latest server local

4

Step 2: Open http://localhost:8080 in browser

5

Step 3: Click 'Create' and paste this YAML: id: hello_world namespace: dev tasks: - id: say_hello type: io.kestra.plugin.core.log.Log message: "Hello, World!"

Install Guide
  1. Step 1: Run Docker: docker run --pull=always -it -p 8080:8080 --user=root --name kestra --restart=always -v kestra_data:/app/storage -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp kestra/kestra:latest server local
  2. Step 2: Open http://localhost:8080 in browser
  3. Step 3: Click 'Create' and paste this YAML: id: hello_world namespace: dev tasks: - id: say_hello type: io.kestra.plugin.core.log.Log message: "Hello, World!"
File Integrity

Checksum not available

This project has not published a SHA-256 checksum on its GitHub Release page

SHA256 Checksum

No checksum available

Download directly from GitHub Releases and verify file integrity yourself

All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.

Open Source Transparency

View GitHub Source
Environment Guide

Uninstall Info

Stop and remove Docker container: docker stop kestra && docker rm kestra. To clean up persistent data, delete the volume: docker volume rm kestra_data.

No Extra Dependencies

Ready to use after download. No additional runtime required.

Project Info
LicenseApache-2.0
Last Updated2026-06-25 23:50:15
GitHub RepositoryOfficial Website

Having issues? Check the FAQ below

2 FAQs

Similar Projects