Mindket

Kestra

Newversion 2 · updated
GitHub trending
Star30.2k

Overview

Kestra Technologies’ open-source orchestration platform for data, AI and infrastructure workflows. You write each flow in YAML, and a schedule or an event starts it. The notes cover Docker, Kubernetes, the cloud templates, Claude Code, Codex and Cursor.

Kestra is an open-source project on GitHub in the Developer category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

At a glance

Runs in
  • Your machine: one Docker container with an embedded H2 database, or Docker Compose with PostgreSQL
  • Kubernetes: two Helm charts, a starter one for evaluation and a production one where you bring the database and storage
  • The cloud: a CloudFormation template for AWS, and Terraform modules for an Azure VM and for Google Cloud
  • Coding agents: Claude Code, Codex and Cursor through the Docs MCP server, the Agent Skills and kestractl. Windsurf, OpenCode and other agents read the same skill files
Start with
docker run --pull=always --rm -it -p 8080:8080 --user=root \
  --name kestra \
  -v kestra_data:/app/storage \

Platform

DockerContainer
Claude CodeCoding agent
CodexCoding agent
CursorCode editor
WindsurfCode editor
OpenCodeCoding agent

And 1 more in Where to use it

About

What it is

Kestra is an open-source orchestration platform for data, AI and infrastructure workflows, made by Kestra Technologies. A flow is a YAML file of tasks, and a trigger starts it on a schedule, on an event or from an API call. Its plugins run scripts in Python, Node.js, R, Go or Shell, query databases and call APIs. You can build the same flow in a YAML editor, a no-code editor or the built-in AI Copilot, and all three stay in sync. A coding agent such as Claude Code can write and deploy flows too.

  1. A schedule comes due or an event arrives
  2. The trigger starts an execution of your flow
  3. Workers run each task: a script, a query or an API call
  4. Each task passes its outputs to the next one
  5. The UI shows every run’s logs, outputs and state

Who it suits

Data and platform engineers who run pipelines, scripts and infrastructure jobs on a schedule or on events, and want them kept as code in Git. Teams leaving Apache Airflow get a skill that ports a DAG to a Kestra flow. Developers who already work in Claude Code, Codex or Cursor can describe a flow and let the agent deploy it.

Who uses it, and how
IndustryWho uses itHow they use itExample
Data teamsData engineersBuild ELT pipelines as flows, with retries and Slack alertsAn engineer asks Copilot in Plan mode to extract from Salesforce, transform with dbt on DuckDB, load into Snowflake and post a Slack summary.
Platform and DevOpsPlatform engineersKeep flows in Git and deploy them from a pipelineA CI job runs kestractl flows validate on the flows folder, then deploys it with --override.
Event-driven backendsBackend developersStart a flow when a file lands or a message arrivesA blueprint watches the incoming/ prefix of an S3 bucket every minute and runs a Python script when files land there.
AI teamsAI engineersLet an outside agent run flows as tools over MCPA team adds an McpToolTrigger to a flow, and Claude Code can then call it as a named tool.
Airflow usersData engineersPort DAGs with the migrate-airflow-kestra skillAn engineer asks the agent to migrate dags/ingest_pipeline.py from Airflow and write the flow to kestra/.

Skip the open-source edition if each person needs a login and a role of their own. It has one basic-auth account that everyone shares, and RBAC, SSO and multi-tenancy belong to the paid Enterprise Edition.

Where to use it

The open-source edition is a server you host, and you reach it from a browser, a terminal or your editor. Kestra also offers Kestra Cloud, a managed platform.

  • Your machine: one Docker container with an embedded H2 database, or Docker Compose with PostgreSQL
  • Kubernetes: two Helm charts, a starter one for evaluation and a production one where you bring the database and storage
  • The cloud: a CloudFormation template for AWS, and Terraform modules for an Azure VM and for Google Cloud
  • Coding agents: Claude Code, Codex and Cursor through the Docs MCP server, the Agent Skills and kestractl. Windsurf, OpenCode and other agents read the same skill files
  • Your editor and terminal: the VS Code extension and kestractl, the Kestra command line

The installation page also covers a single VM on AWS, Google Cloud, Azure or DigitalOcean, and a standalone JAR.

How to set it up

Get it saves a zip of Mindket’s setup notes in your downloads folder, with each platform’s and agent’s steps from Kestra’s docs. The quickest route is one Docker command.

What you need first
NeedDetail
DockerRunning before you start. The Quickstart recommends Docker Desktop
WindowsWSL enabled
MachineAt least 2 vCPUs and 4 GiB of memory
Port 8080Free, since the UI opens there
For a coding agentNode.js for npx, a terminal on macOS or Linux (WSL on Windows) and a running Kestra 2.0 instance
  1. Start Docker. On Windows, the Quickstart says to enable WSL first.
  2. Run the single Docker command. It pulls the slim image and starts Kestra on port 8080.
  3. Wait for the log line Main server is running. Then open localhost:8080 in your browser and create your user right away.
  4. Create a flow and run it. Paste the README’s hello_world flow into a new flow, run it and read its log.
  5. Connect a coding agent, if you use one. The kit’s Claude Code, Codex and Cursor notes add the Docs MCP server, the Agent Skills and kestractl.
docker run --pull=always --rm -it -p 8080:8080 --user=root \
  --name kestra \
  -v kestra_data:/app/storage \
  -v kestra_db:/app/data \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /tmp:/tmp \
  kestra/kestra:latest-slim server local

On Windows, the README gives versions of the command for PowerShell, CMD and WSL, and the kit’s Docker notes copy all three. This is the README’s first flow.

id: hello_world
namespace: dev

tasks:
  - id: say_hello
    type: io.kestra.plugin.core.log.Log
    message: "Hello, World!"

How to use it

Each flow has an id, a namespace and a list of tasks. Add a triggers list and it starts by itself. The Docs MCP page shows the shape of a blueprint that runs a Python script when files land in an S3 bucket.

id: s3_trigger
namespace: company.team

tasks:
  - id: process
    type: io.kestra.plugin.scripts.python.Script
    # ...

triggers:
  - id: watch
    type: io.kestra.plugin.aws.s3.Trigger
    bucket: your-bucket
    prefix: incoming/
    interval: PT1M

In the UI, the editor checks your YAML as you type and draws the flow as a live graph. The Copilot sidebar has Ask, Edit and Plan modes, and Edit and Plan change nothing until you approve. From a terminal, kestractl checks, deploys and runs flows. These are the Claude Code Quickstart’s lines.

kestractl flows validate ./flows/
kestractl flows deploy ./flows/ --override
kestractl executions run tutorial github_stars --wait

Example

Kestra runs on your machine. Claude Code has the Docs MCP server, the two skills and a kestractl context. You type the Quickstart’s prompt:

Use kestra-flow to write a flow in the tutorial namespace that calls
https://api.github.com/repos/kestra-io/kestra every hour and logs the
star count. Save it as ./flows/github_stars.yaml. Then use kestra-ops
to deploy it to my Kestra instance, run it, and tell me the result.

Claude Code writes the flow file, then deploys and runs it.

To write it, Claude Code looks up the HTTP and Log task schemas on the Docs MCP server. kestractl validates, deploys and runs the flow. In the UI, github_stars appears in the tutorial namespace with one execution that logs the star count. Its Schedule trigger keeps it running every hour, so disable the trigger or delete the flow when you finish.

For newcomers and experts

If you are new. Orchestration means one tool starts your jobs, runs their steps in order, retries what fails and keeps the logs. In Kestra each job is a flow, and the UI shows every run with its logs and outputs. Start with the Docker command. Then paste the hello_world flow, run it and read the log line it writes. The AI Copilot can draft a flow for you once you give Kestra a Google Gemini key, the provider the open-source edition supports.

For experts. Kestra 2.0 splits the control plane from the data plane. Workers no longer touch the database. Each holds a gRPC stream to a Worker Controller, so it can run in another region or inside a restricted network. In the open-source edition that channel is plaintext and unauthenticated by default, and the controller hands each worker the instance’s encryption key. Keep workers and controllers on a trusted network, and set the shared kestra.grpc.basic-auth credentials to stop unknown workers. They add no TLS, and anyone who can capture the traffic can read them.

Task outputs now sit in their own storage, out of the execution record. For locked-down production, the Docker page calls an exact version tag such as v<X.X.X> the best choice. latest is a rolling tag whose support ends at the next stable release, about two months on, and latest-lts follows the long-term support line. Workers deployed without Docker need their plugins as JAR files first, and kestractl plugins download fetches them from Maven Central.

Moving from 1.x has a migration guide, and the migrate-kestra-2 skill guides a Kestra 1.3 instance and its flows through the upgrade. ForEach and ForEachItem became one Loop task, and trigger conditions are now written as when. For CI, the kestractl page gives flows validate-by-query --all --output json as a gate. It checks every flow on the instance and exits non-zero on violations.

Good to know

