Run Kestra Enterprise Without Docker Using a JAR File
For the complete documentation index, see llms.txt. For a full content snapshot, see llms-full.txt. Append.mdto anykestra.io/docs/*URL for plain Markdown.
Available on:Enterprise Edition
To deploy Kestra without Docker, use the standalone JAR — a single executable that runs in any environment with JVM 21+.
Standalone JAR
Download the Kestra EE JAR from https://registry.kestra.io/exe/ using your license ID and fingerprint as Basic auth credentials. Use /exe/latest for the latest release or pin a specific version:
# Latestcurl -u "$LICENSE_ID:$LICENSE_FINGERPRINT" https://registry.kestra.io/exe/latest | funzip > kestra-ee
# Specific versionVERSION=2.0.3curl -u "$LICENSE_ID:$LICENSE_FINGERPRINT" https://registry.kestra.io/exe/$VERSION | funzip > kestra-eeThis provides a single executable file. Store it in your execution environment as kestra.
Make the file executable (Linux or macOS):
chmod +x kestra-ee-VERSION # Replace VERSION with your versionOr with a file path:
mv kestra-ee-VERSION /usr/local/bin/kestra # Replace with your version and execution environment file pathchmod +x /usr/local/bin/kestraThen run:
./kestra-ee-VERSION server standalone # Replace VERSION with your versionYou need to provide a configuration with a connection to a database.
For Windows users:
java -jar kestra-ee-VERSION # Replace VERSION with your versionOr with a file path assuming execution from the current directory:
java -jar kestra-ee-VERSION server standalone -c ./application.yaml -p ./plugins --port=8080 # Replace VERSION with your versionPlugins
In standalone JAR deployments, all plugins must be downloaded separately.
Install kestractl, then download plugins with kestractl plugins download. Enterprise plugins are served from the Kestra registry, so pass your license credentials:
kestractl plugins download <version> \ --plugins-dir ./plugins \ --maven-repository https://registry.kestra.io/maven \ --maven-username "$KESTRA_LICENSE_ID" \ --maven-password "$KESTRA_LICENSE_FINGERPRINT"Replace <version> with your Kestra version. This downloads every plugin compatible with that version. To download only selected plugins, pass --compatible-for <version> with one --plugins flag per plugin instead of the version argument. Start Kestra with -p ./plugins or set KESTRA_PLUGINS_PATH to that directory.
The server CLI can also install plugins directly, for example kestra plugins install --all.
Secret and storage plugins
Secret managers and storage backends other than local storage also ship as separate plugins. To list the ones your configuration requires, pass your configuration file to kestractl:
kestractl plugins list <version> --from-config /etc/kestra/application.yamlDownload them into the same plugins directory with the same registry credentials:
kestractl plugins download <version> \ --from-config /etc/kestra/application.yaml \ --plugins-dir ./plugins \ --maven-repository https://registry.kestra.io/maven \ --maven-username "$KESTRA_LICENSE_ID" \ --maven-password "$KESTRA_LICENSE_FINGERPRINT"See Bootstrap core plugins with --from-config for the supported backends.
Enterprise deployment configuration
For the full list of configuration options, refer to the Configuration Reference.
To enable Kestra Enterprise features, configure the following parameters:
| Configuration Parameter | Required | Documentation Link | Description |
|---|---|---|---|
| Enterprise License | Yes | Enterprise and Advanced Features | License information for the Kestra instance |
| Multi-tenancy | Yes | Enterprise and Advanced Features | Enables/disables multi-tenancy (required for SCIM) |
| Secret Manager | Yes | Security and Secrets | Configure a secret manager in RW or RO mode |
| Encryption Key | Yes | Security and Secrets | Key to encrypt inputs/outputs in flows |
| Security | No | Security and Secrets | Configure Instance Owner (also settable in UI on startup) |
| User Invitations | No | Runtime and Storage, Observability and Networking | Required for email invitations (not needed with LDAP/SCIM) |
| SSO | No | SSO | Configure OIDC provider |
| LDAP | No | LDAP | Connect to an existing LDAP provider |
| SCIM | No | SCIM | Sync user/group membership with SCIM 2.0 |
Starting Kestra
Kestra can be started in standalone mode or in a distributed setup for production.
Ensure a database is configured and your Enterprise credentials are stored in application.yaml.
Standalone server
kestra server standalone -c ./application.yaml -p ./plugins --port=8080This starts Kestra as a standalone service on port 8080.
Distributed mode
For production, run Kestra in distributed mode for scalability and high availability.
Each component can run independently across servers, with shared access to the same database (no TCP communication is required between components).
Example with all components on one server:
kestra server webserver -c ./application.yaml -p ./plugins --port=8080kestra server scheduler -c ./application.yaml -p ./plugins --port=8081kestra server worker -c ./application.yaml -p ./plugins --port=8082kestra server executor -c ./application.yaml -p ./plugins --port=8083Was this page helpful?