165 lines
5.9 KiB
Plaintext
165 lines
5.9 KiB
Plaintext
# =============================================================================
|
|
# Meldestelle - Production Environment Configuration
|
|
# =============================================================================
|
|
# Production-specific environment variables
|
|
# IMPORTANT: Change all CHANGE_ME values before deployment!
|
|
# =============================================================================
|
|
|
|
# =============================================================================
|
|
# 1. APPLICATION CONFIGURATION
|
|
# =============================================================================
|
|
APP_NAME=Meldestelle
|
|
APP_VERSION=1.0.0
|
|
APP_DESCRIPTION='Pferdesport Meldestelle System'
|
|
APP_ENVIRONMENT=production
|
|
APP_HOST=0.0.0.0
|
|
|
|
# Production settings
|
|
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_prod
|
|
DB_USER=meldestelle_prod
|
|
DB_PASSWORD=CHANGE_ME_STRONG_DB_PASSWORD_HERE
|
|
DB_MAX_POOL_SIZE=20
|
|
DB_MIN_POOL_SIZE=10
|
|
DB_AUTO_MIGRATE=false
|
|
|
|
POSTGRES_USER=meldestelle_prod
|
|
POSTGRES_PASSWORD=CHANGE_ME_STRONG_DB_PASSWORD_HERE
|
|
POSTGRES_DB=meldestelle_prod
|
|
POSTGRES_EXTERNAL_PORT=5432
|
|
|
|
# =============================================================================
|
|
# 4. REDIS CONFIGURATION
|
|
# =============================================================================
|
|
REDIS_EVENT_STORE_HOST=redis
|
|
REDIS_EVENT_STORE_PORT=6379
|
|
REDIS_EVENT_STORE_PASSWORD=CHANGE_ME_STRONG_REDIS_PASSWORD_HERE
|
|
REDIS_EVENT_STORE_DATABASE=0
|
|
REDIS_EVENT_STORE_CONNECTION_TIMEOUT=5000
|
|
REDIS_EVENT_STORE_READ_TIMEOUT=5000
|
|
REDIS_EVENT_STORE_USE_POOLING=true
|
|
REDIS_EVENT_STORE_MAX_POOL_SIZE=20
|
|
REDIS_EVENT_STORE_MIN_POOL_SIZE=5
|
|
|
|
REDIS_CACHE_HOST=redis
|
|
REDIS_CACHE_PORT=6379
|
|
REDIS_CACHE_PASSWORD=CHANGE_ME_STRONG_REDIS_PASSWORD_HERE
|
|
REDIS_CACHE_DATABASE=1
|
|
|
|
REDIS_EXTERNAL_PORT=6379
|
|
REDIS_PASSWORD=CHANGE_ME_STRONG_REDIS_PASSWORD_HERE
|
|
|
|
# =============================================================================
|
|
# 5. SECURITY CONFIGURATION
|
|
# =============================================================================
|
|
JWT_SECRET=CHANGE_ME_STRONG_JWT_SECRET_AT_LEAST_256_BITS_HERE
|
|
JWT_ISSUER=meldestelle-api-prod
|
|
JWT_AUDIENCE=meldestelle-clients-prod
|
|
JWT_REALM=meldestelle-prod
|
|
API_KEY=CHANGE_ME_STRONG_API_KEY_HERE
|
|
|
|
# =============================================================================
|
|
# 6. KEYCLOAK CONFIGURATION
|
|
# =============================================================================
|
|
KEYCLOAK_ADMIN=CHANGE_ME_ADMIN_USERNAME
|
|
KEYCLOAK_ADMIN_PASSWORD=CHANGE_ME_STRONG_ADMIN_PASSWORD_HERE
|
|
KC_DB=postgres
|
|
KC_DB_URL=jdbc:postgresql://postgres:5432/keycloak_prod
|
|
KC_DB_USERNAME=keycloak_prod
|
|
KC_DB_PASSWORD=CHANGE_ME_STRONG_KEYCLOAK_DB_PASSWORD_HERE
|
|
KC_HOSTNAME=auth.yourdomain.com
|
|
|
|
# =============================================================================
|
|
# 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=30
|
|
|
|
# =============================================================================
|
|
# 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=CHANGE_ME_GRAFANA_ADMIN_USERNAME
|
|
GF_SECURITY_ADMIN_PASSWORD=CHANGE_ME_STRONG_GRAFANA_PASSWORD_HERE
|
|
GF_USERS_ALLOW_SIGN_UP=false
|
|
|
|
METRICS_AUTH_USERNAME=CHANGE_ME_METRICS_USERNAME
|
|
METRICS_AUTH_PASSWORD=CHANGE_ME_STRONG_METRICS_PASSWORD_HERE
|
|
|
|
GRAFANA_HOSTNAME=monitoring.yourdomain.com
|
|
PROMETHEUS_HOSTNAME=metrics.yourdomain.com
|
|
|
|
# =============================================================================
|
|
# 10. LOGGING CONFIGURATION
|
|
# =============================================================================
|
|
LOGGING_LEVEL=INFO
|
|
LOGGING_REQUESTS=false
|
|
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://yourdomain.com,https://www.yourdomain.com
|
|
RATELIMIT_ENABLED=true
|
|
RATELIMIT_GLOBAL_LIMIT=1000
|
|
RATELIMIT_GLOBAL_PERIOD_MINUTES=1
|
|
RATELIMIT_INCLUDE_HEADERS=true
|
|
|
|
# =============================================================================
|
|
# 12. SPRING PROFILES AND GATEWAY
|
|
# =============================================================================
|
|
SPRING_PROFILES_ACTIVE=prod
|
|
GATEWAY_ADMIN_USER=CHANGE_ME_GATEWAY_ADMIN_USERNAME
|
|
GATEWAY_ADMIN_PASSWORD=CHANGE_ME_STRONG_GATEWAY_ADMIN_PASSWORD_HERE
|