The open-source edition runs on servers you control, and a few things reach out or need care.

  • License: Apache-2.0, copyright Kestra Technologies. The Enterprise Edition is a separate paid product with RBAC, SSO, multi-tenancy, audit logs and API tokens
  • First login: on a fresh install with no basic-auth set, the hardening page says the Setup page at /ui/main/setup is public. Whoever reaches it first can set the credentials and lock you out. Set kestra.server.basic-auth username and password in the configuration before others can reach the port, and Kestra skips the Setup page
  • Local setup: the Docker command runs as root and mounts the Docker socket. The Quickstart calls it local evaluation and points to the hardening guide before others can reach it
  • Usage data: the server and the UI each send an anonymous usage report by default. Set kestra.anonymous-usage-report.enabled and kestra.ui-anonymous-usage-report.enabled to false to stop both
  • Network: the slim image fetches plugins from Maven Central. The Docs MCP server at api.kestra.io is public and read-only and never connects to your instance. Three of the skills need network access to api.kestra.io
  • AI Copilot: it answers only once you configure a model provider. In 2.0.0, setting kestra.ai.enabled to false still leaves the button and Fix with AI working, a known issue the page lists
  • Removal: press Ctrl+C to stop the container. The volumes stay, and docker volume rm kestra_data kestra_db wipes them

README and files

README

Kestra: setup notes

This kit holds setup notes only. Mindket wrote them. Kestra itself runs from its Docker image, its Helm charts and its deployment templates, all from Kestra's repository: https://github.com/kestra-io/kestra

These notes are not made or endorsed by Kestra Technologies. The README calls Kestra "an open-source, event-driven orchestration platform for data, AI, and infrastructure workflows." The documentation is at https://kestra.io/docs

