From df670aef05b36fed0c1ffe601894205d6001f486 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Fri, 28 Nov 2025 11:51:32 +0100 Subject: chore: cleanup dev settings and examples (#200) --- .gitignore | 8 +-- deploy/docker-compose.yaml | 60 ---------------------- deploy/env-sample.env | 47 ----------------- dev-compose.yml | 30 +++++------ dev/README_TEST_WITH_GPAS.md | 11 ---- dev/docker-compose.dev.yml | 96 ----------------------------------- examples/deploy/docker-compose.yaml | 60 ++++++++++++++++++++++ examples/deploy/env-sample.env | 47 +++++++++++++++++ examples/dev/README_TEST_WITH_GPAS.md | 11 ++++ examples/dev/docker-compose.dev.yml | 96 +++++++++++++++++++++++++++++++++++ 10 files changed, 233 insertions(+), 233 deletions(-) delete mode 100644 deploy/docker-compose.yaml delete mode 100644 deploy/env-sample.env delete mode 100644 dev/README_TEST_WITH_GPAS.md delete mode 100644 dev/docker-compose.dev.yml create mode 100644 examples/deploy/docker-compose.yaml create mode 100644 examples/deploy/env-sample.env create mode 100644 examples/dev/README_TEST_WITH_GPAS.md create mode 100644 examples/dev/docker-compose.dev.yml diff --git a/.gitignore b/.gitignore index 9a3236e..5daaa38 100644 --- a/.gitignore +++ b/.gitignore @@ -37,7 +37,7 @@ out/ ### VS Code ### .vscode/ -/dev/gpas* -/deploy/.env -/dev/gICS* -/dev/gPAS* +/examples/dev/gpas* +/examples/deploy/.env +/examples/dev/gICS* +/examples/dev/gPAS* diff --git a/deploy/docker-compose.yaml b/deploy/docker-compose.yaml deleted file mode 100644 index 754bb23..0000000 --- a/deploy/docker-compose.yaml +++ /dev/null @@ -1,60 +0,0 @@ - - -services: - dnpm-etl-processor: - image: ghcr.io/ccc-mf/etl-processor:latest - environment: - LOGGING_LEVEL_DEV: ${DNPM_LOG_LEVEL:-INFO} - SPRING_KAFKA_SECURITY_PROTOCOL: ${DNPM_KAFKA_SECURITY_PROTOCOL:-SSL} - SPRING_KAFKA_SSL_TRUST-STORE-TYPE: PKCS12 - SPRING_KAFKA_SSL_TRUST-STORE-LOCATION: /opt/dnpm-processor/ssl/truststore.jks - SPRING_KAFKA_SSL_TRUST-STORE-PASSWORD: ${KAFKA_TRUST_STORE_PASSWORD} - SPRING_KAFKA_SSL_KEY-STORE-TYPE: PKCS12 - SPRING_KAFKA_SSL_KEY-STORE-LOCATION: /opt/dnpm-processor/ssl/keystore.jks - SPRING_KAFKA_SSL_KEY-STORE-PASSWORD: ${DNPM_PROCESSOR_KEY_STORE_PASSWORD} - SPRING_KAFKA_PRODUCER_COMPRESSION-TYPE: gzip - APP_KAFKA_TOPIC: ${DNPM_KAFKA_TOPIC} - APP_KAFKA_SERVERS: ${KAFKA_BROKERS} - APP_KAFKA_GROUP_ID: ${DNPM_KAFKA_GROUP_ID} - APP_KAFKA_RESPONSE_TOPIC: ${DNPM_KAFKA_RESPONSE_TOPIC} - APP_REST_URI: ${DNPM_BWHC_REST_URI} - APP_REST_USERNAME: ${DNPM_BWHC_REST_USERNAME} - APP_REST_PASSWORD: ${DNPM_BWHC_REST_PASSWORD} - APP_REST_IS_BWHC: ${DNPM_BWHC_REST_IS_BWHC} - APP_SECURITY_ADMIN_USER: ${DNPM_ADMIN_USER} - APP_SECURITY_ADMIN_PASSWORD: ${DNPM_ADMIN_PASSWORD} - SPRING_DATASOURCE_URL: ${DNPM_DATASOURCE_URL} - SPRING_DATASOURCE_PASSWORD: ${DNPM_MARIADB_USER_PW} - SPRING_DATASOURCE_USERNAME: ${DNPM_MARIADB_DB} - APP_PSEUDONYMIZE_GPAS_SSLCALOCATION: /workspace/opt/dnpm-processor/ssl/mosaic.crt - APP_PSEUDONYMIZE_GPAS_PASSWORD: ${DNPM_PSEUDONYMIZE_GPAS_PASSWORD} - APP_PSEUDONYMIZE_GPAS_USERNAME: ${DNPM_PSEUDONYMIZE_GPAS_USERNAME} - APP_PSEUDONYMIZE_GPAS_TARGET: ${DNPM_PSEUDONYMIZE_GPAS_TARGET} - APP_PSEUDONYMIZE_GPAS_URI: ${DNPM_PSEUDONYMIZE_GPAS_URI} - APP_PSEUDONYMIZE_PREFIX: ${DNPM_APP_PSEUDONYMIZE_PREFIX} - APP_PSEUDONYMIZER: ${DNPM_PSEUDONYMIZE_GENERATOR} - volumes: - - /etc/localtime:/etc/localtime:ro - - /etc/timezone:/etc/timezone:ro - #- ${DNPM_TO_SSL_KEYSTORE_LOCATION}:/workspace/opt/dnpm-processor/ssl/keystore.jks:ro - #- ${KAFKA_TRUST_STORE_LOCATION}:/workspace/opt/dnpm-processor/ssl/truststore.jks:ro - #- ${DNPM_PSEUDONYMIZE_GPAS_SSLCALOCATION}:/workspace/opt/dnpm-processor/ssl/mosaic.crt - - depends_on: - - dnpm-monitor-db - ports: - - "${DNPM_MONITORING_HTTP_PORT:-8080}:8080" - - # todo add volume - dnpm-monitor-db: - image: mariadb:10 - environment: - MARIADB_DATABASE: ${DNPM_MARIADB_DB} - MARIADB_USER: ${DNPM_MARIADB_USER} - MARIADB_PASSWORD: ${DNPM_MARIADB_USER_PW} - MARIADB_ROOT_PASSWORD: ${DNPM_MARIADB_ROOT_PW} - expose: - - "3306" - - - diff --git a/deploy/env-sample.env b/deploy/env-sample.env deleted file mode 100644 index 4888474..0000000 --- a/deploy/env-sample.env +++ /dev/null @@ -1,47 +0,0 @@ -# monitoring access port -DNPM_MONITORING_HTTP_PORT=8088 -DNPM_LOG_LEVEL=INFO - -# ADMIN USER CREDENTIALS -DNPM_ADMIN_USER=admin -DNPM_ADMIN_PASSWORD= - -# GPAS or BUILDIN -DNPM_PSEUDONYMIZE_GENERATOR=BUILDIN -DNPM_APP_PSEUDONYMIZE_PREFIX=ANONYM -DNPM_PSEUDONYMIZE_GPAS_URI= -DNPM_PSEUDONYMIZE_GPAS_TARGET= -DNPM_PSEUDONYMIZE_GPAS_USERNAME= -DNPM_PSEUDONYMIZE_GPAS_PASSWORD= - -# path to ca root cert if needed -DNPM_PSEUDONYMIZE_GPAS_SSLCALOCATION= - -DNPM_MARIADB_DB=dnpm_monitoring -DNPM_MARIADB_USER=$DNPM_MARIADB_DB -DNPM_MARIADB_USER_PW=MySuperSecurePassword111 -DNPM_MARIADB_ROOT_PW=MySuperDuperSecurePassword111 - -# monitoring data db -DNPM_DATASOURCE_URL=jdbc:mariadb://dnpm-monitor-db:3306/$DNPM_MARIADB_DB - -## TARGET SYSTEMS CONFIG -# in case of direct access to bwhc enter endpoint url here -DNPM_BWHC_REST_URI= -DNPM_BWHC_REST_USERNAME= -DNPM_BWHC_REST_PASSWORD= -DNPM_BWHC_REST_IS_BWHC=false - -# produce mtb files to this topic - values 'false' disabling kafka processing -DNPM_KAFKA_TOPIC=false -KAFKA_BROKERS=false -DNPM_KAFKA_SECURITY_PROTOCOL=PLAINTEXT - -# here we receive responses from bwhc -DNPM_KAFKA_RESPONSE_TOPIC=dnpm-response -DNPM_KAFKA_GROUP_ID=dnpm - -# SSL or PLAINTEXT -DNPM_PROCESSOR_KEY_STORE_PASSWORD= -DNPM_TO_SSL_KEYSTORE_LOCATION= - diff --git a/dev-compose.yml b/dev-compose.yml index 5003f04..722fc69 100644 --- a/dev-compose.yml +++ b/dev-compose.yml @@ -117,21 +117,21 @@ services: # KAFKA_SSL_CLIENT_AUTH: none ### - ## Use AKHQ as Kafka web frontend - akhq: - image: tchiotludo/akhq:0.25.0 - environment: - AKHQ_CONFIGURATION: | - akhq: - connections: - docker-kafka-server: - properties: - bootstrap.servers: "kafka:9092" - connect: - - name: "kafka-connect" - url: "http://kafka-connect:8083" - ports: - - "8084:8080" + ## Optional AKHQ as Kafka web frontend +# akhq: +# image: tchiotludo/akhq +# environment: +# AKHQ_CONFIGURATION: | +# akhq: +# connections: +# docker-kafka-server: +# properties: +# bootstrap.servers: "kafka:9092" +# connect: +# - name: "kafka-connect" +# url: "http://kafka-connect:8083" +# ports: +# - "8084:8080" ## For use with MariaDB diff --git a/dev/README_TEST_WITH_GPAS.md b/dev/README_TEST_WITH_GPAS.md deleted file mode 100644 index ff9f62b..0000000 --- a/dev/README_TEST_WITH_GPAS.md +++ /dev/null @@ -1,11 +0,0 @@ -# Test with gPAS -1. Download from [Latest Docker-compose version of gPAS](https://www.ths-greifswald.de/gpas/#_download "") -2. copy `./demo/demo_gpas.sql` into `./sqls` folder -3. if needed change port mapping -4. startup via `docker compose up -d` - -By default, PSN are created via `localhost:8080/ttp-fhir/fhir/gpas/$pseudonymizeAllowCreate` endpoint -You can review created PSN via gPAs web interface running at `http://localhost:8080/gpas-web/` - - - diff --git a/dev/docker-compose.dev.yml b/dev/docker-compose.dev.yml deleted file mode 100644 index f8f9183..0000000 --- a/dev/docker-compose.dev.yml +++ /dev/null @@ -1,96 +0,0 @@ -version: '3.7' - -services: - - zoo: - image: zookeeper:3.9.2 - restart: unless-stopped - ports: - - "2181:2181" - environment: - ZOO_MY_ID: 1 - ZOO_PORT: 2181 - ZOO_SERVERS: server.1=zoo:2888:3888;2181 - - kafka: - image: confluentinc/cp-kafka:7.6.1 - ports: - - "9092:9092" - environment: - KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka:19092,LISTENER_DOCKER_EXTERNAL://172.17.0.1:9093,LISTENER_EXTERNAL://127.0.0.1:9092 - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT,LISTENER_EXTERNAL:PLAINTEXT - KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL - KAFKA_ZOOKEEPER_CONNECT: zoo:2181 - KAFKA_BROKER_ID: 1 - KAFKA_LOG4J_LOGGERS: kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 - KAFKA_MESSAGE_MAX_BYTES: 5242880 - KAFKA_REPLICA_FETCH_MAX_BYTES: 5242880 - KAFKA_COMPRESSION_TYPE: gzip - depends_on: - - zoo - healthcheck: - test: kafka-topics --bootstrap-server kafka:9092 --list - interval: 30s - timeout: 10s - retries: 3 - - akhq: - image: tchiotludo/akhq:0.25.0 - environment: - AKHQ_CONFIGURATION: | - akhq: - ui-options: - topic.show-all-consumer-groups: true - topic-data.sort: NEWEST - connections: - docker-kafka-server: - properties: - bootstrap.servers: "kafka:19092" - ports: - - "9000:8080" - depends_on: - - kafka - - kafka-rest-proxy: - image: confluentinc/cp-kafka-rest:7.2.1 - hostname: kafka-rest-proxy - ports: - - "8082:8082" - environment: - # KAFKA_REST_ZOOKEEPER_CONNECT: zoo1:2181 - KAFKA_REST_LISTENERS: http://0.0.0.0:8082/ - KAFKA_REST_SCHEMA_REGISTRY_URL: http://kafka-schema-registry:8081/ - KAFKA_REST_HOST_NAME: kafka-rest-proxy - KAFKA_REST_BOOTSTRAP_SERVERS: PLAINTEXT://kafka1:19092 - depends_on: - - zoo - - kafka - - kafka-connect: - image: confluentinc/cp-kafka-connect:7.2.1 - hostname: kafka-connect - ports: - - "8083:8083" - environment: - CONNECT_BOOTSTRAP_SERVERS: "kafka1:19092" - CONNECT_REST_PORT: 8083 - CONNECT_GROUP_ID: compose-connect-group - CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs - CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets - CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status - CONNECT_KEY_CONVERTER: "org.apache.kafka.connect.storage.StringConverter" - CONNECT_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter" - CONNECT_REST_ADVERTISED_HOST_NAME: "kafka-connect" - CONNECT_LOG4J_ROOT_LOGLEVEL: "INFO" - CONNECT_LOG4J_LOGGERS: "org.apache.kafka.connect.runtime.rest=WARN,org.reflections=ERROR" - CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: "1" - CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: "1" - CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: "1" - CONNECT_PLUGIN_PATH: "/usr/share/java,/etc/kafka-connect/jars" - #volumes: - # - ./connectors:/etc/kafka-connect/jars/ - depends_on: - - zoo - - kafka - - kafka-rest-proxy diff --git a/examples/deploy/docker-compose.yaml b/examples/deploy/docker-compose.yaml new file mode 100644 index 0000000..754bb23 --- /dev/null +++ b/examples/deploy/docker-compose.yaml @@ -0,0 +1,60 @@ + + +services: + dnpm-etl-processor: + image: ghcr.io/ccc-mf/etl-processor:latest + environment: + LOGGING_LEVEL_DEV: ${DNPM_LOG_LEVEL:-INFO} + SPRING_KAFKA_SECURITY_PROTOCOL: ${DNPM_KAFKA_SECURITY_PROTOCOL:-SSL} + SPRING_KAFKA_SSL_TRUST-STORE-TYPE: PKCS12 + SPRING_KAFKA_SSL_TRUST-STORE-LOCATION: /opt/dnpm-processor/ssl/truststore.jks + SPRING_KAFKA_SSL_TRUST-STORE-PASSWORD: ${KAFKA_TRUST_STORE_PASSWORD} + SPRING_KAFKA_SSL_KEY-STORE-TYPE: PKCS12 + SPRING_KAFKA_SSL_KEY-STORE-LOCATION: /opt/dnpm-processor/ssl/keystore.jks + SPRING_KAFKA_SSL_KEY-STORE-PASSWORD: ${DNPM_PROCESSOR_KEY_STORE_PASSWORD} + SPRING_KAFKA_PRODUCER_COMPRESSION-TYPE: gzip + APP_KAFKA_TOPIC: ${DNPM_KAFKA_TOPIC} + APP_KAFKA_SERVERS: ${KAFKA_BROKERS} + APP_KAFKA_GROUP_ID: ${DNPM_KAFKA_GROUP_ID} + APP_KAFKA_RESPONSE_TOPIC: ${DNPM_KAFKA_RESPONSE_TOPIC} + APP_REST_URI: ${DNPM_BWHC_REST_URI} + APP_REST_USERNAME: ${DNPM_BWHC_REST_USERNAME} + APP_REST_PASSWORD: ${DNPM_BWHC_REST_PASSWORD} + APP_REST_IS_BWHC: ${DNPM_BWHC_REST_IS_BWHC} + APP_SECURITY_ADMIN_USER: ${DNPM_ADMIN_USER} + APP_SECURITY_ADMIN_PASSWORD: ${DNPM_ADMIN_PASSWORD} + SPRING_DATASOURCE_URL: ${DNPM_DATASOURCE_URL} + SPRING_DATASOURCE_PASSWORD: ${DNPM_MARIADB_USER_PW} + SPRING_DATASOURCE_USERNAME: ${DNPM_MARIADB_DB} + APP_PSEUDONYMIZE_GPAS_SSLCALOCATION: /workspace/opt/dnpm-processor/ssl/mosaic.crt + APP_PSEUDONYMIZE_GPAS_PASSWORD: ${DNPM_PSEUDONYMIZE_GPAS_PASSWORD} + APP_PSEUDONYMIZE_GPAS_USERNAME: ${DNPM_PSEUDONYMIZE_GPAS_USERNAME} + APP_PSEUDONYMIZE_GPAS_TARGET: ${DNPM_PSEUDONYMIZE_GPAS_TARGET} + APP_PSEUDONYMIZE_GPAS_URI: ${DNPM_PSEUDONYMIZE_GPAS_URI} + APP_PSEUDONYMIZE_PREFIX: ${DNPM_APP_PSEUDONYMIZE_PREFIX} + APP_PSEUDONYMIZER: ${DNPM_PSEUDONYMIZE_GENERATOR} + volumes: + - /etc/localtime:/etc/localtime:ro + - /etc/timezone:/etc/timezone:ro + #- ${DNPM_TO_SSL_KEYSTORE_LOCATION}:/workspace/opt/dnpm-processor/ssl/keystore.jks:ro + #- ${KAFKA_TRUST_STORE_LOCATION}:/workspace/opt/dnpm-processor/ssl/truststore.jks:ro + #- ${DNPM_PSEUDONYMIZE_GPAS_SSLCALOCATION}:/workspace/opt/dnpm-processor/ssl/mosaic.crt + + depends_on: + - dnpm-monitor-db + ports: + - "${DNPM_MONITORING_HTTP_PORT:-8080}:8080" + + # todo add volume + dnpm-monitor-db: + image: mariadb:10 + environment: + MARIADB_DATABASE: ${DNPM_MARIADB_DB} + MARIADB_USER: ${DNPM_MARIADB_USER} + MARIADB_PASSWORD: ${DNPM_MARIADB_USER_PW} + MARIADB_ROOT_PASSWORD: ${DNPM_MARIADB_ROOT_PW} + expose: + - "3306" + + + diff --git a/examples/deploy/env-sample.env b/examples/deploy/env-sample.env new file mode 100644 index 0000000..4888474 --- /dev/null +++ b/examples/deploy/env-sample.env @@ -0,0 +1,47 @@ +# monitoring access port +DNPM_MONITORING_HTTP_PORT=8088 +DNPM_LOG_LEVEL=INFO + +# ADMIN USER CREDENTIALS +DNPM_ADMIN_USER=admin +DNPM_ADMIN_PASSWORD= + +# GPAS or BUILDIN +DNPM_PSEUDONYMIZE_GENERATOR=BUILDIN +DNPM_APP_PSEUDONYMIZE_PREFIX=ANONYM +DNPM_PSEUDONYMIZE_GPAS_URI= +DNPM_PSEUDONYMIZE_GPAS_TARGET= +DNPM_PSEUDONYMIZE_GPAS_USERNAME= +DNPM_PSEUDONYMIZE_GPAS_PASSWORD= + +# path to ca root cert if needed +DNPM_PSEUDONYMIZE_GPAS_SSLCALOCATION= + +DNPM_MARIADB_DB=dnpm_monitoring +DNPM_MARIADB_USER=$DNPM_MARIADB_DB +DNPM_MARIADB_USER_PW=MySuperSecurePassword111 +DNPM_MARIADB_ROOT_PW=MySuperDuperSecurePassword111 + +# monitoring data db +DNPM_DATASOURCE_URL=jdbc:mariadb://dnpm-monitor-db:3306/$DNPM_MARIADB_DB + +## TARGET SYSTEMS CONFIG +# in case of direct access to bwhc enter endpoint url here +DNPM_BWHC_REST_URI= +DNPM_BWHC_REST_USERNAME= +DNPM_BWHC_REST_PASSWORD= +DNPM_BWHC_REST_IS_BWHC=false + +# produce mtb files to this topic - values 'false' disabling kafka processing +DNPM_KAFKA_TOPIC=false +KAFKA_BROKERS=false +DNPM_KAFKA_SECURITY_PROTOCOL=PLAINTEXT + +# here we receive responses from bwhc +DNPM_KAFKA_RESPONSE_TOPIC=dnpm-response +DNPM_KAFKA_GROUP_ID=dnpm + +# SSL or PLAINTEXT +DNPM_PROCESSOR_KEY_STORE_PASSWORD= +DNPM_TO_SSL_KEYSTORE_LOCATION= + diff --git a/examples/dev/README_TEST_WITH_GPAS.md b/examples/dev/README_TEST_WITH_GPAS.md new file mode 100644 index 0000000..ff9f62b --- /dev/null +++ b/examples/dev/README_TEST_WITH_GPAS.md @@ -0,0 +1,11 @@ +# Test with gPAS +1. Download from [Latest Docker-compose version of gPAS](https://www.ths-greifswald.de/gpas/#_download "") +2. copy `./demo/demo_gpas.sql` into `./sqls` folder +3. if needed change port mapping +4. startup via `docker compose up -d` + +By default, PSN are created via `localhost:8080/ttp-fhir/fhir/gpas/$pseudonymizeAllowCreate` endpoint +You can review created PSN via gPAs web interface running at `http://localhost:8080/gpas-web/` + + + diff --git a/examples/dev/docker-compose.dev.yml b/examples/dev/docker-compose.dev.yml new file mode 100644 index 0000000..f8f9183 --- /dev/null +++ b/examples/dev/docker-compose.dev.yml @@ -0,0 +1,96 @@ +version: '3.7' + +services: + + zoo: + image: zookeeper:3.9.2 + restart: unless-stopped + ports: + - "2181:2181" + environment: + ZOO_MY_ID: 1 + ZOO_PORT: 2181 + ZOO_SERVERS: server.1=zoo:2888:3888;2181 + + kafka: + image: confluentinc/cp-kafka:7.6.1 + ports: + - "9092:9092" + environment: + KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka:19092,LISTENER_DOCKER_EXTERNAL://172.17.0.1:9093,LISTENER_EXTERNAL://127.0.0.1:9092 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT,LISTENER_EXTERNAL:PLAINTEXT + KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL + KAFKA_ZOOKEEPER_CONNECT: zoo:2181 + KAFKA_BROKER_ID: 1 + KAFKA_LOG4J_LOGGERS: kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_MESSAGE_MAX_BYTES: 5242880 + KAFKA_REPLICA_FETCH_MAX_BYTES: 5242880 + KAFKA_COMPRESSION_TYPE: gzip + depends_on: + - zoo + healthcheck: + test: kafka-topics --bootstrap-server kafka:9092 --list + interval: 30s + timeout: 10s + retries: 3 + + akhq: + image: tchiotludo/akhq:0.25.0 + environment: + AKHQ_CONFIGURATION: | + akhq: + ui-options: + topic.show-all-consumer-groups: true + topic-data.sort: NEWEST + connections: + docker-kafka-server: + properties: + bootstrap.servers: "kafka:19092" + ports: + - "9000:8080" + depends_on: + - kafka + + kafka-rest-proxy: + image: confluentinc/cp-kafka-rest:7.2.1 + hostname: kafka-rest-proxy + ports: + - "8082:8082" + environment: + # KAFKA_REST_ZOOKEEPER_CONNECT: zoo1:2181 + KAFKA_REST_LISTENERS: http://0.0.0.0:8082/ + KAFKA_REST_SCHEMA_REGISTRY_URL: http://kafka-schema-registry:8081/ + KAFKA_REST_HOST_NAME: kafka-rest-proxy + KAFKA_REST_BOOTSTRAP_SERVERS: PLAINTEXT://kafka1:19092 + depends_on: + - zoo + - kafka + + kafka-connect: + image: confluentinc/cp-kafka-connect:7.2.1 + hostname: kafka-connect + ports: + - "8083:8083" + environment: + CONNECT_BOOTSTRAP_SERVERS: "kafka1:19092" + CONNECT_REST_PORT: 8083 + CONNECT_GROUP_ID: compose-connect-group + CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs + CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets + CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status + CONNECT_KEY_CONVERTER: "org.apache.kafka.connect.storage.StringConverter" + CONNECT_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter" + CONNECT_REST_ADVERTISED_HOST_NAME: "kafka-connect" + CONNECT_LOG4J_ROOT_LOGLEVEL: "INFO" + CONNECT_LOG4J_LOGGERS: "org.apache.kafka.connect.runtime.rest=WARN,org.reflections=ERROR" + CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: "1" + CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: "1" + CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: "1" + CONNECT_PLUGIN_PATH: "/usr/share/java,/etc/kafka-connect/jars" + #volumes: + # - ./connectors:/etc/kafka-connect/jars/ + depends_on: + - zoo + - kafka + - kafka-rest-proxy -- cgit v1.2.3