Deploy Kestra | (Just Updated) Workflow Orchestration, Shell and Python Tasks Work

Kestra workflow engine. Login set at deploy, data on volumes, healthcheck

Deploy Kestra | (Just Updated) Workflow Orchestration, Shell and Python Tasks Work

Just deployed

/var/lib/postgresql

Just deployed

/app/storage

Deploy and Host Kestra on Railway

Kestra is an open-source workflow orchestration engine. Flows are declared in YAML and triggered by schedules, webhooks or events, and tasks can run shell commands, Python scripts, SQL, HTTP calls and several hundred plugins.

This template runs Kestra 1.3 from a digest-pinned official image together with a PostgreSQL 17 service, with the web UI and API on a public Railway domain and both services on volumes.

About Hosting Kestra

  • The UI and API are behind a login from the first request. An admin password is generated per deploy (KESTRA_PASSWORD, user admin@kestra.io). An anonymous API call returned 401; the same call with the generated credentials returned 200.
  • Shell and Python tasks run without Docker. Kestra's default task runner starts a container, which needs a Docker socket that Railway does not provide. Here the shell and Python task types default to the in-process runner, and a Commands flow ran to SUCCESS on a fresh deploy.
  • State survives redeploys. Flows, executions and logs live in PostgreSQL on a volume, and task outputs live in Kestra's internal storage on a second volume. A flow created before a redeploy and its execution history were both present after it.
  • Storage is writable. Railway mounts volumes as root, and Kestra's image runs as a non-root user, so a plain mount is read-only to it. The template runs the service as root so the storage directory can be written.
  • A healthcheck is set on /ping, so a deploy that does not start is reported as failed instead of looking live.

Common Use Cases

  • Scheduled data pipelines and ETL jobs defined as YAML
  • Cron replacement with retries, logs and a UI
  • Event and webhook driven automation across APIs
  • Orchestrating Python and shell scripts without a separate scheduler

Dependencies for Kestra Hosting

  • A PostgreSQL service (created by the template) for the queue and repository
  • One volume for Kestra's internal storage and one for PostgreSQL (created by the template)

Deployment Dependencies

Implementation Details

VariablePurpose
KESTRA_PASSWORDPassword for the admin@kestra.io user, generated per deploy.
PGPASSWORDPassword for the bundled PostgreSQL service.
PGHOSTPrivate hostname of the bundled PostgreSQL service.

Open the service's public domain and sign in with admin@kestra.io and KESTRA_PASSWORD. The API accepts the same credentials with HTTP basic auth.

Why Deploy Kestra on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Kestra on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
47
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51