feat(frontend): Struktur und Kommentare verfeinert, Mail-Service-Konfiguration erweitert

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-15 11:49:26 +02:00
parent 8c804832d8
commit d0b756694b
13 changed files with 682 additions and 284 deletions
+147 -72
View File
@@ -61,6 +61,7 @@ services:
PING_SERVICE_URL: "http://ping-service:8082"
MASTERDATA_SERVICE_URL: "http://masterdata-service:8086"
EVENTS_SERVICE_URL: "http://events-service:8085"
MAIL_SERVICE_URL: "http://mail-service:8085"
ZNS_IMPORT_SERVICE_URL: "http://zns-import-service:8095"
RESULTS_SERVICE_URL: "http://results-service:8088"
BILLING_SERVICE_URL: "http://billing-service:8087"
@@ -76,6 +77,8 @@ services:
condition: "service_healthy"
zipkin:
condition: "service_healthy"
mail-service:
condition: "service_healthy"
healthcheck:
test: [ "CMD", "wget", "--spider", "-q", "http://localhost:8081/actuator/health/readiness" ]
@@ -540,78 +543,150 @@ services:
volumes:
- ./config/app/base-application.yaml:/workspace/config/application.yml:Z
# --- MICROSERVICE: Scheduling Service ---
# scheduling-service:
# image: "${DOCKER_REGISTRY:-git.mo-code.at/mo-code}/scheduling-service:${DOCKER_TAG:-latest}"
# build:
# context: .
# dockerfile: backend/services/scheduling/scheduling-service/Dockerfile
# args:
# GRADLE_VERSION: "${DOCKER_GRADLE_VERSION:-9.4.1}"
# JAVA_VERSION: "${DOCKER_JAVA_VERSION:-25}"
# VERSION: "${DOCKER_VERSION:-1.0.0-SNAPSHOT}"
# BUILD_DATE: "${DOCKER_BUILD_DATE}"
# labels:
# - "org.opencontainers.image.created=${DOCKER_BUILD_DATE}"
# container_name: "${PROJECT_NAME:-meldestelle}-scheduling-service"
# restart: unless-stopped
# ports:
# - "${SCHEDULING_PORT:-8084:8084}"
# - "${SCHEDULING_DEBUG_PORT:-5013:5013}"
# environment:
# SPRING_PROFILES_ACTIVE: "${SCHEDULING_SPRING_PROFILES_ACTIVE:-docker}"
# DEBUG: "${SCHEDULING_DEBUG:-true}"
# SERVER_PORT: "${SCHEDULING_SERVER_PORT:-8084}"
# SPRING_APPLICATION_NAME: "${SCHEDULING_SERVICE_NAME:-scheduling-service}"
#
# # --- KEYCLOAK ---
# SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URI: "${KC_ISSUER_URI:-http://keycloak:8080/realms/meldestelle}"
# SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWK_SET_URI: "${KC_JWK_SET_URI:-http://keycloak:8080/realms/meldestelle/protocol/openid-connect/certs}"
#
# # --- CONSUL ---
# SPRING_CLOUD_CONSUL_HOST: "${CONSUL_HOST:-consul}"
# SPRING_CLOUD_CONSUL_PORT: "${CONSUL_HTTP_PORT:-8500}"
# SPRING_CLOUD_CONSUL_DISCOVERY_SERVICE_NAME: "${SCHEDULING_SERVICE_NAME:-scheduling-service}"
# SPRING_CLOUD_CONSUL_DISCOVERY_PREFER_IP_ADDRESS: "${SCHEDULING_CONSUL_PREFER_IP:-true}"
#
# # - DATENBANK VERBINDUNG -
# SPRING_DATASOURCE_URL: "${POSTGRES_DB_URL:-jdbc:postgresql://postgres:5432/pg-meldestelle-db}"
# SPRING_DATASOURCE_USERNAME: "${POSTGRES_USER:-pg-user}"
# SPRING_DATASOURCE_PASSWORD: "${POSTGRES_PASSWORD:-pg-password}"
#
# # --- VALKEY ---
# SPRING_DATA_VALKEY_HOST: "${VALKEY_SERVER_HOSTNAME:-valkey}"
# SPRING_DATA_VALKEY_PORT: "${VALKEY_SERVER_PORT:-6379}"
#
# # --- ZIPKIN ---
# MANAGEMENT_ZIPKIN_TRACING_ENDPOINT: "${ZIPKIN_ENDPOINT:-http://zipkin:9411/api/v2/spans}"
#
# depends_on:
# postgres:
# condition: "service_healthy"
# keycloak:
# condition: "service_healthy"
# consul:
# condition: "service_healthy"
# valkey:
# condition: "service_healthy"
# zipkin:
# condition: "service_healthy"
#
# healthcheck:
# test: [ "CMD", "curl", "-f", "http://localhost:8084/actuator/health" ]
# interval: 15s
# timeout: 5s
# retries: 5
# start_period: 40s
#
# networks:
# meldestelle-network:
# aliases:
# - "scheduling-service"
# profiles: [ "backend", "all" ]
# volumes:
# - ./config/app/base-application.yaml:/workspace/config/application.yml:Z
# --- MICROSERVICE: Mail Service ---
mail-service:
image: "${DOCKER_REGISTRY:-git.mo-code.at/mo-code}/mail-service:${DOCKER_TAG:-latest}"
build:
context: .
dockerfile: backend/services/mail/Dockerfile
args:
GRADLE_VERSION: "${DOCKER_GRADLE_VERSION:-9.4.1}"
JAVA_VERSION: "${DOCKER_JAVA_VERSION:-25}"
VERSION: "${DOCKER_VERSION:-1.0.0-SNAPSHOT}"
BUILD_DATE: "${DOCKER_BUILD_DATE}"
labels:
- "org.opencontainers.image.created=${DOCKER_BUILD_DATE}"
container_name: "${PROJECT_NAME:-meldestelle}-mail-service"
restart: unless-stopped
ports:
- "${MAIL_PORT:-8085:8085}"
- "${MAIL_DEBUG_PORT:-5014:5014}"
environment:
SPRING_PROFILES_ACTIVE: "${MAIL_SPRING_PROFILES_ACTIVE:-docker}"
DEBUG: "${MAIL_DEBUG:-true}"
SERVER_PORT: "${MAIL_SERVER_PORT:-8085}"
# --- KEYCLOAK ---
SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URI: "${KC_ISSUER_URI:-http://keycloak:8080/realms/meldestelle}"
SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWK_SET_URI: "${KC_JWK_SET_URI:-http://keycloak:8080/realms/meldestelle/protocol/openid-connect/certs}"
# --- CONSUL ---
SPRING_CLOUD_CONSUL_HOST: "${CONSUL_HOST:-consul}"
SPRING_CLOUD_CONSUL_PORT: "${CONSUL_HTTP_PORT:-8500}"
SPRING_CLOUD_CONSUL_DISCOVERY_SERVICE_NAME: "${MAIL_SERVICE_NAME:-mail-service}"
SPRING_CLOUD_CONSUL_DISCOVERY_PREFER_IP_ADDRESS: "${MAIL_CONSUL_PREFER_IP:-true}"
# - DATENBANK VERBINDUNG -
SPRING_DATASOURCE_URL: "${POSTGRES_DB_URL:-jdbc:postgresql://postgres:5432/pg-meldestelle-db}"
SPRING_DATASOURCE_USERNAME: "${POSTGRES_USER:-pg-user}"
SPRING_DATASOURCE_PASSWORD: "${POSTGRES_PASSWORD:-pg-password}"
# --- MAIL CONFIG (SMTP) ---
SPRING_MAIL_HOST: "${MAIL_SMTP_HOST:-smtp.mo-code.at}"
SPRING_MAIL_PORT: "${MAIL_SMTP_PORT:-587}"
SPRING_MAIL_USERNAME: "${MAIL_SMTP_USER:-online-nennen@mo-code.at}"
SPRING_MAIL_PASSWORD: "${MAIL_SMTP_PASSWORD:-secret}"
SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH: "true"
SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE: "true"
# --- ZIPKIN ---
MANAGEMENT_ZIPKIN_TRACING_ENDPOINT: "${ZIPKIN_ENDPOINT:-http://zipkin:9411/api/v2/spans}"
depends_on:
postgres:
condition: "service_healthy"
consul:
condition: "service_healthy"
zipkin:
condition: "service_healthy"
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:8085/actuator/health/readiness" ]
interval: 15s
timeout: 5s
retries: 5
start_period: 40s
networks:
meldestelle-network:
aliases:
- "mail-service"
profiles: [ "backend", "all" ]
volumes:
- ./config/app/base-application.yaml:/workspace/config/application.yml:Z
# --- MICROSERVICE: Scheduling Service ---
scheduling-service:
image: "${DOCKER_REGISTRY:-git.mo-code.at/mo-code}/scheduling-service:${DOCKER_TAG:-latest}"
build:
context: .
dockerfile: backend/services/scheduling/scheduling-service/Dockerfile
args:
GRADLE_VERSION: "${DOCKER_GRADLE_VERSION:-9.4.1}"
JAVA_VERSION: "${DOCKER_JAVA_VERSION:-25}"
VERSION: "${DOCKER_VERSION:-1.0.0-SNAPSHOT}"
BUILD_DATE: "${DOCKER_BUILD_DATE}"
labels:
- "org.opencontainers.image.created=${DOCKER_BUILD_DATE}"
container_name: "${PROJECT_NAME:-meldestelle}-scheduling-service"
restart: unless-stopped
ports:
- "${SCHEDULING_PORT:-8084:8084}"
- "${SCHEDULING_DEBUG_PORT:-5013:5013}"
environment:
SPRING_PROFILES_ACTIVE: "${SCHEDULING_SPRING_PROFILES_ACTIVE:-docker}"
DEBUG: "${SCHEDULING_DEBUG:-true}"
SERVER_PORT: "${SCHEDULING_SERVER_PORT:-8084}"
SPRING_APPLICATION_NAME: "${SCHEDULING_SERVICE_NAME:-scheduling-service}"
# --- KEYCLOAK ---
SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUER_URI: "${KC_ISSUER_URI:-http://keycloak:8080/realms/meldestelle}"
SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWK_SET_URI: "${KC_JWK_SET_URI:-http://keycloak:8080/realms/meldestelle/protocol/openid-connect/certs}"
# --- CONSUL ---
SPRING_CLOUD_CONSUL_HOST: "${CONSUL_HOST:-consul}"
SPRING_CLOUD_CONSUL_PORT: "${CONSUL_HTTP_PORT:-8500}"
SPRING_CLOUD_CONSUL_DISCOVERY_SERVICE_NAME: "${SCHEDULING_SERVICE_NAME:-scheduling-service}"
SPRING_CLOUD_CONSUL_DISCOVERY_PREFER_IP_ADDRESS: "${SCHEDULING_CONSUL_PREFER_IP:-true}"
# - DATENBANK VERBINDUNG -
SPRING_DATASOURCE_URL: "${POSTGRES_DB_URL:-jdbc:postgresql://postgres:5432/pg-meldestelle-db}"
SPRING_DATASOURCE_USERNAME: "${POSTGRES_USER:-pg-user}"
SPRING_DATASOURCE_PASSWORD: "${POSTGRES_PASSWORD:-pg-password}"
# --- VALKEY ---
SPRING_DATA_VALKEY_HOST: "${VALKEY_SERVER_HOSTNAME:-valkey}"
SPRING_DATA_VALKEY_PORT: "${VALKEY_SERVER_PORT:-6379}"
# --- ZIPKIN ---
MANAGEMENT_ZIPKIN_TRACING_ENDPOINT: "${ZIPKIN_ENDPOINT:-http://zipkin:9411/api/v2/spans}"
depends_on:
postgres:
condition: "service_healthy"
keycloak:
condition: "service_healthy"
consul:
condition: "service_healthy"
valkey:
condition: "service_healthy"
zipkin:
condition: "service_healthy"
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:8084/actuator/health" ]
interval: 15s
timeout: 5s
retries: 5
start_period: 40s
networks:
meldestelle-network:
aliases:
- "scheduling-service"
profiles: [ "backend", "all" ]
volumes:
- ./config/app/base-application.yaml:/workspace/config/application.yml:Z
# --- MICROSERVICE: Series Service ---
series-service: