### Kafka UI Installation Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-api/src/main/resources/banner.txt Instructions for installing Kafka UI using Docker. ```shell docker run -p 8080:8080 provectus/kafka-ui ``` -------------------------------- ### Qase.io Integration Setup Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-e2e-checks/QASE.md Configuration for Qase.io integration requires setting a VM option with your Qase API token. This token is essential for authenticating with the Qase.io API. ```java -DQASEIO_API_TOKEN='%s' ``` -------------------------------- ### Quick Start Configuration Source: https://github.com/provectus/kafka-ui/blob/master/README.md Provides commands to set up UI for Apache Kafka locally or in the cloud for visualizing Kafka data. ```bash # Example commands for setting up Kafka-UI (actual commands not provided in text) # docker run -p 8080:8080 provectuslabs/kafka-ui # For more details, refer to the Quick Start guide. ``` -------------------------------- ### Install Project Dependencies Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-react-app/README.md Installs all the necessary project dependencies using pnpm, as defined in the package.json file. ```sh pnpm install ``` -------------------------------- ### Qase.io Libraries Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-e2e-checks/QASE.md The integration utilizes the qase-api and qase-testng libraries for interacting with the Qase.io API and integrating with TestNG. ```APIDOC Dependencies: - io.qase:qase-api - io.qase:qase-testng ``` -------------------------------- ### Run Development Server Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-react-app/README.md Starts the development server for the Kafka UI React application. This command is used for local development and testing. ```sh pnpm dev ``` -------------------------------- ### Authentication Configuration Source: https://github.com/provectus/kafka-ui/blob/master/README.md Details on securing the Kafka-UI installation using optional OAuth 2.0 providers like Github, Gitlab, and Google. ```APIDOC Authentication Configuration: - Supports optional Github/Gitlab/Google OAuth 2.0 for securing installation. - Refer to documentation for detailed setup: https://docs.kafka-ui.provectus.io/configuration/authentication ``` -------------------------------- ### View Allure Report Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-e2e-checks/README.md Serves the Allure report locally, allowing visualization of test results. Requires the allure commandline tool to be installed. ```bash allure serve ``` -------------------------------- ### Run Kafka UI with Docker Source: https://github.com/provectus/kafka-ui/blob/master/README.md This command starts a Kafka UI instance using a Docker image. It maps port 8080 and enables dynamic configuration. Access the UI at http://localhost:8080. ```docker docker run -it -p 8080:8080 -e DYNAMIC_CONFIG_ENABLED=true provectuslabs/kafka-ui ``` -------------------------------- ### Install pnpm Package Manager Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-react-app/README.md Installs the pnpm package manager globally using npm. pnpm is used for managing dependencies in the project. ```sh npm install -g pnpm ``` -------------------------------- ### Docker Compose for Kafka UI Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-react-app/README.md Starts the Kafka UI application using Docker Compose. This command should be run from the root directory and requires the specified docker-compose file. ```sh docker-compose -f ./documentation/compose/kafka-ui.yaml up ``` -------------------------------- ### Qase.io Step Definition Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-e2e-checks/QASE.md Step methods within test classes are annotated with @io.qase.api.annotation.Step to be recognized as individual steps in Qase.io test cases. ```java @io.qase.api.annotation.Step private void performAction() { // Action implementation } ``` -------------------------------- ### Run Kafka-ui and E2E Checks Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-e2e-checks/README.md Starts Kafka-ui using Docker Compose and then runs the E2E test suite. Allows selection of test suites like regression, sanity, or smoke. ```bash cd kafka-ui docker-compose -f kafka-ui-e2e-checks/docker/selenoid-local.yaml up -d docker-compose -f documentation/compose/e2e-tests.yaml up -d ./mvnw -Dsurefire.suiteXmlFiles='src/test/resources/%s.xml' -f 'kafka-ui-e2e-checks' test -Pprod ``` -------------------------------- ### Kafka UI Behind Nginx Proxy Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This example demonstrates how to configure Kafka UI to run behind a reverse proxy, specifically Nginx. This setup is useful for managing external access, SSL termination, and load balancing. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" environment: "KAFKA_CLUSTERS_0_NAME": "nginx-proxy-kafka" "KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS": "kafka:9092" depends_on: - kafka kafka: image: bitnami/kafka:latest container_name: kafka ports: - "9092:9092" environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: PLAINTEXT://:9092 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_CFG_ZOOKEEPER_CONNECT: "" nginx: image: nginx:latest container_name: nginx ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - kafka-ui ``` -------------------------------- ### Persistent Kafka UI Installation with Docker Compose Source: https://github.com/provectus/kafka-ui/blob/master/README.md This Docker Compose configuration sets up a Kafka UI service. It specifies the image, container name, port mapping, environment variables for dynamic configuration, and a volume for configuration files. ```yaml services: kafka-ui: container_name: kafka-ui image: provectuslabs/kafka-ui:latest ports: - 8080:8080 environment: DYNAMIC_CONFIG_ENABLED: 'true' volumes: - ~/kui/config.yml:/etc/kafkaui/dynamic_config.yaml ``` -------------------------------- ### Qase.io Test Case Creation Annotations Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-e2e-checks/QASE.md Custom annotations are used to define test cases for Qase.io. These annotations help in creating new test cases, setting their titles, automation status, and suite assignments. ```java @Automation @QaseTitle(title = "Test Case Title") @Status(status = StatusEnum.ACTUAL) @Suite(suiteId = 1) @Test public void createNewTestCase() { // Test steps } ``` -------------------------------- ### Qase.io Test Run Reporting Annotations Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-e2e-checks/QASE.md To report test runs in Qase.io, test methods must be annotated with @QaseId. This annotation links the test method to a specific test case in Qase.io. ```java @QaseId(123) @Test public void runManualTestCase() { // Test execution } ``` -------------------------------- ### Kafka UI with Traefik Proxy Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This configuration provides an example of using Kafka UI behind a Traefik reverse proxy. Traefik is a modern HTTP reverse proxy and load balancer that simplifies microservices deployments. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" labels: - "traefik.enable=true" - "traefik.http.routers.kafka-ui.rule=Host(`kafka-ui.localhost`)" - "traefik.http.routers.kafka-ui.entrypoints=websecure" - "traefik.http.routers.kafka-ui.tls.certresolver=myresolver" - "traefik.http.services.kafka-ui.loadbalancer.server.port=8080" environment: "KAFKA_CLUSTERS_0_NAME": "traefik-kafka" "KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS": "kafka:9092" depends_on: - kafka kafka: image: bitnami/kafka:latest container_name: kafka ports: - "9092:9092" environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: PLAINTEXT://:9092 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_CFG_ZOOKEEPER_CONNECT: "" traefik: image: traefik:latest container_name: traefik ports: - "80:80" - "443:443" - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./traefik.yml:/etc/traefik/traefik.yml - ./acme.json:/acme.json depends_on: - kafka-ui ``` -------------------------------- ### Default Kafka UI Configuration Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This configuration sets up Kafka UI with two Kafka clusters, including two Schema Registry nodes, one Kafka Connect instance, and several dummy topics. It serves as a comprehensive default setup. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" environment: "KAFKA_CLUSTERS_0_NAME": "local-kafka" "KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS": "kafka1:9092,kafka2:9092" "KAFKA_CLUSTERS_0_SCHEMA_REGISTRY": "http://schema-registry1:8081,http://schema-registry2:8081" "KAFKA_CLUSTERS_1_NAME": "remote-kafka" "KAFKA_CLUSTERS_1_BOOTSTRAP_SERVERS": "remote-kafka-broker1:9092,remote-kafka-broker2:9092" "KAFKA_CLUSTERS_1_SCHEMA_REGISTRY": "http://remote-schema-registry:8081" depends_on: - kafka1 - kafka2 - schema-registry1 - schema-registry2 - kafka-connect kafka1: image: bitnami/kafka:latest container_name: kafka1 ports: - "9092:9092" environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: PLAINTEXT://:9092 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka1:9093 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092 KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181 kafka2: image: bitnami/kafka:latest container_name: kafka2 ports: - "9093:9092" environment: KAFKA_CFG_NODE_ID: 2 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: PLAINTEXT://:9092 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka1:9093 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092 KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181 schema-registry1: image: confluentinc/cp-schema-registry:latest container_name: schema-registry1 ports: - "8081:8081" environment: SCHEMA_REGISTRY_HOST: schema-registry1 SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081 SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: kafka1:9092,kafka2:9092 schema-registry2: image: confluentinc/cp-schema-registry:latest container_name: schema-registry2 ports: - "8082:8081" environment: SCHEMA_REGISTRY_HOST: schema-registry2 SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081 SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: kafka1:9092,kafka2:9092 kafka-connect: image: confluentinc/cp-kafka-connect:latest container_name: kafka-connect ports: - "8083:8083" environment: CONNECT_BOOTSTRAP_SERVERS: kafka1:9092,kafka2:9092 CONNECT_GROUP_ID: "connect-group" CONNECT_CONFIG_STORAGE_TOPIC: "connect-configs" CONNECT_OFFSET_STORAGE_TOPIC: "connect-offsets" CONNECT_STATUS_STORAGE_TOPIC: "connect-status" CONNECT_REST_PORT: 8083 CONNECT_PLUGIN_PATH: "/usr/share/java,usr/share/confluent-hub-components" zookeeper: image: bitnami/zookeeper:latest container_name: zookeeper ports: - "2181:2181" environment: ZOO_ENABLE_AUTH_PLUGIN: "" ``` -------------------------------- ### Creating Topics Source: https://github.com/provectus/kafka-ui/blob/master/README.md Illustrates the process of creating new Kafka topics directly through the web interface by specifying parameters. ```gif documentation/images/Create_topic_kafka-ui.gif ``` -------------------------------- ### Custom Serialization/Deserialization Plugins Source: https://github.com/provectus/kafka-ui/blob/master/README.md Information on using custom serialization and deserialization (serde) plugins for data processing, including ready-to-go options and custom development. ```APIDOC Custom Serialization/Deserialization (Serde) Plugins: - Use ready-to-go serdes for data like AWS Glue or Smile. - Option to code your own custom serde plugins. - Refer to documentation for details: https://docs.kafka-ui.provectus.io/configuration/serialization-serde ``` -------------------------------- ### Producing Messages Source: https://github.com/provectus/kafka-ui/blob/master/README.md Demonstrates how to send or write data/messages to Kafka topics using the UI, including specifying parameters. ```gif documentation/images/Create_message_kafka-ui.gif ``` -------------------------------- ### Run Tests on Local Chrome Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-e2e-checks/README.md Configures the Maven build to run tests on a local Chrome browser by setting the 'browser' system property. ```bash -Dbrowser=local ``` -------------------------------- ### Clone Kafka-ui Repository Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-e2e-checks/README.md Clones the Kafka-ui repository and navigates into the e2e-checks directory. Also pulls a specific Chrome Docker image for testing. ```bash git clone https://github.com/provectus/kafka-ui.git cd kafka-ui-e2e-checks docker pull selenoid/vnc_chrome:103.0 ``` -------------------------------- ### Kafka UI Health and Info Endpoints Source: https://github.com/provectus/kafka-ui/blob/master/README.md Kafka UI exposes liveliness and readiness probes at the /actuator/health endpoint. Build information is available at the /actuator/info endpoint. ```APIDOC Liveliness and readiness probes: Endpoint: /actuator/health Info endpoint (build info): Endpoint: /actuator/info ``` -------------------------------- ### Kafka UI Asset Path Configuration Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-react-app/index.html Configures the base path for UI assets and provides a helper function to build asset paths. This is crucial for correctly loading resources like fonts and images within the application. ```javascript window.basePath = '<%= PUBLIC_PATH %>'; window.__assetsPathBuilder = function (importer) { return window.basePath + "/" + importer; }; ``` -------------------------------- ### Configure Development Proxy Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-react-app/README.md Sets up the development proxy by creating or updating the .env.local file. The VITE_DEV_PROXY variable should point to your API server URL. ```sh VITE_DEV_PROXY= https://api.server # your API server ``` -------------------------------- ### Navigate to React App Folder Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-react-app/README.md Changes the current directory to the kafka-ui-react-app folder, which is the frontend application. ```sh cd ./kafka-kafka-ui-react-app ``` -------------------------------- ### Pull Request Creation Checklist Source: https://github.com/provectus/kafka-ui/blob/master/CONTRIBUTING.md A checklist to ensure Pull Requests are created correctly, including commit message conventions, linking issues, setting labels, assigning reviewers, and updating documentation. ```APIDOC Creating a PR: 1. In commit messages use these [closing keywords](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword). 2. Link an issue(-s) via "linked issues" block. 3. Set the PR labels. Ensure that you set only the same set of labels that is present in the issue, and ignore yellow `status/` labels. 4. If the PR does not close any of the issues, the PR itself might need to have a milestone set. Reach out to the maintainers to consult. 5. Assign the PR to yourself. A PR assignee is someone whose goal is to get the PR merged. 6. Add reviewers. As a rule, reviewers' suggestions are pretty good; please use them. 7. Upon merging the PR, please use a meaningful commit message, task name should be fine in this case. Pull Request checklist: 1. When composing a build, ensure that any install or build dependencies have been removed before the end of the layer. 2. Update the `README.md` with the details of changes made to the interface. This includes new environment variables, exposed ports, useful file locations, and container parameters. ``` -------------------------------- ### Generate API Clients Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-react-app/README.md Generates API client source code from the OpenAPI document. This is crucial for the frontend to communicate with the backend API. ```sh pnpm gen:sources ``` -------------------------------- ### REST Naming Conventions Source: https://github.com/provectus/kafka-ui/blob/master/CONTRIBUTING.md Defines the naming conventions for REST paths, query variables, and model names to maintain consistency across the project. REST paths should be lowercase plural nouns, query variables camelCase, and model names plural camelCase. ```APIDOC Naming Conventions: REST paths should be written in **lowercase** and consist of **plural** nouns only. Also, multiple words that are placed in a single path segment should be divided by a hyphen (`-`). Query variable names should be formatted in `camelCase`. Model names should consist of **plural** nouns only and should be formatted in `camelCase` as well. ``` -------------------------------- ### End-to-End Tests Configuration Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This configuration is used for end-to-end testing of Kafka UI. It includes various connectors such as github-source, s3, sink-activities, and source-activities, along with Ksql functionality. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" environment: "KAFKA_CLUSTERS_0_NAME": "e2e-kafka" "KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS": "kafka:9092" depends_on: - kafka - kafka-connect - ksql kafka: image: bitnami/kafka:latest container_name: kafka ports: - "9092:9092" environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: PLAINTEXT://:9092 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_CFG_ZOOKEEPER_CONNECT: "" kafka-connect: image: confluentinc/cp-kafka-connect:latest container_name: kafka-connect ports: - "8083:8083" environment: CONNECT_BOOTSTRAP_SERVERS: kafka:9092 CONNECT_GROUP_ID: "connect-group" CONNECT_CONFIG_STORAGE_TOPIC: "connect-configs" CONNECT_OFFSET_STORAGE_TOPIC: "connect-offsets" CONNECT_STATUS_STORAGE_TOPIC: "connect-status" CONNECT_REST_PORT: 8083 CONNECT_PLUGIN_PATH: "/usr/share/java,usr/share/confluent-hub-components,usr/share/kafka-connectors" volumes: - ./connectors:/usr/share/kafka-connectors depends_on: - kafka ksql: image: confluentinc/ksql-server:latest container_name: ksql ports: - "8088:8088" environment: KSQL_BOOTSTRAP_SERVERS: kafka:9092 KSQL_LISTENERS: http://0.0.0.0:8088 KSQL_KSQL_LOG_STATEMENT_OPTIONAL: "true" depends_on: - kafka ``` -------------------------------- ### Role-Based Access Control (RBAC) Source: https://github.com/provectus/kafka-ui/blob/master/README.md Explains how to manage user permissions for accessing the UI with granular precision using role-based access control. ```APIDOC Role-Based Access Control (RBAC): - Manage permissions for accessing the UI with granular precision. - Refer to documentation for setup: https://docs.kafka-ui.provectus.io/configuration/rbac-role-based-access-control ``` -------------------------------- ### Branch Naming Conventions Source: https://github.com/provectus/kafka-ui/blob/master/CONTRIBUTING.md Provides guidelines for naming branches to ensure uniformity and clarity. It recommends using group/type prefixes such as 'issues/', 'feature/', or 'bugfix/' followed by relevant identifiers. ```APIDOC Branch Naming Conventions: Generally speaking, it is a good idea to add a group/type prefix to a branch; e.g., if you are working on a specific branch, you could name it `issues/xxx`. Here is a list of good examples: `issues/123` `feature/feature_name` `bugfix/fix_thing` ``` -------------------------------- ### Schema Registry with Authentication Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This configuration demonstrates how to set up Schema Registry with authentication enabled. This ensures that only authorized clients can interact with the Schema Registry. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" environment: "KAFKA_CLUSTERS_0_NAME": "kafka-auth" "KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS": "kafka:9092" "KAFKA_CLUSTERS_0_SCHEMA_REGISTRY": "http://schema-registry:8081" depends_on: - kafka - schema-registry kafka: image: bitnami/kafka:latest container_name: kafka ports: - "9092:9092" environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: PLAINTEXT://:9092 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_CFG_ZOOKEEPER_CONNECT: "" schema-registry: image: confluentinc/cp-schema-registry:latest container_name: schema-registry ports: - "8081:8081" environment: SCHEMA_REGISTRY_HOST: schema-registry SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081 SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: kafka:9092 SCHEMA_REGISTRY_AUTHENTICATION_ENABLED: "true" SCHEMA_REGISTRY_AUTHENTICATION_TYPE: "basic" SCHEMA_REGISTRY_AUTHENTICATION_USERNAME: "admin" SCHEMA_REGISTRY_AUTHENTICATION_PASSWORD: "password" ``` -------------------------------- ### Java Code Style Configuration Source: https://github.com/provectus/kafka-ui/blob/master/CONTRIBUTING.md Specifies the code style rules for Java development within the Kafka UI project. It relies on a `checkstyle.xml` file located in the project's root directory and can be imported into IntelliJ IDEA using the Checkstyle plugin. ```Java // Import checkstyle.xml from etc/checkstyle.xml in IntelliJ IDEA via Checkstyle plugin. ``` -------------------------------- ### Basic Authentication with Custom Path Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This configuration enables basic authentication (username and password) for Kafka UI and allows specifying a custom URL path for the authentication context, addressing issue 861. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" environment: "KAFKA_CLUSTERS_0_NAME": "kafka-auth-context" "KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS": "kafka:9092" "KAFKA_SECURITY_AUTH_ENABLED": "true" "KAFKA_SECURITY_AUTH_USERNAME": "user" "KAFKA_SECURITY_AUTH_PASSWORD": "password" "KAFKA_SECURITY_AUTH_CONTEXT_PATH": "/custom/auth" depends_on: - kafka kafka: image: bitnami/kafka:latest container_name: kafka ports: - "9092:9092" environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: PLAINTEXT://:9092 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_CFG_ZOOKEEPER_CONNECT: "" ``` -------------------------------- ### Inter Font Definitions Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-react-app/index.html Defines the 'Inter' font family with different weights (Medium and Regular) using CSS @font-face rules. It specifies the font file URLs relative to the public path and the format. ```css @font-face { font-family: 'Inter'; src: url('<%= PUBLIC_PATH %>/fonts/Inter-Medium.ttf') format('truetype'); font-weight: 500; font-display: swap; } @font-face { font-family: 'Inter'; src: url('<%= PUBLIC_PATH %>/fonts/Inter-Regular.ttf') format('truetype'); font-weight: 400; font-display: swap; } ``` -------------------------------- ### Roboto Mono Font Definitions Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-react-app/index.html Defines the 'Roboto Mono' font family with different weights (Medium and Regular) using CSS @font-face rules. It specifies the font file URLs relative to the public path and the format. ```css @font-face { font-family: 'Roboto Mono'; src: url('<%= PUBLIC_PATH %>/fonts/RobotoMono-Medium.ttf') format('truetype'); font-weight: 500; font-display: swap; } @font-face { font-family: 'Roboto Mono'; src: url('<%= PUBLIC_PATH %>/fonts/RobotoMono-Regular.ttf') format('truetype'); font-weight: 400; font-display: swap; } ``` -------------------------------- ### ARM64 Kafka UI Configuration Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This configuration is tailored for ARM64 architectures, such as Mac M1 devices. It sets up Kafka UI with a single Kafka cluster, omitting ZooKeeper, and includes one Schema Registry node and one Kafka Connect instance. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" environment: "KAFKA_CLUSTERS_0_NAME": "local-kafka" "KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS": "kafka:9092" "KAFKA_CLUSTERS_0_SCHEMA_REGISTRY": "http://schema-registry:8081" depends_on: - kafka - schema-registry - kafka-connect kafka: image: bitnami/kafka:latest container_name: kafka ports: - "9092:9092" environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: PLAINTEXT://:9092 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_CFG_ZOOKEEPER_CONNECT: "" schema-registry: image: confluentinc/cp-schema-registry:latest container_name: schema-registry ports: - "8081:8081" environment: SCHEMA_REGISTRY_HOST: schema-registry SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081 SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: kafka:9092 kafka-connect: image: confluentinc/cp-kafka-connect:latest container_name: kafka-connect ports: - "8083:8083" environment: CONNECT_BOOTSTRAP_SERVERS: kafka:9092 CONNECT_GROUP_ID: "connect-group" CONNECT_CONFIG_STORAGE_TOPIC: "connect-configs" CONNECT_OFFSET_STORAGE_TOPIC: "connect-offsets" CONNECT_STATUS_STORAGE_TOPIC: "connect-status" CONNECT_REST_PORT: 8083 CONNECT_PLUGIN_PATH: "/usr/share/java,usr/share/confluent-hub-components" ``` -------------------------------- ### Data Masking Source: https://github.com/provectus/kafka-ui/blob/master/README.md Describes the functionality to obfuscate sensitive data within topic messages. ```APIDOC Data Masking: - Obfuscate sensitive data in topic messages. - Refer to documentation for configuration: https://docs.kafka-ui.provectus.io/configuration/data-masking ``` -------------------------------- ### SASL Authentication for Kafka Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This configuration enables SASL (Simple Authentication and Security Layer) authentication for Kafka. This allows clients to authenticate with Kafka brokers using mechanisms like PLAIN or SCRAM. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" environment: "KAFKA_CLUSTERS_0_NAME": "sasl-kafka" "KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS": "kafka:9092" "KAFKA_CLUSTERS_0_SASL_ENABLED": "true" "KAFKA_CLUSTERS_0_SASL_MECHANISM": "PLAIN" "KAFKA_CLUSTERS_0_SASL_USERNAME": "user" "KAFKA_CLUSTERS_0_SASL_PASSWORD": "password" depends_on: - kafka kafka: image: bitnami/kafka:latest container_name: kafka ports: - "9092:9092" environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,SASL_PLAINTEXT://:9093 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,SASL_PLAINTEXT://kafka:9093 KAFKA_CFG_ZOOKEEPER_CONNECT: "" KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: "PLAINTEXT:PLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT" KAFKA_CFG_SASL_ENABLED: "true" KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL: "PLAIN" KAFKA_CFG_AUTHORIZER_CLASS_NAME: "kafka.security.authorizer.AclAuthorizer" KAFKA_CFG_ALLOW_EVERYONE_TO_READ: "true" KAFKA_CFG_SUPER_USERS: "User:ANONYMOUS" KAFKA_CFG_SASL_PLAIN_USERNAME: "user" KAFKA_CFG_SASL_PLAIN_PASSWORD: "password" ``` -------------------------------- ### Schema Type Enum Source: https://github.com/provectus/kafka-ui/blob/master/kafka-ui-e2e-checks/src/main/resources/testData/schemas/schema_protobuf_value.txt Defines the possible types for schemas used within the Kafka UI project. This enum includes Avro, JSON, and Protobuf. ```protobuf enum SchemaType { AVRO = 0; JSON = 1; PROTOBUF = 2; } ``` -------------------------------- ### Kafka Clusters Only Configuration Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This configuration is designed for development purposes, allowing users to run Kafka UI locally while connecting to external Kafka clusters. It excludes all Kafka-related services except for the Kafka UI itself. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" environment: "KAFKA_CLUSTERS_0_NAME": "local-kafka" "KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS": "localhost:9092" ``` -------------------------------- ### Kafka JMX with SSL and Authentication Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This configuration enables Kafka's Java Management Extensions (JMX) with SSL encryption and authentication. This enhances the security of JMX monitoring by encrypting traffic and requiring credentials. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" environment: "KAFKA_CLUSTERS_0_NAME": "jmx-secured-kafka" "KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS": "kafka:9092" "KAFKA_CLUSTERS_0_JMX_PORT": "9991" "KAFKA_CLUSTERS_0_JMX_SSL": "true" "KAFKA_CLUSTERS_0_JMX_USERNAME": "jmxuser" "KAFKA_CLUSTERS_0_JMX_PASSWORD": "jmxpassword" depends_on: - kafka kafka: image: bitnami/kafka:latest container_name: kafka ports: - "9092:9092" - "9991:9991" environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: PLAINTEXT://:9092 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093 KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_CFG_ZOOKEEPER_CONNECT: "" KAFKA_JMX_PORT: 9991 KAFKA_JMX_SSL: "true" KAFKA_JMX_KEYSTORE_LOCATION: /opt/bitnami/kafka/config/certs/kafka.keystore.jks KAFKA_JMX_KEYSTORE_PASSWORD: "password" KAFKA_JMX_KEY_PASSWORD: "password" KAFKA_JMX_TRUSTSTORE_LOCATION: /opt/bitnami/kafka/config/certs/kafka.truststore.jks KAFKA_JMX_TRUSTSTORE_PASSWORD: "password" KAFKA_JMX_REMOTE_OBJECT_LISTING_ENABLED: "true" KAFKA_JMX_REMOTE_AUTHENTICATION_ENABLED: "true" KAFKA_JMX_REMOTE_AUTHORIZATION_ENABLED: "true" KAFKA_JMX_REMOTE_ACCESS_FILE: "/opt/bitnami/kafka/config/jmxremote.access" KAFKA_JMX_REMOTE_LOGIN_CONFIG_FILE: "/opt/bitnami/kafka/config/jmxremote.password" ``` -------------------------------- ### Kafka UI SSL/TLS Connection Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This configuration enables Kafka UI to connect to Kafka clusters using TLS/SSL encryption. It requires proper certificate configuration for both Kafka brokers and the Kafka UI service. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" environment: "KAFKA_CLUSTERS_0_NAME": "ssl-kafka" "KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS": "kafka1:9093,kafka2:9093" "KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL": "SSL" "KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_LOCATION": "/mnt/kafka-ui/truststore.jks" "KAFKA_CLUSTERS_0_PROPERTIES_SSL_TRUSTSTORE_PASSWORD": "password" volumes: - ./truststore.jks:/mnt/kafka-ui/truststore.jks depends_on: - kafka1 - kafka2 kafka1: image: bitnami/kafka:latest container_name: kafka1 ports: - "9093:9092" environment: KAFKA_CFG_NODE_ID: 1 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: SSL://:9092 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka1:9093 KAFKA_CFG_ADVERTISED_LISTENERS: SSL://kafka1:9093 KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_CFG_SSL_KEYSTORE_LOCATION: /opt/bitnami/kafka/config/certs/kafka.keystore.jks KAFKA_CFG_SSL_KEYSTORE_PASSWORD: "password" KAFKA_CFG_SSL_KEY_PASSWORD: "password" KAFKA_CFG_SSL_TRUSTSTORE_LOCATION: /opt/bitnami/kafka/config/certs/kafka.truststore.jks KAFKA_CFG_SSL_TRUSTSTORE_PASSWORD: "password" kafka2: image: bitnami/kafka:latest container_name: kafka2 ports: - "9094:9092" environment: KAFKA_CFG_NODE_ID: 2 KAFKA_CFG_PROCESS_ROLES: controller,broker KAFKA_CFG_LISTENERS: SSL://:9092 KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka1:9093 KAFKA_CFG_ADVERTISED_LISTENERS: SSL://kafka2:9092 KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_CFG_SSL_KEYSTORE_LOCATION: /opt/bitnami/kafka/config/certs/kafka.keystore.jks KAFKA_CFG_SSL_KEYSTORE_PASSWORD: "password" KAFKA_CFG_SSL_KEY_PASSWORD: "password" KAFKA_CFG_SSL_TRUSTSTORE_LOCATION: /opt/bitnami/kafka/config/certs/kafka.truststore.jks KAFKA_CFG_SSL_TRUSTSTORE_PASSWORD: "password" zookeeper: image: bitnami/zookeeper:latest container_name: zookeeper ports: - "2181:2181" environment: ZOO_ENABLE_AUTH_PLUGIN: "" ``` -------------------------------- ### OAuth2 with Cognito Source: https://github.com/provectus/kafka-ui/blob/master/documentation/compose/DOCKER_COMPOSE.md This configuration sets up Kafka UI to use OAuth2 authentication with Amazon Cognito as the identity provider. This allows users to authenticate using their Cognito credentials. ```yaml version: '3.7' services: kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8080:8080" ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.