Install Kestra on a standalone server with a simple executable file.

Overview

To deploy Kestra without Docker, there's a standalone JAR available that allows deployment in any environment that has JVM version 17+.

The latest JAR can be downloaded via Kestra API.

This is an executable JAR:

  • For Linux & MacOS, run it with ./kestra-VERSION <command>.
  • For Windows, rename the file ./kestra-VERSION to ./kestra-VERSION.bat, and run it from CMD.

For example, to launch Kestra:

  • in local mode (with an H2 local file database), you will run ./kestra-VERSION server local.
  • in standalone mode (you need to provide a configuration with a connection to a database) , you will run ./kestra-VERSION server standalone.

systemd

On systemd-based systems, Kestra can be deployed as a systemd service. Here is a basic unit file template:

systemd
[Unit]
Description=Kestra Event-Driven Declarative Orchestrator
Documentation=https://kestra.io/docs/
After=network-online.target

[Service]
Type=simple
ExecStart=/bin/sh <PATH_TO_YOUR_KESTRA_JAR>/kestra-<VERSION> server standalone
User=<KESTRA_UNIX_USER>
Group=<KESTRA_UNIX_GROUP>
RestartSec=5
Restart=always

[Install]
WantedBy=multi-user.target

Install plugins from a Docker image

To copy the plugins from a Docker container to your local machine, you can use the following commands:

bash
id=$(docker create kestra/kestra:develop-full)
docker cp $id:/app/kestra kestra
docker cp $id:/app/plugins plugins
docker rm $id
./kestra server local

Installation on Windows

Here is how you can launch a Standalone Kestra server on Windows:

  1. Install java jre 21 -- use the x64 version in the MSI format.
  2. Go to the Releases page on the main Kestra repository.
  3. Select the desired version and download the binary from the Assets section.
  4. Rename the downloaded file to kestra.bat.
  5. Install the plugins you need from the following list using the command kestra.bat plugins install io.kestra.plugin:plugin-script-powershell:LATEST io.kestra.plugin:plugin-script-python:LATEST or by coying the plugins from a Docker container to your local machine, as described in the section above.
  6. Start the server using the command kestra.bat server local.

Configuration

You can either put your whole configuration in the environment variable KESTRA_CONFIGURATION or you can specify a configuration file to read through --config (or -c) option. If neither of these option is used, Kestra will read from ${HOME}/.kestra/config.yml.

If you are using KESTRA_CONFIGURATION environment variable, you'll need to have a directory called confs in the directory where you run Kestra.

Configuration options are available in the Administrator Guide, you can also see the default configuration available on GitHub.

Was this page helpful?