# ============================================================================= # Meldestelle - Staging Environment Configuration # ============================================================================= # Staging-specific environment variables (production-like but for testing) # ============================================================================= # ============================================================================= # 1. APPLICATION CONFIGURATION # ============================================================================= APP_NAME=Meldestelle APP_VERSION=1.0.0 APP_DESCRIPTION='Pferdesport Meldestelle System' APP_ENVIRONMENT=staging APP_HOST=0.0.0.0 # Staging settings (production-like but with some debugging) DEBUG_MODE=false DEV_HOT_RELOAD=false # ============================================================================= # 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 # Infrastructure Ports CONSUL_PORT=8500 REDIS_PORT=6379 KAFKA_PORT=9092 PROMETHEUS_PORT=9090 GRAFANA_PORT=3000 # ============================================================================= # 3. DATABASE CONFIGURATION # ============================================================================= DB_HOST=postgres DB_PORT=5432 DB_NAME=meldestelle_staging DB_USER=meldestelle_staging DB_PASSWORD=staging_password_change_me DB_MAX_POOL_SIZE=15 DB_MIN_POOL_SIZE=5 DB_AUTO_MIGRATE=true POSTGRES_USER=meldestelle_staging POSTGRES_PASSWORD=staging_password_change_me POSTGRES_DB=meldestelle_staging POSTGRES_EXTERNAL_PORT=5432 # ============================================================================= # 4. REDIS CONFIGURATION # ============================================================================= REDIS_EVENT_STORE_HOST=redis REDIS_EVENT_STORE_PORT=6379 REDIS_EVENT_STORE_PASSWORD=staging_redis_password REDIS_EVENT_STORE_DATABASE=0 REDIS_EVENT_STORE_CONNECTION_TIMEOUT=3000 REDIS_EVENT_STORE_READ_TIMEOUT=3000 REDIS_EVENT_STORE_USE_POOLING=true REDIS_EVENT_STORE_MAX_POOL_SIZE=15 REDIS_EVENT_STORE_MIN_POOL_SIZE=3 REDIS_CACHE_HOST=redis REDIS_CACHE_PORT=6379 REDIS_CACHE_PASSWORD=staging_redis_password REDIS_CACHE_DATABASE=1 REDIS_EXTERNAL_PORT=6379 REDIS_PASSWORD=staging_redis_password # ============================================================================= # 5. SECURITY CONFIGURATION # ============================================================================= JWT_SECRET=staging-jwt-secret-key-not-for-production-use JWT_ISSUER=meldestelle-api-staging JWT_AUDIENCE=meldestelle-clients-staging JWT_REALM=meldestelle-staging API_KEY=staging-api-key-change-me # ============================================================================= # 6. KEYCLOAK CONFIGURATION # ============================================================================= KEYCLOAK_ADMIN=admin KEYCLOAK_ADMIN_PASSWORD=admin KC_DB=postgres KC_DB_URL=jdbc:postgresql://postgres:5432/meldestelle_staging KC_DB_SCHEMA=keycloak KC_DB_USERNAME=meldestelle_staging KC_DB_PASSWORD=staging_password_change_me KC_HOSTNAME=localhost # ============================================================================= # 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=15 # ============================================================================= # 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=staging_admin GF_SECURITY_ADMIN_PASSWORD=staging_grafana_password GF_USERS_ALLOW_SIGN_UP=false METRICS_AUTH_USERNAME=staging_metrics METRICS_AUTH_PASSWORD=staging_metrics_password GRAFANA_HOSTNAME=grafana-staging.meldestelle.local PROMETHEUS_HOSTNAME=prometheus-staging.meldestelle.local # ============================================================================= # 10. LOGGING CONFIGURATION # ============================================================================= LOGGING_LEVEL=INFO LOGGING_REQUESTS=true LOGGING_RESPONSES=false LOGGING_REQUEST_HEADERS=false LOGGING_REQUEST_BODY=false LOGGING_RESPONSE_HEADERS=false LOGGING_RESPONSE_BODY=false 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=https://staging.meldestelle.local,https://app-staging.meldestelle.local RATELIMIT_ENABLED=true RATELIMIT_GLOBAL_LIMIT=500 RATELIMIT_GLOBAL_PERIOD_MINUTES=1 RATELIMIT_INCLUDE_HEADERS=true # ============================================================================= # 12. SPRING PROFILES AND GATEWAY # ============================================================================= SPRING_PROFILES_ACTIVE=staging GATEWAY_ADMIN_USER=staging_gateway_admin GATEWAY_ADMIN_PASSWORD=staging_gateway_password