License: Apache-2.0. The LICENSE file (https://github.com/kestra-io/kestra/blob/develop/LICENSE) is the Apache License 2.0 and ends with "Copyright 2019 Kestra Technologies." The README says "Kestra is licensed under the Apache 2.0 License © Kestra Technologies." These notes cover the open-source edition. The Enterprise Edition is a separate paid offer that pulls its images from a private registry, and the notes name it only where a command differs.

The README presents Kestra 2.0 as a major release with breaking changes. A flow written for 1.x may need changes: https://kestra.io/docs/migration-guide/v2.0.0

What installs

What you need first

Main install command

The Quickstart gives this one command for a local instance. It needs Docker to be running.

docker run --pull=always --rm -it -p 8080:8080 --user=root \
  --name kestra \
  -v kestra_data:/app/storage \
  -v kestra_db:/app/data \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /tmp:/tmp \
  kestra/kestra:latest-slim server local

Open http://localhost:8080 once the logs show Main server is running at http://...:8080, and create your user. Source: https://kestra.io/docs/quickstart

The Quickstart calls this setup "for local evaluation". Before others or other networks can reach Kestra, follow the security hardening guide: https://kestra.io/docs/security-hardening

Per-platform notes

  • setup/docker.md: the single container, with the PowerShell, CMD and WSL versions of the command
  • setup/docker-compose.md: PostgreSQL behind Kestra
  • setup/cloud-and-kubernetes.md: Helm, AWS, Azure and Google Cloud
  • setup/claude-code.md: the Docs MCP server, Agent Skills and kestractl in Claude Code
  • setup/codex.md: the same three pieces in Codex
  • setup/cursor.md: the same three pieces in Cursor
  • setup/other-agents.md: Windsurf, OpenCode and any agent that reads skill files or speaks MCP over HTTP
  • setup/kestractl.md: the command line
  • setup/vscode.md: the VS Code extension
  • setup/ai-copilot.md: the in-product assistant and the model provider it needs
  • setup/flow-mcp-servers.md: letting an outside agent run your flows as tools

Update or remove

The Docker command has --pull=always and the Compose file pull_policy: always, so running docker run or docker compose up again pulls the current image. Moving from 1.x to 2.0 has its own guide, and the migrate-kestra-2 skill guides a Kestra 1.3 instance through it. Source: https://kestra.io/docs/develop-with-ai/agent-skills

To stop the single container, press Ctrl+C. --rm removes the container, and the volumes stay. To start fresh, the Quickstart gives:

docker volume rm kestra_data kestra_db

Source: https://kestra.io/docs/quickstart

The docs give no removal steps for Docker Compose, the skills or the MCP entry. These notes are Mindket's, not Kestra's: the Compose file names two volumes, postgres-data and kestra-data. The skill installer writes to .claude/skills/ for Claude Code and to .agents/skills/ for Cursor and Codex, so the skill folders in those places are what to delete. Remove the kestra MCP entry with your agent's own MCP commands or config file.

Usage data

Kestra sends anonymous usage data by default, in two separate streams. The server-side report covers host data (CPU, RAM, OS, JVM and a machine fingerprint), the plugins installed, flow counts and task and trigger types, execution counts and durations, and common data such as server type, version, time zone and URL. The UI sends its own report from the browser. Both must be set to false to stop all of it:

kestra:
  anonymous-usage-report:
    enabled: false
  ui-anonymous-usage-report:
    enabled: false

Source: https://kestra.io/docs/administrator-guide/usage

Other outbound connections

Sources

Files
README.md  7 KB
setup/ai-copilot.md  4 KB
setup/claude-code.md  6 KB
setup/cloud-and-kubernetes.md  7 KB
setup/codex.md  3 KB
setup/cursor.md  3 KB
setup/docker-compose.md  4 KB
setup/docker.md  6 KB
setup/flow-mcp-servers.md  4 KB
setup/kestractl.md  5 KB
setup/other-agents.md  4 KB
setup/vscode.md  4 KB

12 files, 56 KB, downloaded as a zip.

What’s new

  • Version 2 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • Version 1 · 2026-11-03

Compare with similar

Listed GitHub projects in the same category that share the most topics with this one.

ProductStarsActivityLanguageLicenseLast change
Kestra This page30,168ActiveJavaApache-2.0
DiffineryShares devops · ai-agents82ActiveTypeScriptApache-2.0
agent-desktopShares automation · ai-agents19,705ActiveRustApache-2.0
Numbers as Mindket last read them, from 2026-11-06 to 2026-11-09. Activity is read from each project’s last change on GitHub: Active within 30 days, Quiet within 180, Stale after that.

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

tchiotludoShow HN: Kestra - Open-Source Airflow AlternativeHey HN, I'm really proud to share with you my new open source project: Kestra https://github.com/kestra-io/kestra I created a few years ago a successful open source AKHQ project: https://github.com/tchiotludo/akhq (renamed from KafkaHQ) which has been adopted by big companies like Best Buy,…142 points · 69 repliesLoïc MathieuAfter migrating Kestra from Java 21 to Java 25, we see a significant improvement in memory usage. It uses 35% less heap and 12% less metaspace! Upgrading always brings benefits ;) #java #kestra github.com/kestra-io/ke...21 likes · 2 replies@ankr08@kestra_io This optimization hardens core execution logic against extreme production concurrency, keeping distributed data pipelines stable and zero-lag under heavy traffic. Big respect to the team for the rigorous review! Cc: @Malaydewangan09 @jymaire @arsh_goyal @JohnCrickett (2/3)r/BestGitHubReposKestra: Open-source orchestration platform for data, AI, and infrastructure workflows (29k stars)tchiotludoAsk HN: Open-source with Kafka as dependencies, is this a instant turn off?We have launched Kestra (https://github.com/kestra-io/kestra), an open source data scheduling and orchestration platform that features high scalability and availability. To achieve this, we rely on Kafka as our core database. We have received feedback that Kafka can be difficult to manage and is a…1 pointLoïc Mathieu@kestra.io just published a @clever.cloud plugin! @codeka.io now you know what to do ;) github.com/kestra-io/pl...2 likes · 1 reply@T1doo_AI定时跑脚本、处理数据,流程一复杂就难排错? Kestra 用 YAML 和网页界面编排任务,提供调度、执行历史和日志,适合自动化与数据团队。上线前设置密钥、权限和失败重试。 https://t.co/Qo5FCz0tHy #自动化 #数据工程r/selfhostedKestra 2.0 is out. Easier to self-host and scale, still Open SourcejolooooN8n vs. node-red, which to use for AI workloadsWould this be something that Activepieces or Kestra could also do? https://github.com/activepieces/activepieces https://github.com/kestra-io/kestraLoïc MathieuWe're only 48 stars away from 30k! If you haven't starred Kestra yet and want to sponsor us, star us! github.com/kestra-io/ke...2 likes@laogeai定时脚本一开始几条,后来散在十几台机器上,谁跑失败了都不知道。 Kestra 把任务收到一个平台:声明式写流程、几百种插件、日志和失败原因都留着。 https://t.co/f7X2yAZQmpthunderbongKestra is an open-source data orchestration platform for complex workflowsGitHub link https://github.com/kestra-io/kestra

Searched

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar projects

See all in Developer

agent-desktop

vercel-labs · Kit

Enables AI agents to read and interact with desktop applications on macOS, Windows, and Linux using accessibility trees instead of screenshots. It provides a C…

New19.7k

Diffinery

codician-team · Kit

Hosts Git repositories, pull requests, code review and GitHub Actions workflows on your own Cloudflare account, with guarded accounts for AI coding agents.

New82

Claude Code Skills & Plugins

alirezarezvani · Skill

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

New29.8k