Local installation with Camunda 8 Run
Camunda 8 Run is not supported for production use.
The Camunda 8 Run script allows you to install and start a simplified, single-application Camunda configuration in a local development environment. This page guides you through using Camunda 8 Run on a local or virtual machine.
Camunda 8 Run includes the following:
- Zeebe
- Operate
- Tasklist
- Connectors
- Elasticsearch
Prerequisites
OpenJDK 21+: Required for running Camunda 8 as a Java application.
- Docker 20.10.21+: Required for running Camunda 8 via Docker Compose.
- Desktop Modeler
- If using Ubuntu: Ubuntu 22.04 or newer
After installing OpenJDK, ensure JAVA_HOME
is set by running java -version
in a new terminal.
If no version of Java is found, follow your chosen installation's instructions for setting JAVA_HOME
before continuing.
Install and start Camunda 8 Run
- Download the latest release of Camunda 8 Run for your operating system and architecture. Opening the .tgz file extracts the Camunda 8 Run script into a new directory.
- Navigate to the new
c8run
directory. - Start Camunda 8 Run by running one of the following in your terminal:
./start.sh
: start Camunda 8 Run as a Java application../start.sh --docker
: start Camunda 8 Run via Docker Compose.
When successful, a new Operate window automatically opens.
If Camunda 8 Run fails to start, run the shutdown script to end the current processes, then run the start script again.
Mac users may encounter the warning "c8run" Not Opened
. Follow the Apple support instructions to grant an exception.
Configuration options
The following command line arguments are available:
Argument | Description |
---|---|
--config <path> | Applies the specified Zeebe application.yaml . |
--detached | Starts Camunda 8 Run as a detached process. |
--keystore <arg> | Configure the TLS certificate for HTTPS. If not specified, use HTTP. For more information, see enabling TLS. |
--keystorePassword <arg> | Provide the password to use with a JKS keystore file. |
--port <arg> | Configure the Camunda core port to the value provided (default: 8080). |
--log-level <arg> | Set a different log level for the Camunda core. |
--docker | Download and run the Camunda Docker Compose distribution. Any additional options are not supported at this time, and will be ignored. |
--disable-elasticsearch | Do not start the built-in Elasticsearch. Ensure another Elasticsearch instance is provided via --config . See the external Elasticsearch options for more information. |
Work with Camunda 8 Run
Access Camunda components
All Camunda 8 Run components can be accessed using the username/password combination demo
/demo
.
Tasklist and Operate are available at:
- Tasklist: http://localhost:8080/tasklist
- Operate: http://localhost:8080/operate
The following components do not have a web interface, but the URLs may be required for additional configuration:
- Zeebe Gateway: http://localhost:26500
- Connectors: http://localhost:8085
The Connectors URL displays a login page, but cannot be logged into.
Deploy diagrams from Desktop Modeler
Make sure you have installed Desktop Modeler before continuing.
To deploy diagrams from Desktop Modeler, the following configuration is required:
- Target: Self-Managed
- Cluster endpoint:
http://localhost:26500
, the location of your Zeebe Gateway - Authentication: None
A success notification displays when complete. Start a new process instance to view your running process in Operate.
Use built-in and custom Connectors
Desktop Modeler automatically fetches templates for pre-built Connectors. Custom Connectors can also be added to your Camunda 8 Run distribution.
To add a custom Connector:
- Place the Connector's .jar file in the
/custom_connectors
folder contained in the/c8run
directory. - Place the element template in the appropriate folder for your installation. See Search Paths for more information.
Once configured correctly, your Connectors are available for use in Modeler.
Use Camunda APIs
Camunda 8 Run authenticates with the Tasklist, Operate, and Zeebe APIs, as well as the unified Camunda 8 REST API, by including cookie headers in each request. This cookie can be obtained by using the API endpoint /api/login
.
To authenticate and begin making requests, take the following steps:
- Tasklist, Operate, and Zeebe
- Camunda 8 REST API
- Log in as user 'demo' and store the cookie in the file
cookie.txt
:
curl --request POST 'http://localhost:8080/api/login?username=demo&password=demo' \
--cookie-jar cookie.txt
- Send the cookie (as a header) in each API request. In this case, request all process definitions:
curl --request POST 'http://localhost:8080/v1/process-definitions/search' \
--cookie cookie.txt \
--header 'Content-Type: application/json' \
--data-raw '{}'
Some endpoints in the Camunda 8 REST API are considered alpha features, and are still in development.
- Log in as user 'demo' and store the cookie in the file
cookie.txt
:
curl --request POST 'http://localhost:8080/api/login?username=demo&password=demo' \
--cookie-jar cookie.txt
- Send the cookie (as a header) in each API request. In this case, the topology of your Zeebe cluster:
curl --cookie cookie.txt localhost:8080/v2/topology
Shut down Camunda 8 Run
To shut down Camunda 8 Run and end all running processes, run ./shutdown.sh
(or .\c8run.exe stop
on Windows) from the C8Run directory.
Advanced options
Enable TLS
TLS can be enabled by providing a local file keystore using the --keystore
argument at startup. Camunda 8 Run accepts .JKS certificate files.
Access metrics
Metrics are enabled in Camunda 8 Run by default, and can be accessed at /actuator/prometheus. For more information, see the Zeebe Prometheus metrics documentation.
Start external Elasticsearch
To start Elasticsearch outside of Camunda 8 Run, set the --disable-elasticsearch
flag at startup. This prevents Camunda 8 Run from starting its own Elasticsearch instance.
The following command starts an external Elasticsearch instance via docker run
:
docker run \
-m 1GB \
-d \
--name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
elasticsearch:8.15.2
Environment variables
The following advanced configuration options can be provided via environment variables:
Variable | Description |
---|---|
ES_JAVA_OPTS | Allows you to override Java command line parameters for Elasticsearch. This can allow you to increase memory limits. Default: -Xms1g -Xmx1g |
JAVA_OPTS | Allows you to override Java command line parameters for Camunda. |