diff --git a/.env b/.env deleted file mode 120000 index 0287faf3..00000000 --- a/.env +++ /dev/null @@ -1,189 +0,0 @@ -# ============================================================================= -# Meldestelle - Development Environment Configuration -# ============================================================================= -# Development-specific environment variables -# ============================================================================= - -# ============================================================================= -# 1. APPLICATION CONFIGURATION -# ============================================================================= -APP_NAME=Meldestelle -APP_VERSION=1.0.0 -APP_DESCRIPTION='Pferdesport Meldestelle System' -APP_ENVIRONMENT=development -APP_HOST=0.0.0.0 - -# Development-specific settings -DEBUG_MODE=true -DEV_HOT_RELOAD=true - -# ============================================================================= -# 2. PORT MANAGEMENT -# ============================================================================= -# Gateway Ports -GATEWAY_PORT=8081 -GATEWAY_ADMIN_PORT=8080 - -# Service Ports -PING_SERVICE_PORT=8082 -MEMBERS_SERVICE_PORT=8083 -HORSES_SERVICE_PORT=8084 -EVENTS_SERVICE_PORT=8085 -MASTERDATA_SERVICE_PORT=8086 -AUTH_SERVICE_PORT=8087 - -# Client Application Ports -WEB_APP_PORT=4000 -DESKTOP_VNC_PORT=5901 -DESKTOP_WEB_VNC_PORT=6080 - -# Infrastructure Ports -CONSUL_PORT=8500 -REDIS_PORT=6379 -KAFKA_PORT=9092 -PROMETHEUS_PORT=9090 -GRAFANA_PORT=3000 - -# ============================================================================= -# 3. DATABASE CONFIGURATION -# ============================================================================= -DB_HOST=localhost -DB_PORT=5432 -DB_NAME=meldestelle -DB_USER=meldestelle -DB_PASSWORD=meldestelle -DB_MAX_POOL_SIZE=10 -DB_MIN_POOL_SIZE=5 -DB_AUTO_MIGRATE=true - -POSTGRES_USER=meldestelle -POSTGRES_PASSWORD=meldestelle -POSTGRES_DB=meldestelle -POSTGRES_EXTERNAL_PORT=5432 - -# ============================================================================= -# 4. REDIS CONFIGURATION -# ============================================================================= -REDIS_EVENT_STORE_HOST=localhost -REDIS_EVENT_STORE_PORT=6379 -REDIS_EVENT_STORE_PASSWORD= -REDIS_EVENT_STORE_DATABASE=0 -REDIS_EVENT_STORE_CONNECTION_TIMEOUT=2000 -REDIS_EVENT_STORE_READ_TIMEOUT=2000 -REDIS_EVENT_STORE_USE_POOLING=true -REDIS_EVENT_STORE_MAX_POOL_SIZE=8 -REDIS_EVENT_STORE_MIN_POOL_SIZE=2 - -REDIS_CACHE_HOST=localhost -REDIS_CACHE_PORT=6379 -REDIS_CACHE_PASSWORD= -REDIS_CACHE_DATABASE=1 - -REDIS_EXTERNAL_PORT=6379 -REDIS_PASSWORD= - -# ============================================================================= -# 5. SECURITY CONFIGURATION -# ============================================================================= -JWT_SECRET=meldestelle-jwt-secret-key-for-development-change-in-production -JWT_ISSUER=meldestelle-api -JWT_AUDIENCE=meldestelle-clients -JWT_REALM=meldestelle -API_KEY=meldestelle-api-key-for-development - -# ============================================================================= -# 6. KEYCLOAK CONFIGURATION -# ============================================================================= -KEYCLOAK_ADMIN=admin -KEYCLOAK_ADMIN_PASSWORD=admin -KC_DB=postgres -KC_DB_URL=jdbc:postgresql://postgres:5432/keycloak -KC_DB_USERNAME=meldestelle -KC_DB_PASSWORD=meldestelle -KC_HOSTNAME=auth.meldestelle.local - -# ============================================================================= -# 7. SERVICE DISCOVERY -# ============================================================================= -CONSUL_HOST=consul -CONSUL_ENABLED=true -SERVICE_DISCOVERY_ENABLED=true -SERVICE_DISCOVERY_REGISTER_SERVICES=true -SERVICE_DISCOVERY_HEALTH_CHECK_PATH=/health -SERVICE_DISCOVERY_HEALTH_CHECK_INTERVAL=10 - -# ============================================================================= -# 8. MESSAGING (Kafka) -# ============================================================================= -ZOOKEEPER_CLIENT_PORT=2181 -KAFKA_BROKER_ID=1 -KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092 -KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT -KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT -KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 - -# ============================================================================= -# 9. MONITORING -# ============================================================================= -GF_SECURITY_ADMIN_USER=meldestelle -GF_SECURITY_ADMIN_PASSWORD=meldestelle -GF_USERS_ALLOW_SIGN_UP=false - -METRICS_AUTH_USERNAME=admin -METRICS_AUTH_PASSWORD=metrics - -GRAFANA_HOSTNAME=grafana.meldestelle.local -PROMETHEUS_HOSTNAME=prometheus.meldestelle.local - -# ============================================================================= -# 10. LOGGING CONFIGURATION -# ============================================================================= -LOGGING_LEVEL=DEBUG -LOGGING_REQUESTS=true -LOGGING_RESPONSES=true -LOGGING_REQUEST_HEADERS=true -LOGGING_REQUEST_BODY=true -LOGGING_RESPONSE_HEADERS=true -LOGGING_RESPONSE_BODY=true -LOGGING_STRUCTURED=true -LOGGING_CORRELATION_ID=true -LOGGING_REQUEST_ID_HEADER=X-Request-ID - -# ============================================================================= -# 11. CORS AND RATE LIMITING -# ============================================================================= -SERVER_CORS_ENABLED=true -SERVER_CORS_ALLOWED_ORIGINS=* -RATELIMIT_ENABLED=true -RATELIMIT_GLOBAL_LIMIT=100 -RATELIMIT_GLOBAL_PERIOD_MINUTES=1 -RATELIMIT_INCLUDE_HEADERS=true - -# ============================================================================= -# 12. DOCKER BUILD ARGUMENTS -# ============================================================================= -# Centralized Docker build arguments for compose files -# These mirror the values from docker/build-args/ for standalone compose usage -DOCKER_GRADLE_VERSION=9.0.0 -DOCKER_JAVA_VERSION=21 -DOCKER_NODE_VERSION=20.11.0 -DOCKER_NGINX_VERSION=1.25-alpine -DOCKER_APP_VERSION=1.0.0 -BUILD_DATE=2025-09-13T23:32:00Z - -# Monitoring & Infrastructure versions -DOCKER_PROMETHEUS_VERSION=v2.54.1 -DOCKER_GRAFANA_VERSION=11.3.0 -DOCKER_KEYCLOAK_VERSION=26.0.7 - -# Spring profiles for Docker builds -DOCKER_SPRING_PROFILES_DEFAULT=default -DOCKER_SPRING_PROFILES_DOCKER=docker - -# ============================================================================= -# 13. SPRING PROFILES AND GATEWAY -# ============================================================================= -SPRING_PROFILES_ACTIVE=dev -GATEWAY_ADMIN_USER=admin -GATEWAY_ADMIN_PASSWORD=admin diff --git a/docker-compose.yml b/docker-compose.yml index 1e8b6bf4..de607190 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -116,12 +116,14 @@ services: - ./docker/services/keycloak:/opt/keycloak/data/import - keycloak-data:/opt/keycloak/data command: - # Production mode with optimizations + # Development mode - removed --optimized for first-time startup + # For production, use --optimized after building: docker exec keycloak /opt/keycloak/bin/kc.sh build - start - - --optimized - --import-realm - --http-port=8080 # - --http-relative-path=/auth + # Uncomment for production after initial setup and build: + # - --optimized networks: - meldestelle-network healthcheck: