Configuration file

This page explains configuration file structure

Let's start with that there are two possible ways to configure the app, they can interchange each other or even supplement each other.

There are two ways: YAML config & env. variables config. We strongly recommend using YAML in favor of env variables for the most part of the config. You can use env vars to override the default config on some different environments.

This tool can help you to translate your config back and forth from YAML to env vars.

We will mostly provide examples of configs in YAML format, but sometimes single properties might be written in form of env variables.

Rather than writing your config from a scratch, it would be more convenient to use one of the ready-to-go compose examples and adjust it to your needs.

Providing a config path for the app instance:

Docker: docker run -it -p 8080:8080 -e spring.config.additional-location=/tmp/config.yml -v /tmp/kui/config.yml:/tmp/config.yml provectuslabs/kafka-ui

Docker compose:

services:
  kafka-ui:
    container_name: kafka-ui
    image: provectuslabs/kafka-ui:latest
    environment:
      KAFKA_CLUSTERS_0_NAME: local
      # other properties, omitted
      SPRING_CONFIG_ADDITIONAL-LOCATION: /config.yml
    volumes:
      - /tmp/config.yml:/config.yml

Jar: java -Dspring.config.additional-location=<path-to-application-local.yml> -jar <path-to-jar>.jar

Basic config structure

kafka:
  clusters:
    -
      name: local
      bootstrapServers: localhost:29091
      schemaRegistry: http://localhost:8085
      schemaRegistryAuth:
        username: username
        password: password
#     schemaNameTemplate: "%s-value"
      metrics:
        port: 9997
        type: JMX
  • name: cluster name

  • bootstrapServers: where to connect

  • schemaRegistry: schemaRegistry's address

  • schemaRegistryAuth.username: schemaRegistry's basic authentication username

  • schemaRegistryAuth.password: schemaRegistry's basic authentication password

  • schemaNameTemplate: how keys are saved to Schema Registry

  • metrics.port: open the JMX port of a broker

  • metrics.type: Type of metrics, either JMX or PROMETHEUS. Defaulted to JMX.

  • readOnly: enable read-only mode

Configure as many clusters as you need by adding their configs below separated with -.

Last updated