#!/bin/bash # XPEDITIS Backend - Production Runner echo "Starting XPEDITIS Backend in Production Mode..." echo "Loading environment variables from .env file..." # Check if .env file exists if [ ! -f .env ]; then echo "ERROR: .env file not found!" echo "Please copy .env.example to .env and configure your production variables:" echo " cp .env.example .env" echo " # Then edit .env with your production values" exit 1 fi # Load .env file set -o allexport source .env set +o allexport # Override profile for production export SPRING_PROFILES_ACTIVE=prod # Validate required production variables echo "Validating required production environment variables..." REQUIRED_VARS=( "SPRING_DATASOURCE_URL" "SPRING_DATASOURCE_USERNAME" "SPRING_DATASOURCE_PASSWORD" "JWT_SECRET_KEY" "GOOGLE_CLIENT_ID" "GOOGLE_CLIENT_SECRET" "SPRING_MAIL_PASSWORD_PROD" ) MISSING_VARS=() for var in "${REQUIRED_VARS[@]}"; do if [ -z "${!var}" ]; then MISSING_VARS+=($var) fi done if [ ${#MISSING_VARS[@]} -ne 0 ]; then echo "ERROR: Missing required production environment variables:" printf " - %s\n" "${MISSING_VARS[@]}" echo "" echo "Please update your .env file with production values." exit 1 fi echo "All required production variables are set" echo "Starting application with profile: prod" # Start the application in production mode ./mvnw spring-boot:run -Dspring-boot.run.profiles=prod