Kestra
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)
TroubleshootingWhy 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.
TroubleshootingHow 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.
Tags
Getting Started
Download installer
Click the button above to download the installer for your system
Install the software
Double-click the downloaded installer and follow the prompts
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
Step 2: Open http://localhost:8080 in browser
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!"
- 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
- Step 2: Open http://localhost:8080 in browser
- 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!"
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 SourceUninstall 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.
Having issues? Check the FAQ below
2 FAQs
Similar Projects
godot
Godot Engine is a free, open-source, cross-platform 2D and 3D game engine with a unified editor. Unlike Unity or Unreal, it's entirely MIT-licensed and community-driven, offering a lightweight yet powerful node-based workflow that runs on a single executable.
Hoppscotch
Open source API development ecosystem with a lightweight, fast, and feature-rich interface for testing HTTP, WebSocket, GraphQL, and more.
lazygit
A simple terminal UI for git commands