Install Kestra on Windows – Standalone JAR Setup
Run Kestra on Windows using the standalone executable JAR — no Docker required.
One use case for this setup is running a Windows remote worker as part of a worker group, allowing Windows-native scripts such as PowerShell or batch commands to be executed within a broader Kestra deployment.
For a production-grade setup on Windows, consider running Kestra through Docker Compose with WSL 2 instead.
Prerequisites
- Install Java JRE 21 — download the
x64MSI installer and run it. - Download the latest Kestra binary from the Releases page — find it under Assets for the desired version (e.g.,
kestra-1.3.6). - Rename the downloaded file to
kestra.bat. - Open CMD in the directory containing
kestra.bat.
Plugin installation
The standalone JAR ships without plugins. You must install them before starting the server, otherwise tasks that rely on plugins will fail.
Install specific plugins
Install only the plugins you need by listing them explicitly:
.\kestra.bat plugins install io.kestra.plugin:plugin-script-powershell:LATEST io.kestra.plugin:plugin-script-python:LATESTFind plugin identifiers in the full plugins list.
Install all plugins
To install every available plugin at once, use the --all flag:
.\kestra.bat plugins install --allInstalling all plugins downloads approximately 3 GB of files sequentially and can take a significant amount of time. Prefer installing specific plugins when possible.
Use a plugins directory
Point Kestra to a directory of pre-downloaded plugin JARs using the KESTRA_PLUGINS_PATH environment variable:
set KESTRA_PLUGINS_PATH=C:\kestra\pluginsStart the server
Use server local for a quick local setup backed by an H2 embedded database. To connect to an external database (PostgreSQL or MySQL), use server standalone and provide a full configuration file.
.\kestra.bat server local --config path\to\your\config.yamlThe .\ prefix is required when running a file from the current directory in CMD. Once started, Kestra is accessible at localhost
server local is suitable for local testing only — do not use it in production.
Configuration
Kestra is configured via a YAML file passed with --config (or -c). If no flag is provided, Kestra looks for %USERPROFILE%\.kestra\config.yaml by default.
A minimal configuration for local testing:
kestra: repository: type: memory storage: type: local local: base-path: "C:\\kestra\\storage" queue: type: memoryFor a production setup or Enterprise installation, your configuration requires at minimum:
kestra: encryption: secret-key: "<base64-encoded-32-char-key>" # generate with: openssl rand -base64 32 secret: type: jdbc jdbc: secret: "<your-jdbc-secret-key>" repository: type: postgres queue: type: postgres storage: type: s3 s3: endpoint: "<your-s3-endpoint>" access-key: "<your-aws-access-key-id>" secret-key: "<your-aws-secret-access-key>" region: "<your-aws-region>" bucket: "<your-s3-bucket-name>" ee: license: id: "<your-license-id>" fingerprint: "<your-license-fingerprint>" key: | <your-license-key>
datasources: postgres: url: jdbc:postgresql://<host>:<port>/<db> driver-class-name: org.postgresql.Driver username: "<username>" password: "<password>"The JDBC secret backend stores secrets in the same PostgreSQL database as Kestra. For cloud-based alternatives such as AWS Secrets Manager, Azure Key Vault, or Google Secret Manager, see the external secrets manager documentation. For all secret and encryption configuration options, see the Security and secrets guide.
For the full list of configuration options, see the Configuration guide.
Alternative: Docker Compose with WSL 2
For a production-ready setup on Windows, Docker Compose running inside WSL 2 is the recommended approach. It pairs Kestra with a PostgreSQL container and avoids the limitations of the H2 embedded database.
Prerequisites:
- Docker Desktop with the WSL 2 backend enabled. In Docker Desktop, go to Settings → Resources → WSL Integration and confirm you are using WSL 2 rather than the Windows backend. Docker runs significantly better for Kestra under WSL 2.
- A WSL 2 distribution installed and running (e.g. Ubuntu via the Microsoft Store).
Once those are in place, follow the Docker Compose installation guide. It includes a curl command to download the example compose file and a pre-configured PostgreSQL container.
Was this page helpful?