Skip to main content
Version: 8.8 (unreleased)

Developer quickstart with Docker Compose

Get started with a Docker Compose configuration to run Camunda Self-Managed components (Orchestration cluster, Optimize, Console, Web Modeler and Connectors). Docker Compose also supports document storage and management with document handling.

note

While the Docker images are supported in production, the provided Docker Compose files are only for local development and testing. For production, Camunda recommends Kubernetes.

Prerequisites

The following prerequisites are required to run Camunda Self-Managed via Docker Compose:

PrerequisiteDescription
Docker ComposeVersion 1.27.0 or higher (supports the latest compose specification).
DockerVersion 20.10.16 or higher.

Run Camunda 8 with Docker Compose

To start a complete Camunda 8 Self-Managed environment locally:

  1. Download the artifact for Camunda 8 Docker Compose, then extract it.

  2. Run the following command in the extracted directory:

    docker compose up -d
  3. Wait for the environment to initialize (this can take several minutes). Monitor the logs (especially the Keycloak container log) to ensure the components have started.

Access components

You can log in to the component web interfaces with the default credentials:

  • Username: demo
  • Password: demo

Configuration options

Running docker compose up -d starts all Camunda components. The Camunda Distributions repository also includes additional configuration files for lightweight deployments.

Configuration FileDescription
docker-compose.yamlContains all Camunda 8 components for a full-stack deployment, including the Orchestration cluster, Connectors, Optimize, Console, Elasticsearch, Keycloak, Web Modeler, and PostgreSQL.
docker-compose-core.yamlContains only the Camunda 8 Orchestration cluster components and Connectors.
docker-compose-web-modeler.yamlContains the standalone Camunda 8 Web Modeler installation. For more information, see the Web Modeler instructions.

To start Camunda with an alternate configuration, specify the configuration file using the following command:

docker compose -f docker-compose-core.yaml up -d

Orchestration Cluster

ComponentURL
Operatehttp://localhost:8088/operate
Tasklisthttp://localhost:8088/tasklist
Identityhttp://localhost:8088/identity
Orchestration cluster REST APIhttp://localhost:8088/v2
Zeebe API (gRPC)localhost:26500

Management and modeling components

ComponentURL
Consolehttp://localhost:8087
Optimizehttp://localhost:8083
Management Identityhttp://localhost:8084
Web Modelerhttp://localhost:8070

External dependencies

ComponentURLDescription
Elasticsearchhttp://localhost:9200Used by the Orchestration Cluster (as secondary storage) and Optimize.
Keycloakhttp://localhost:18080/auth/Used to manage users for Management and Modeling components. Users for the Orchestration Cluster are managed within the Orchestration cluster itself. Access with username admin and password admin.

Stop Camunda 8

Run the following command to stop Camunda 8:

docker compose down -v
caution

This will also delete any data you have created.

To tear down the environment and keep your data, run the following command:

docker compose down

Modeling and process execution

Web Modeler

info

Non-production installations of Web Modeler are limited to five collaborators per project. See licensing.

Standalone setup

Web Modeler is included by default when running the docker-compose.yaml configuration but can also be run independently with Identity, Keycloak, and Postgres as dependencies.

The following command uses the provided docker-compose-web-modeler.yaml configuration file to start only Web Modeler and its dependencies:

docker compose -f docker-compose-web-modeler.yaml up -d

To tear down the environment (including all data and volumes), run the following command:

docker compose -f docker-compose-web-modeler.yaml down -v

Deploy or execute a process

The local orchestration cluster started by the provided docker-compose.yaml is pre-configured in Web Modeler.

Emails

The provided configuration includes Mailpit as a test SMTP server. It captures all emails sent by Web Modeler but does not forward them to the actual recipients.

You can access emails in Mailpit’s web UI at http://localhost:8075.

Use the Orchestration Cluster REST API

Desktop Modeler

You can also use Desktop Modeler instead of Web Modeler in order to model BPMN, DMN, and Camunda Forms on your local machine.

info

Desktop Modeler is open source and free to use.

Download the Desktop Modeler to start modeling BPMN, DMN, and Camunda Forms on your local machine.

Secure the Orchestration Cluster REST API

By default, the Orchestration cluster REST API is publicly accessible without requiring any client credentials for development purposes.

Connectors

Both the full and lightweight Docker Compose files include a configuration for Camunda connectors. Refer to the Connector installation guide for details on how to provide related connector templates for modeling.

Connector secrets

Secrets can be added into the connector runtime using the included connector-secrets.txt file. Add secrets in the format NAME=VALUE, one per line. The secrets will then be available in the connector runtime as secrets.NAME.

Custom connectors

To add custom connectors, create a new Docker image, bundling them as described in the Connectors repository.

Alternatively, you can mount new connector JARs as volumes into the /opt/app folder by adding this to the Docker Compose file. Keep in mind that connector JARs must include all necessary dependencies inside the JAR.

Next steps

Check out the getting started guide to start a new Java Project to connect to this local cluster.