From 50ad7937cc8f57150b08794e76ca9b63e4c7a6d0 Mon Sep 17 00:00:00 2001
From: Pierre Delpy
Date: Fri, 6 Nov 2026 13:43:45 +0100
Subject: [PATCH] Add exporter and reporter to the itcc project
Enabled with ENABLE_EXPORTER. The export template itcc and the quality
report itcc-qb come with the dktk-exporter and dktk-reporter images,
like the cce templates. All routes are behind the auth middleware,
because export and quality report contain local identifiers.
---
itcc/modules/exporter-compose.yml | 56 +++++++++++++++++++++++++++++++
itcc/modules/exporter-setup.sh | 8 +++++
2 files changed, 64 insertions(+)
create mode 100644 itcc/modules/exporter-compose.yml
create mode 100644 itcc/modules/exporter-setup.sh
diff --git a/itcc/modules/exporter-compose.yml b/itcc/modules/exporter-compose.yml
new file mode 100644
index 0000000..b2eb836
--- /dev/null
+++ b/itcc/modules/exporter-compose.yml
@@ -0,0 +1,56 @@
+services:
+ exporter:
+ image: docker.verbis.dkfz.de/ccp/dktk-exporter:latest
+ container_name: bridgehead-itcc-exporter
+ environment:
+ JAVA_OPTS: "-Xms1G -Xmx8G -XX:+UseG1GC"
+ LOG_LEVEL: "INFO"
+ EXPORTER_API_KEY: "${EXPORTER_API_KEY}" # Set in exporter-setup.sh
+ CROSS_ORIGINS: "https://${HOST}"
+ EXPORTER_DB_USER: "exporter"
+ EXPORTER_DB_PASSWORD: "${EXPORTER_DB_PASSWORD}" # Set in exporter-setup.sh
+ EXPORTER_DB_URL: "jdbc:postgresql://exporter-db:5432/exporter"
+ HTTP_RELATIVE_PATH: "/itcc-exporter"
+ SITE: "${SITE_ID}"
+ HTTP_SERVLET_REQUEST_SCHEME: "https"
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.exporter_itcc.rule=Host(`${HOST}`) && PathPrefix(`/itcc-exporter`)"
+ - "traefik.http.services.exporter_itcc.loadbalancer.server.port=8092"
+ - "traefik.http.routers.exporter_itcc.tls=true"
+ - "traefik.http.middlewares.exporter_itcc_strip.stripprefix.prefixes=/itcc-exporter"
+ - "traefik.http.routers.exporter_itcc.middlewares=exporter_itcc_strip,auth"
+ volumes:
+ - "/var/cache/bridgehead/itcc/exporter-files:/app/exporter-files/output"
+
+ exporter-db:
+ image: docker.verbis.dkfz.de/cache/postgres:${POSTGRES_TAG}
+ container_name: bridgehead-itcc-exporter-db
+ environment:
+ POSTGRES_USER: "exporter"
+ POSTGRES_PASSWORD: "${EXPORTER_DB_PASSWORD}" # Set in exporter-setup.sh
+ POSTGRES_DB: "exporter"
+ volumes:
+ - "/var/cache/bridgehead/itcc/exporter-db:/var/lib/postgresql/data"
+
+ reporter:
+ image: docker.verbis.dkfz.de/ccp/dktk-reporter:latest
+ container_name: bridgehead-itcc-reporter
+ environment:
+ JAVA_OPTS: "-Xms1G -Xmx8G -XX:+UseG1GC"
+ LOG_LEVEL: "INFO"
+ CROSS_ORIGINS: "https://${HOST}"
+ HTTP_RELATIVE_PATH: "/itcc-reporter"
+ SITE: "${SITE_ID}"
+ EXPORTER_API_KEY: "${EXPORTER_API_KEY}" # Set in exporter-setup.sh
+ EXPORTER_URL: "http://exporter:8092"
+ HTTP_SERVLET_REQUEST_SCHEME: "https"
+ volumes:
+ - "/var/cache/bridgehead/itcc/reporter-files:/app/reports"
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.reporter_itcc.rule=Host(`${HOST}`) && PathPrefix(`/itcc-reporter`)"
+ - "traefik.http.services.reporter_itcc.loadbalancer.server.port=8095"
+ - "traefik.http.routers.reporter_itcc.tls=true"
+ - "traefik.http.middlewares.reporter_itcc_strip.stripprefix.prefixes=/itcc-reporter"
+ - "traefik.http.routers.reporter_itcc.middlewares=reporter_itcc_strip,auth"
diff --git a/itcc/modules/exporter-setup.sh b/itcc/modules/exporter-setup.sh
new file mode 100644
index 0000000..d49a58a
--- /dev/null
+++ b/itcc/modules/exporter-setup.sh
@@ -0,0 +1,8 @@
+#!/bin/bash -e
+
+if [ "$ENABLE_EXPORTER" == true ]; then
+ log INFO "Exporter setup detected -- will start Exporter and Reporter services."
+ OVERRIDE+=" -f ./$PROJECT/modules/exporter-compose.yml"
+ EXPORTER_DB_PASSWORD="$(generate_simple_password 'exporter-db')"
+ EXPORTER_API_KEY="$(generate_simple_password 'exporter')"
+fi