Standalone Server
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 fromCMD
.
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
.
Running the jar version will come without any plugins. You need to install them manually with the kestra plugins install directory_with_plugins/
command. Alternatively, point to a directory with the plugins in the configuration file or an environment variable KESTRA_PLUGINS_PATH
e.g. KESTRA_PLUGINS_PATH=/Users/anna/dev/plugins
.
Install plugins from a Docker image
To copy the plugins from a Docker container to your local machine, you can use the following commands:
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:
- Install java jre 21 -- use the
x64
version in the MSI format. - Go to the Releases page on the main Kestra repository.
- Select the desired version and download the binary from the
Assets
section. - Rename the downloaded file to
kestra.bat
. - 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. - 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?