Automate business processes.

Kestra

Declarative YAML orchestration for data pipelines and ETL — self-hosted on your VPS, Apache-2.0, 15 k+ stars.

4 GB minimum (JVM-based); 8 GB recommended for Docker tasks RAM 2 vCPU minimum Available

Kestra is an open-source orchestration platform (Apache-2.0, 15 k+ stars) where every workflow is a versioned YAML file. It targets data and ETL pipelines, event-driven automation and scheduled tasks — the use cases where Python DAGs feel heavy and no-code tools feel limited.

Self-hosted on a VPS, Kestra runs as two containers: PostgreSQL 16 and the Kestra server in standalone mode. It exposes a polished web UI with a YAML flow editor, an execution timeline, real-time logs and a plugin browser. Over 600 plugins cover SQL databases (PostgreSQL, MySQL, BigQuery, Snowflake), cloud storage (S3, GCS, Azure Blob), scripts (Python, Bash, Go), HTTP APIs and Docker task runners.

Workflows are triggered by cron schedules, incoming webhooks, file detection or API calls. Each execution is fully logged — inputs, outputs, sub-task timings — and retryable with configurable back-off. Because Kestra can mount the Docker socket, workers can spin up isolated containers for each script, keeping the host clean and making data pipelines fully reproducible.

Key features

Everything-as-Code — workflows are YAML files, versionable in Git, reviewable in PRs, reproducible across environments.
600+ plugins — SQL, S3, Python/Bash/Go scripts, Docker, HTTP, cloud services and more, browseable from the UI.
Multiple trigger types — cron, webhook, API call, file detection; chain flows with sub-flows.
Docker task runner — each script runs in its own isolated container, keeping the host clean.
Full execution history — inputs, outputs, real-time logs, per-task timings and retry controls.
Topological view — visualise the dependency graph of any flow directly in the web editor.
Apache-2.0 licence — use, fork and distribute without restriction.

When to use this solution?

1

Data pipeline orchestration

Schedule nightly ETL jobs that extract from a PostgreSQL database, transform with a Python script and load into a data warehouse. Kestra handles retries, failure alerts and execution history — no Airflow cluster required.

2

Event-driven automation

Trigger a workflow on an incoming webhook (from GitHub, Stripe, your own API) to process data, call external services and store results. Kestra replaces ad-hoc cron scripts with a structured, observable and retryable pipeline.

3

Scheduled reporting

Run a SQL query every Monday at 07:00, format the results in Python and POST a Slack message or send an email. Everything is logged, observable and replayable from the Kestra UI.

Deploy Kestra on your VPS

Guide optimized for ServOrbit Cloud VPS.

01

Deploy Kestra from the ServOrbit Marketplace

Go to Marketplace → Automation & Workflows → Kestra in your ServOrbit control panel and click Deploy. AWX provisions Docker, creates the PostgreSQL database, generates the required secrets, configures nginx and starts both containers automatically.

02

Open the Kestra UI

Navigate to your domain (or IP if no domain is attached). The Kestra dashboard opens directly — no login required by default. The first screen shows the Flows list, which is empty on a fresh install.

03

Create your first flow

Click New Flow, give it an id and a namespace (e.g. company.etl). In the YAML editor, add one task: io.kestra.plugin.core.log.Log with message: 'Hello Kestra'. Save and click Execute — you will see the execution appear in the timeline with its logs.

04

Add a scheduled trigger

Add a triggers section to the flow YAML with a io.kestra.plugin.core.trigger.Schedule cron expression (e.g. cron: 0 7 * * MON). Save the flow and verify that a scheduled execution appears in the timeline at the next cron tick.

05

Explore the plugin library

In the left sidebar, click Plugins to browse the 600+ available task types. Use the search to find the plugin for your use case: database connectors, cloud storage, scripting runtimes and API callers are all there with inline documentation and examples.

Frequently asked questions

No. Kestra is accessible via its VPS IP address on port 8080 without a domain. Adding a domain gives you a clean URL, TLS termination and nginx reverse proxy — recommended for any internet-facing instance.

Embed the deploy button

Maintaining a project that uses Kestra? This button lets your readers deploy it on a VPS in one click, without reading Docker documentation.

Deploy Kestra on ServOrbit
Markdown
[![Deploy Kestra on ServOrbit](https://servorbit.com/brand/deploy/button.svg)](https://servorbit.com/vps-cloud?template=kestra&utm_source=deploy-badge&utm_medium=referral&utm_campaign=kestra)
HTML
<a href="https://servorbit.com/vps-cloud?template=kestra&utm_source=deploy-badge&utm_medium=referral&utm_campaign=kestra"><img src="https://servorbit.com/brand/deploy/button.svg" alt="Deploy Kestra on ServOrbit" height="40"></a>

The button points to a VPS order with the template preselected. The image is served from servorbit.com — nothing to host on your side.

Automate business processes.

Activate Kestra on your infrastructure.

Dedicated Cloud VPS — IPv4 included, European datacenter, support included. Your data never leaves your server.

Recommended configuration: 4 GB minimum (JVM-based); 8 GB recommended for Docker tasks RAM · 2 vCPU minimum

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.