Installing connectors in self-managed desktop modeler

Hi,
I’m completely new to all of this.
I’m trying to run a self-managed version using the docker compose.
To get the out-of-the-box connectors to work I simply had to add the element-templates to the folder of the camunda desktop modeler. But if I want to add any other connector I can’t get it to work. e.g. this one: camunda-connectors/connector-smtp at main · Infosys/camunda-connectors · GitHub
I build it using: mvn clean package, I then put the .jar in the docker container. (I add a volume in the docker_compose.yml), but then when I start the container I get this error in the connectors container:

Error: Could not find or load main class io.camunda.connector.runtime.app.ConnectorRuntimeApplication
Caused by: java.lang.ClassNotFoundException: io.camunda.connector.runtime.app.ConnectorRuntimeApplication

Any ideas what im doing wrong?

Thomas, i came across similar situation, wondering if you resolved it?

Hi @Thomas2 , The Error: Could not find or load main class io.camunda.connector.runtime.app.ConnectorRuntimeApplication

means that the connector JAR you’re trying to run is not a full executable application — it’s just a connector implementation, not a “standalone Spring Boot application” like the standard connectors-bundle image expects.

In Camunda 8 Self-Managed, the Connectors Runtime container is a Spring Boot app that scans for connector “function” beans inside its classpath.

When you mount your custom connector JAR, it should not try to replace the Connectors Runtime app, but simply be loaded into the Connectors Runtime classpath.

Your mistake seems to be trying to boot your custom connector JAR as a separate application, but the JAR you built (from Infosys’ repo) doesn’t include the main application class (io.camunda.connector.runtime.app.ConnectorRuntimeApplication) — that’s why you get that error.

To fix this properly:

  1. Keep using the official Camunda Connectors Runtime container (e.g., camunda/connectors-bundle:latest).

  2. Mount your custom connector JAR into the container, into a folder that’s on the classpath, e.g., /opt/connectors.

  3. Tell the Connectors Runtime to scan your custom JAR by setting an environment variable:
    CAMUNDA_CONNECTOR_CUSTOM_CONNECTORS_ENABLED=true

  4. Optionally, override classpath or extend the connectors runtime by creating a custom docker image if needed.

Assume you built the SMTP connector as connector-smtp-1.0.0.jar.

docker-compose.override.yml or directly inside docker-compose.yml:

  connectors:
    image: camunda/connectors-bundle:latest
    environment:
      - CAMUNDA_CONNECTOR_CUSTOM_CONNECTORS_ENABLED=true
    volumes:
      - ./connectors:/opt/connectors

Your folder structure:

./connectors/connector-smtp-1.0.0.jar

The official Connectors Runtime will auto-scan /opt/connectors for JARs containing Beans.

•	Do NOT try to “start” your JAR manually.
•	Just drop your JAR into a directory mounted inside the container (like /opt/connectors).
•	Set CAMUNDA_CONNECTOR_CUSTOM_CONNECTORS_ENABLED=true.
•	Camunda Connectors Runtime auto-scans and finds the SMTP connector.
•	Then, you can use it by uploading or referencing its Element Template in the Modeler.

If your SMTP connector is not a Spring Bean yet (it should implement the InboundConnectorFunction or OutboundConnectorFunction), make sure the @OutboundConnector or @InboundConnector annotations are properly present.