
Deploy Kestra
Kestra 1.3 declarative workflow orchestration with 1,000+ plugins.
kestra
Just deployed
/app/storage
Just deployed
/var/lib/postgresql/data
Deploy and Host Kestra on Railway
Kestra is an event-driven, declarative orchestration platform. You describe flows in YAML with tasks for scripts, SQL, HTTP, files, cloud services and more than 1,000 plugins, and Kestra schedules them, reacts to events and webhooks, retries failures and shows every execution with logs, outputs and a topology view in its UI.
About Hosting Kestra
This template deploys Kestra v1.3.40 standalone, the full image with all plugins, backed by a Railway Postgres database for the repository and queue. Internal storage for files and outputs lives on a Railway volume. Basic authentication protects the UI and API with a generated password. Railway has no Docker daemon, so script tasks such as Shell and Python run as processes inside the container by default. Worker threads and JVM heap are pinned. Plan for at least 1.5 GB of memory. Back up Postgres regularly. Flows are stored in Postgres, so they survive redeploys and can also be managed with the API or Terraform.
Common Use Cases
- Scheduled data pipelines and ETL written as YAML flows
- Event-driven automation triggered by webhooks, files or messages
- Replacing cron jobs and scattered scripts with an observable orchestrator
Dependencies for Kestra Hosting
kestra/kestra:v1.3.40(official image with plugins)- Railway Postgres (
ghcr.io/railwayapp-templates/postgres-ssl:18) with a volume - A Railway volume at
/app/storagefor internal storage
Deployment Dependencies
Implementation Details
| Service | Image | Networking | Storage |
|---|---|---|---|
| kestra | kestra/kestra:v1.3.40 | public domain on 8080; private IPv4/IPv6 | volume at /app/storage |
| Postgres | Railway Postgres 18 | private only | volume |
id: hello
namespace: company.team
tasks:
- id: python
type: io.kestra.plugin.scripts.python.Script
script: print('hello from Railway')
| Variable | Default | Purpose |
|---|---|---|
KESTRA_ADMIN_EMAIL / KESTRA_ADMIN_PASSWORD | admin@example.com / generated | Basic auth login |
KESTRA_CONFIGURATION | Postgres, storage, auth, task runner | Complete Kestra configuration |
JAVA_OPTS | -Xmx1g | JVM heap |
Notes:
- Script tasks default to the
Processtask runner; theDockerrunner does not work on Railway. - The start command is
server standalone --worker-thread=8; raise the thread count for heavier workloads.
This is a community-maintained deployment package and does not imply affiliation with or endorsement by the Kestra project or its maintainers.
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